WordPress Spam mit Fail2Ban und Antispam Bee bekämpfen

Fail2ban

Kommentarspam in WordPress ist nervig, egal ob manuelle Freischaltung der Kommentare oder automatisch, ab einer Gewissen Anzahl an Kommentaren nimmt dies viel Zeit in Anspruch.

In einem unserer Blogs die wir betreuen haben wir innerhalb von wenigen Stunden bis zu 300 Kommentare, darunter gerade mal 2-10 Themenbezogene, reale Kommentare. Da wir nicht immer die Zeit haben diese auszusortieren, haben wir auch hier wieder wie auch in unserem anderen Beitrag auf Fail2ban zurückgegriffen.

Den Artikel findet Ihr unter https://www.fragz.de/wordpress-gegen-brute-force-attacken-absichern-mit-fail2ban

Dort ist auch beschrieben wie Ihr Fail2ban installiert. Damit dies aber funktioniert, benötigen wir noch das Plugin Antispam Bee für WordPress. Die Funktionsweise ist recht Simpel.
Spam Kommentare werden mit dem HTTP-Statuscode 403 Forbidden abgelehnt und via iptables die IP Adresse gesperrt.

Antispam Bee installieren und einrichten

Ihr Installiert das Plugin wie gewohnt im Backend. Danach öffnet Ihr eure wp-config.php und fügt folgende Code Zeile ein

define(‚ANTISPAM_BEE_LOG_FILE‘, ‚/var/www/vhosts/fragz.de/httpdocs/spam.log‘);

Passt bitte den Pfad zu eurer Log Datei an. Dies bewerkt das alle Kommentare in der spam.log aufgezeichnet werden. Machen wir uns nun an Fail2ban.

Filter für Spam Kommetare anlegen

Wir legen die Datei apache-wpspam.conf im Ordner /etc/fail2ban/filter.d/ an und füllen diese mit dem Inhalt

[Definition]
failregex = ^ – – .„POST /wp-comments-post.php HTTP.“ 403 [0-9]{1,} „.+“ „.+“ [0-9]{1,} [0-9]{1,}$
ignoreregex =

Die /etc/fail2ban/jail.local füllen wir ebenfalls mit einem Filter. Am Ende der Datei fügen wir folgendes ein

[apache-wpspam]
enabled = true
filter = apache-wpspam
port = http,https
logpath = logpath =
/var/www/vhosts/fragz.de/httpdocs/spam.log
maxretry = 2
findtime = 60
bantime = 2592000

Wenn eure Logdatei des Webservers für die WordPress Installation woanders liegt, müsste Ihr logpath anpassen. /var/log/apache2/access.log zb. Wir geben diesem vor, 2 Einträge in 60 Sekunden führt zu einer sperre von 30 Tagen (bantime = 2592000).

Wir starten Fail2ban neu

systemctl restart fail2ban

und Prüfen mit iptables -L ob auch alles richtig war.

Spam Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.