Anzahl IPs an Netzwerkkarte

Hallo Miteinander,

vor einiger Zeit schrieb ich mir einen kleinen Helfer, der meinen VServer vor kleineren Floodingattacken schützen sollte.
Die Funktionsweise ist relativ einfach.
An der Netzwerkkarte werden die Verbindungen pro IP ausgelesen,
Fällt eine IP über einen bestimmten Schwellenwert, wird per iptables geblockt etc..

Mein Helfer funktionierte immer einwandfrei, vor Kurzem zog ich den VServer um (von Ubuntu 9 auf 10.04.

Nun habe ich das Problem, dass der angewendete netstat nur noch ein paar Verbindungen auswirft.
Früher war es so, dass:

Code:
netstat -ntu | awk '{print $4}' | cut -d: -f1 | sort | uniq -c | sort -nr
Die Anzahl an Verbindungen auswirft, die sich in der letzten Minute angesammelt haben.
Floode ich nun meinen Server, kommt er max auf 6 Verbindungen laut netstat (obwohl ein paar Hundert angezeigt werden müssten).
Ich habe auch schon versucht, den Apache anzupassen (/etc/apache2/apache2.conf), die worker oder threads hochzusetzen, die an der Netzwerkkarte ausgelesen werte bleiben jedoch unverändert beim flooden.

Bin aktuell ziemlich ratlos und würde mich über einen Denkanstoß freuen :)
 
Hm, der Befehl "netstat -tun" listet auch unter Ubuntu 10.04 alle TCP- und UDP-Sockets auf. Aber das kannste ja relativ einfach testen, in dem du ein paar Freunde bittest deine Seite zu besuchen und du mit "netstat -tunc" überwachst ob ihre IPs in der Liste auftauchen. Oder kannst mal schauen was "lsof -i" ausspuckt.

Allerdings glaube ich eher, dass deine "Flooding-Attacke" aus irgendeinem Grund ins Leere läuft. Wie führst du diese denn durch, wie ist das Ergebnis, wie sind die Keepalive- und Timeout-Werte von Apache, hast du was am TCP/IP-Stack gefummelt, etc. pp.?
 
Hallo Dresko,

Dein Denkanstoß brachte mich zum Ziel - vielen Dank an dieser Stelle.
Falls andere Nutzer Probleme mit ddos-deflate oder eigenen Entwicklungen haben, würde ich hier noch meine Erfahrungen niederschreiben - vielleicht muss dann der eine oder andere nicht so lange googeln.

Meine "Flooding-Attacke" führte ich mit LOIC aus in, der JS Version.
Die Anmerkung "deine Flooding-Attacke führt ins leere", konnte so nicht stimmen, da schon nach wenigen Sekunden die CPU Last extrem nach oben ging (knapp unter 100% und Load von über 5).
Trotzdem machte ich noch einen weiteren Test mit siege und siehe da, plötzlich werden mir mehrere Tausend Verbindungen an der Netzwerkkarte angezeigt, wenn ich "drauf halte".
Es musste wohl doch eine Einstellung am Apache sein, KeepAlive von On auf Off gestellt und schon springen die Werte nach oben, auch bei LOIC.

Bei meiner Floodingprotection (und auch bei ddos-deflate) ist es ja wünschenswert, dass mehrere Verbindungen analysiert werden.
Die Schwachstelle "flooden unter dem Schwellenwert" habe ich bei meiner Version übrigens nicht, vielleicht mache ich das System "hoodog V2" irgendwann public tauglich und veröffentliche es (aktuell muss es halt an jeden Server individuell angepasst werden).
 
Hallo,

die JS-Version von LOIC kann m.W. nur HTTP-Floods und da greift dann im Idealfall die Keepalive-Einstellungen von Apache, d.h. er handelt mehrere HTTP-Request von derselben IP über das selbe TCP-Socket ab. Du hast also zig HTTP-Anfragen gestartet, aber dabei nur ein paar TCP-Sessions in Verwendung gehabt.

Wobei ich dies aber auch ein schönes Alltags-Beispiel für meine Argumentation finde, dass (D)DoS-Angriffe auf dieser Ebene nicht mehr sinnvoll mitigiert werden können und solche Skripte und Helferlein eher kontraproduktiv sind. Aber ich weiß, das ist ein strittiges Thema. Gerade im privaten Umfeld oder im Low-Cost-Bereich. :)
 
Zurück
Oben