So, nach ein paar Stunden Studierens, woher denn der Wind weht, wußte ich endlich, welcher Domain auf dem Server der DoS galt.
(bei Multi-IP-Umgebung kann das schon mal ein Weilchen dauern…)
So, als Allererstes:
wer auf seiner Linux-Büchse kein iptables hat -> sorry, selber schuld
Aber jetzt mal der Reihe nach:
wir suchen uns auf der Konsole mal die IP-Adressen raus, die verdächtig nach slowloris stinken
netstat -ant | grep TIME_WAIT | awk '{ print $5}' | cut -d ":" -f 1 | sort | uniq -c
Soooo, da haben wir ja schon potentielle IP’s, die wir mittels whois mal auf deren Ursprungsland testen.
Die meisten werden irgendwelche Russen, Chinesen, Franzosen, oder ger00tete Amerikaner sein.
Diese sperren wir der Reihe nach mit:
hier.die.ip.0/24
um auch gleich die potentiell benachbarten Leute freundlich aber bestimmt draußen zu halten
iptables -A INPUT -s hier.die.ip.0/24 -j DROP
Und flutsch, schon wird erst mal alles von der IP-Range gedroppt.
Das jetzt erst mal für 5-10 IP’s machen, mehr sind es bei slowloris selten.
(ansonsten ruhig ein paar mehr machen…)
So, jetzt setzen wir aber mal noch ein paar weitere Filter in die Firewall, um das auch für die Zukunft schön schwer zu machen:
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 8 -j DROP
iptables -I INPUT -p tcp -m state --state NEW --dport 80 -m recent --name slowdos --set
iptables -I INPUT -p tcp -m state --state NEW --dport 80 -m recent --name slowdos --update --seconds 15 --hitcount 15 -j DROP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
So, und ab hier sollte man dann in Verbindung mit mod_evasive sehen, wie sich sein Webserver wieder erholt hat 🙂