DoS (was: Re: [linux-l] PostgeSQL)

olafBuddenhagen at web.de olafBuddenhagen at web.de
Mi Nov 12 06:36:16 CET 2003


Hallo,

On Sun, Nov 09, 2003 at 07:09:50PM +0100, Steffen Dettmer wrote:

> So kann ein User ein DoS machen, kann r aber so erstmal eh, z.b. mit 
> 
> while (1)  { fork(); };
> 
> das "killt" vermutlich auch erstmal das System...

Damit schlieszt man sich nur selbst aus, da die Zahl der Prozesse ja pro
User begrenzt ist.

Viel effektiver waere es, wenn man vor oder hinter dem fork() noch
ordentlich viel Speicher alloziert. Wenn dann der Speicher ueberfuellt
ist, faengt der Kernel an munter zufaellige Prozesse zu killen.

Es gab man 'ne Diskussion nicht mehr zufaellig zu killen, sondern die
Prozesse die am meisten Speicher verbrauchen. Ich weisz nicht ob das
inzwischen umgesetzt wurde; falls ja, wird das ein wenig schwieriger:
Dann muss man den Speicherverbrauch pro Prozess so bemessen, dass der
virtuelle Speicher gerade voll wird.

Auf einer Maschiene mit viel virtuellem Speicher (einige GB) koennte man
aber auch damit nur grosze Sachen wie X-Server, Java-VM, Mozilla etc.
abschieszen, aber nicht mehr die wichtigen Systemprozesse.

Kann man eigentlich irgendwie Quotas fuer Speicherverbrauch pro User
festlegen?...

-Olaf-



Mehr Informationen über die Mailingliste linux-l