misterunknown: fail2ban: User-Regeln für Apache

Beitrag lesen

Moin,

Um das zu beurteilen müsste ich mehr darüber wissen:

Ich würde mich freuen, wenn du dir das mal angucken könntest. Ich habe jetzt mal wahllos einige Abschnitte meines Access-Logs zusammenkopiert. Im ersten Teil wird deutlich, dass ein Bot (majestic12.co.uk) versucht mein Wiki mit fiktiven Tokens zu übernehmen. Offiziell handelt sich es wohl um eine "Suchmaschine", aber diese Requests sind ja ziemlich eindeutig.

Im zweiten Teil sieht man IMHO eine Post-Flood-Attacke. Was ich dabei nicht verstehe: Die Requests kommen von einer fremden IP (37.139.23.116) und direkt nach jedem Request sieht man einen Eintrag mit der IP meines _eigenen_ Servers (109.73.50.139). Kann das damit zusammenhängen, dass ich meine normale Domain (misterunknown.de) per Apache-Proxy-Direktive auf wp.misterunknown.de umgeleitet habe?*

Es waren bisher mehrere Angriffe, welche einige Minuten bis zu einer halben Stunde gedauert haben. Kurz nach Beginn war entweder der Apache2 oder MySQL oder beides nicht erreichbar. Im Error-Log des Apache tauchten während der Angriffe nur einige Meldungen über den Ausfall von MySQL auf; diese waren aber nicht der angreifenden Client-IP zugeordnet, sondern der IP des Servers selbst:

[Mon Mar 24 15:01:24 2014] [error] [client 109.73.50.139] WordPress-Datenbank-Fehler MySQL server has gone away f\xc3\xbcr Abfrage SELECT * FROM wp_users WHERE user_login = 'admin' von get_user_by, WP_User::get_data_by  

Auch SSH war aufgrund der zu langen Antwortzeit des Servers teilweise nicht nutzbar; außerdem habe ich von Nagios mehrere Mails erhalten, die den Current Load als kritisch einschätzten.

Meine Idee war für fail2ban einen Jail zu schreiben, der das Access-Log scannt und alle Majestic12-Bots banned. Außerdem will ich Post-Flooding verhindern (vielleicht alle IPs bannen, die >3 POST-Requests/Sekunde schicken...?). Da ich in dabei keine größere Erfahrung habe, dachte ich es gibt sicherlich Leute, die schonmal vor dem selben Problem standen und schon gut durchdachte Definitionen verwenden.

Grüße Marco

* Hintergrund ist, dass ich ein subdomainbasiertes Wordpress-Multisite-Netzwerk installiert habe, welches auf wp.misterunknown.de läuft. Da ich noch weitere Subdomains habe, die nichts mit Wordpress zu tun haben, musste ich das so lösen, da durch die .htaccess sonst alle Subdomains auf das Netzwerk umgeleitet würden. Mit dieser Konfiguration kann ich aber beruhigt weitere Seite anlegen, die dann eine URL in der Form seite.wp.misterunknown.de bekommen oder per Domain Mapping eine eigene Domain bekommen können.