Plesk - Fail2ban versus Wordpress XMLRPC Spam

Powie

Registered User
Da das gerade in den letzten Tagen wieder gehäuft auftritt das via xmlrpc massenhaft Spam in Wordpress geschickt wird habe ich mir eine Lösung via Fail2Ban ausgedacht. Bei Plesk dabei ist ja eine Regel die die falschen Login Versuche für WP kickt, mit etwas Recherche habe ich daraus auch eine gemacht die gegen die Spam Angriffe hilft. Und das Serverweit.

Es gibt zwar auch Plugins für Wordpress gegen sowas, diese haben aber immer den Nachteil das ja erst der ganze WP Overhead geladen werden muss, die Serverlast entsteht also trotzdem. Ich habe das ganze jetzt mehrere Tage laufen und bin äußerst zufrieden damit.

Eigenen Filter definieren
Im Ordner /etc/fail2ban/filter.d die Datei anlegen: wordpress-xmlrpc.conf mit folgenden Inhalt:

Code:
[Definition]
failregex = ^<HOST> .*POST .*xmlrpc\.php.*
ignoreregex =
Eigene Jail definieren
Im Ordner /etc/fail2ban/jail.d die Datei anlegen: wordpress-xmlrpc.conf mit dem Inhalt:

Code:
[wordpress-xmlrpc]
enabled = true
filter = wordpress-xmlrpc
action = iptables-multiport[name="wordpress-xmlrpc", port="http,https"]
logpath = /var/www/vhosts/system/*/logs/*access*log
maxretry = 5
bantime= 43600

Danach Fail2ban neu starten. Das benötigt dann etwas Zeit da die ganzen neuen Logfiles erst verarbeitet werden müssen, nach ein paar Minuten aber bereits waren bei mir die ersten IP Adressen gesperrt und nach Verifizierung mit den Apache Logs funktioniert das perfekt.

Mehr Details hier: https://goo.gl/JfMtkY
 

marce

Well-Known Member
da die xmlrpc-Schnittstelle heute eigentlich so gut wie keiner mehr braucht hilft auch ein kleiner Block in der .htaccess oder der Server-Konfig in der Art von FilesMatch xmlrpc.php Deny from all.
 

Powie

Registered User
Das ist richtig. Für jemanden der sich auskennt ist das die schnellste Lösung via .htaccess.

Hier ging es aber darum einen Server insgesamt zu sichern auf denen viele WP Installationen sind deren Benutzer sich entweder nicht kümmern oder es auch gar nicht können.
 

marce

Well-Known Member
dann pack das Ding in die allg. Server-Konfig und auf einen Schlag sind alle Instanzen "geschützt".
 
Top