Synflood?

d4f

Kaffee? Wo?
Hallo,

Seid ein paar Wochen bekomme ich sporadisch Angriffe(?) ab.
Nachdem ich tcp_syncookie auf 1 geflaggt hatte, und shellbasierende Syn-BLocker in die Iptables gebastelt hatte (nicht sauber - aber funktionierend *g*), hatte ich tatsaechlich ein paar Tage Ruhe. Seit gestern jedoch:
Apr 22 18:23:27 bianca kernel: printk: 627 messages suppressed.
Apr 22 18:23:27 bianca kernel: nf_conntrack: table full, dropping packet.
Apr 22 18:23:29 bianca kernel: possible SYN flooding on port 80. Sending cookies.
Apr 22 18:23:33 bianca kernel: printk: 1536 messages suppressed.


Pausenlos (evtl 1-2 Stunden Erreichbarkeit) ist Port80 unter Flood, und ich denke das hier sollte alles sagen:
bianca:~# wc /proc/net/ip_conntrack
16191 307451 3251139 /proc/net/ip_conntrack

Ip_conntrack habe ich leider noch nicht installier gekriegt (Kernel-Rekompilieren ist nicht so meine Sache *sigh*)

Hat irgendjemand eine Idee, wie man sich noch retten kann, respektiv was das ausgeloest haben kann? :(


[EDIT]
Noch ein Auszug der neusten "Welle" (kommt immer stossartig fuer 1-2 Stunden, danach ists "ruhiger")
Apr 22 21:34:09 bianca kernel: printk: 11936 messages suppressed.
Apr 22 21:34:09 bianca kernel: nf_conntrack: table full, dropping packet.
Apr 22 21:34:14 bianca kernel: printk: 13575 messages suppressed.
Apr 22 21:34:14 bianca kernel: nf_conntrack: table full, dropping packet.
Apr 22 21:34:15 bianca kernel: possible SYN flooding on port 80. Sending cookies.
Apr 22 21:34:19 bianca kernel: printk: 12347 messages suppressed.
Apr 22 21:34:19 bianca kernel: nf_conntrack: table full, dropping packet.
Apr 22 21:34:24 bianca kernel: printk: 12318 messages suppressed.
Apr 22 21:34:24 bianca kernel: nf_conntrack: table full, dropping packet.
Apr 22 21:34:29 bianca kernel: printk: 14220 messages suppressed.
Apr 22 21:34:29 bianca kernel: nf_conntrack: table full, dropping packet.
Apr 22 21:34:34 bianca kernel: printk: 16090 messages suppressed.
Apr 22 21:34:34 bianca kernel: nf_conntrack: table full, dropping packet.
 
Last edited by a moderator:
Ich habe jetzt eine Alternative gefunden ohne den Kernel zu kompilieren

Ich bin mir sicher dass es nicht die beste Methode ist - aber sie funktioniert einwandfrei =)

Zuerst setzt man ein Logging auf alle neu-aufgebaute Vebindungen auf Port80:
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
Und dann limitiert man die neuen Verbindungen je Client auf 10/2Sekunden
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 2 --hitcount 10 -j DROP

Das magische Resultat:
# wc /proc/net/ip_conntrack
257 4759 50245 /proc/net/ip_conntrac

Ich hoffe das hier kann jemandem mit dem gleichen SynFlood-Muster helfen :D
 
Last edited by a moderator:
Wie wärs einfach mit mod_evasive für Apache2?
Auch wenn die IPTables eher droppen, so würde sich mod_evasive zumindest einfacher pflegen lassen. ;)
 
mod_evasive hab ich eh drin *g*

So weit kommen die Angriffe gar nicht, die ueberlasten gezielt die Buffer vom Kernel bis dieser alle neuen Verbindungen droppen muss. Apache selber kriegt kaum noch (5-10) Anfragen davon ab... von paar 1000 Verbindungen die da aufgemacht werden.
 
Back
Top