Ich habe den gleichen Spambot am Hals. Da ich die IPs der Besucher nicht mitlogge, habe ich natürlich wenig unternehmen können. Nachdem in der letzten Woche aber eine (recht übersichtliche) DDoS-Attacke meinen Server “paralysiert” hat, habe ich aber doch etwas unternehmen müssen …
Bei mir war während der letzten Woche die ganze Zeit die Konsole geöffnet. Sobald die Zugriffszeiten des Servers (logge ich über http://serverstate.de/ mit) hochgehen, oder mir der SMTP-daemon anzeigt, dass er eine E-Mail nicht zustellen konnte (passiert gelegentlich bei den Spam-Bot-Registrierungen) werfe ich einen Blick auf die Konsole und schreibe die IP (deren Standort ich über http://www.utrace.de/ erst kontrolliere) mit einem DROP-Befehl in die Iptables.
Mühselig und eigentlich auch eher als Maßnahme gegen DDoS gedacht, aber darüber erwischt man auch die Spambots.
Letzten Endes würde natürlich nur die Eintragung in eine dedizierte Firewall helfen (als Prophylaxe gegen einen fetten DDoS), aber ich habe nun mal momentan nur eine Shared-FW.
Nur mal so der Vollständigkeit halber die Konsolenbefehle.
Der Befehl “[B]netstat[/B]” zeigt Dir die Verbindungen an:
[B]netstat -tapn[/B] (zeigt Dir alle IPs)
[B]netstat -tapn | grep :80[/B] (zeigt Dir alles auf Port 80)
[B]netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n[/B] (identische IPs werden addiert)
Gibt noch viele weitere Varianten. Mit [B]netstat --help[/B] kannst Du Dir alle anzeigen lassen.
Und dann werden die Pappenheimer gedropt.
[B]iptables -A INPUT -s 111.111.1.1 -j DROP[/B] (eine Adresse)
[B]iptables -A INPUT -s 111.111.1.0/24 -j DROP[/B] (alle von x.x.x.0 bis x.x.x.254)
Man kann auch an Stelle des DROP ein REJECT setzen. Dann bekommt der Vogel eine Info, dass die Seite für Ihn gesperrt ist. Man kann ihm auf diesem Weg auch mitteilen, was man von ihm hält :D. Aber ich will lieber niemanden provozieren.
[B]iptables -D INPUT -s IP-Nummer -j DROP[/B] löscht eine falsch eingegebene Regel … falls Du Dich mal selbst rausschmeisst
Mit [B]iptables --list[/B] kannst Du Dir Regeln anschauen, die Du in die iptables geschrieben hast.
Das Ganze kann man auch über ein Skript automatisieren. Aber ich bin nicht so der Linux-Freak und noch hält sich die Nerverei auch in Grenzen.
Liest sich alles vielleicht ein wenig spröde, geht aber eigentlich recht fix und anders bin ich dem Thema nicht beigekommen. Du kannst auch mal nach [B]+Apache +GEOIP[/B] googeln. Kann auch ein Weg sein. Die Methode über die [B].htaccess[/B] geht auch (ist in diesem Blogbeitrag prima beschrieben http://www.beedy.de/2011/06/10/spamkommentare-ein-leidiges-thema/), aber gilt dann natürlich nicht für den ganzen Server. Egal wie man es macht, irgendwann leidet bei zunehmender Anzahl von Eintragungen auch die Performance, da ja erst alle Regeln durchlaufen werden müssen.
Wir können ja einen Thread aufmachen, in dem wir “böse” IPs eintragen … aber der wird lang und ganz kommt man dem Thema sicher nie bei.
Viele Grüße
Jörg