Page 1 of 1

sockt verbindungen beschränken.

Posted: 2012-07-24 20:01
by andreas-stoltze
Hallo,
gibt es eine Möglichkeit die Anzahl der Socketverbindungen zu beschränken welche ein User pro Tag haben kann?
(System openSuse)

Vielen dank im voraus!

Andreas

Re: sockt verbindungen beschränken.

Posted: 2012-07-25 17:24
by daemotron
Kurze Antwort: nein

Lange Antwort:
Man kann die Anzahl parallel offener File Handles beschränken (man ulimit) - das ist aber nicht dasselbe wie ein Counter, der die Anzahl an geöffneten File Handles in einem bestimmten Zeitraum überwacht. Außerdem wird hier generell die Anzahl offener File Handles mit limitiert, nicht nur File Handles vom Typ AF_INET, AF_INET6 oder AF_UNIX.

Um das zu erreichen, was Du möchtest, müsste man einen Kernel-Patch schreiben, der den Syscall hinter der socket()-Funktion überschreibt (bzw. als Wrapper für diesen agiert) und eine entsprechende Counter-Tabelle im Kernel-Space pflegt.

Alternativ könnte man auch per Cron im Minutentakt mittels lsof die offenen Sockets eines Users abfragen, dabei gleichnamige Sockets eliminieren und den verbleibenden Rest als neu zählen. Sobald neu kumulativ einen bestimmten Schwellwert überschreitet, könnte man dann per ulimit die Anzahl erlaubter File Handles auf Null setzen (sehr drastisch) oder zumindest auf 1 beschränken. Sehr genau ist das aber nicht; ein Programm, das in einer Endlosschleife Sockets erzeugt, könnte innerhalb der einen Minute das Tageslimit locker mehrfach ausschöpfen, bevor der Cron-Job überhaupt zum Zuge kommt. Außerdem erfasst der Cron-Job natürlich nur Sockets, der über die Grenze der vollen Minute hinaus geöffnet waren.

Re: sockt verbindungen beschränken.

Posted: 2012-07-25 21:19
by andreas-stoltze
besten Dank! Das hat auf jeden Fall geholfen (muss mir jetzt nicht mehr den Kopf zerbrechen) :-BD