Spam
Spam

Nicht der erste Artikel zum Thema, aber ein weiterer zur Hilfe gegen unerwünschten Spam welcher über die xmlrpc.php von WordPress abgeliefert wird.

Plattform: Plesk kontrollierter Debian Server mit Fail2ban und mehreren WordPress Installationen.

Fail2ban ist bereits Bestandteil von Plesk und sollte auf jeden Fall aktiviert werden da es auch gegen Attacken via SSH oder anderen Diensten wirkt.  Das Problem mit Spam Versuchen über die xmlrpc.php häuft sich in letzter Zeit, eine Abhilfe über WordPress ist zwar möglich aber nicht effektiv. Filterversuche in WordPress (Plugins) gelingen zwar aber führen dazu das erst der komplette Overhead von WordPress geladen werden muss um auf den Spam zu reagieren. Mit Fail2ban wird die IP Adresse des Spambots  aber bereits vorher geblockt, die Einlieferung wird gar nicht erst möglich.

Eigenen Filter definieren

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

[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:

[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

Dies sind beide notwendigen Konfigurationen die die Angriffe filtern werden.

Aktivieren

Fail2Ban neu starten:

# service fail2ban restart

Somit wird fail2ban neu gestartet. Es werden jetzt die Apache Logfiles der Plesk Domains und Subdomains überwacht und Angriffe auf die xmlrpc.php werden registriert, die IP Adressen via iptables gesperrt.

Bitte setzt das ganze nicht einfach Blind ein sondern überwacht das ganze vor allem am Anfang. Wer viele WordPress Installationen auf dem System hat wird vor allem nach dem Neustart von Fail2ban erst einmal eine höhere Systemlast feststellen bis alle log Files verarbeitet wurden.

Die Überwachung des gesamten Prozesses ist in Plesk möglich, die Jail wird mit aufgelistet und geblockte IP Adressen werden in der Liste der gesperrten IP Adressen mit angezeigt.

Plesk Obsidian

In Plesk Obsidian befindet sich ein fertige Jail Definition für wp-login! Diese könnt ihr einfach aktivieren um die Badbots auszusperren die WP mit Login Versuchen befeuern.