wp-login.php mit fail2ban vor POST-Flood schützen

Von | 6. Oktober 2014

Ich habe Euch vor kurzem ja empfohlen die Admin-Anmeldung auf https umzuleiten: sichere Anmeldung erzwingen.

Die Idee ist war grundsätzlich gut, reicht aber alleine nicht aus um ein DOS-Angriff zu verhindern. Der dumme Boot bekommt die Umleitung auf https nicht gebacken und fängt diesen Fehler auch nicht ab. Daher versucht Er weiterhin im Sekundentakt einen POST-Request zu senden. Dummerweise reagiert WordPress jedes mal auf diesen Versuch. Das verbraucht unnötig viel CPU-Power und erzeugt bei mir jedes mal eine System-Last-Meldung.
Daher jetzt die Idee den POST-Flood ebenfalls mit fail2ban zu bekämpfen.

daher hab ich folgenden Filter angelegt:

[Definition]
failregex = ^<HOST> .* "POST /wp-login.php
ignoreregex = 

und die /jail.conf um folgende Einträge erweitert:


[wp-login]
enabled = true
filter = wp-login
port = http,https
logpath = /var/log/nginx/*.log
maxretry = 5
findtime = 10

Ganz wichtig ist hier der Parameter findtime. Ohne diesen sperrt Ihr euch früher oder später selbst aus ;)
Ich hoffe, dass damit jetzt endlich wieder Ruhe einkehrt :)