Mit Fail2ban gegen fehlgeschlagene WordPress-Logins

Aktuell läuft eine größere Angriffswelle gegen WordPress-Installationen, bei denen versucht wird, mittels Wörterbuchattacke den Account “admin” zu knacken.

WordPress führt dabei nach einem erfolgreichen Login auf der “wp-login.php” einen 302-Redirect durch, fehlgeschlagene Logins hingegen werden mit dem HTTP-Status-Code 200 im Access-Log aufgezeichnet.

Dementsprechend lässt sich eine Filter-Regel für Fail2ban aufstellen, die alle erfolglosen Loginversuche findet und bei Bedarf dann blockt:

Fail2ban blockiert eine IP-Adresse dann für 24 Stunden (bantime), sobald es binnen 15 Sekunden (findtime) zu mehr als 5 Treffern (maxretry) mit dem genannten, zuvor definierten, Filter kommt.

Man könnte nun natürlich noch als zusätzliche action nicht nur die IPTables-Regel, sondern auch “complain”, definieren. Dabei sendet Fail2ban automatisiert an die im öffentlichen Whois der IP-Adresse des Angreifers hinterlegte Mailadresse eine Nachricht, die auch den Auszug aus dem Log beinhaltet.