Kurz gesagt, in diesem Tutorial finden Sie die Befehlszeilen, über die Sie Fail2Ban installieren und konfigurieren können für WordDrücken. Sichert die Authentifizierung WordPress und Brute-Force-Abfragen von xmlrpc.php.
Auf der Plattform entwickelte Blogs und Websites WordPress sind häufig Ziel von Cyberangriffen. Die meisten Angriffe erfolgen mit roher Gewalt und zielen auf die Authentifizierungssitzung ab oder nutzen XML-RPC (Remote Procedure Call using XML). Glücklicherweise ist fail2ban für diese Situationen eine sehr nützliche Sicherheitslösung. Wenn Sie eine Website sichern möchten WordPress Befolgen Sie mit fail2ban die Konfigurationsschritte in diesem Tutorial.
Stellen Sie zunächst sicher, dass Sie über eine SSH-Verbindung Zugriff auf den Webserver haben und dass die Anwendung fail2ban installiert ist.
Fail2Ban-Konfiguration für WordPress auf Debian
1. Zunächst müssen Sie sicherstellen, dass die Anwendung fail2ban auf dem Server installiert und ausgeführt wird. Führen Sie die folgende Befehlszeile aus:
systemctl status fail2ban
In der Ausgabe sollten Sie etwa Folgendes sehen:
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-03-11 00:39:32 EET; 6 days ago
Docs: man:fail2ban(1)
Main PID: 917 (fail2ban-server)
Tasks: 17 (limit: 76843)
Memory: 33.2M
CPU: 17min 1.752s
CGroup: /system.slice/fail2ban.service
└─917 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Wenn fail2ban nicht auf Ihrem Server installiert ist, müssen Sie es installieren. Führen Sie die Befehlszeile aus, um fail2ban unter Debian/Ubuntu zu installieren:
sudo apt install fail2ban
2. Der nächste Schritt besteht darin, den fail2ban-Filter für WordDrücken. Führen Sie die Befehlszeile im Terminal aus, um den Filter zu erstellen und zu bearbeiten wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
In der Datei wordpress.conf
setzt die Filter für die Authentifizierung WordPress und für die Datei xmlrpc.php
wie folgt:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
Dies bedeutet, dass mit jeder Methode, GET
oder POST
, wenn auf die Dateien wp-login.php oder xmlrpc.php zugegriffen wird, kann eine Regel für fail2ban erstellt werden. Voraussetzung ist, dass diese Dateien existieren und für den Angreifer zugänglich sind. Das heißt, beim Zugriff sollte der Code 200 (ok) zurückgeben.
Speichern Sie die Datei /etc/fail2ban/filter.d/wordpress.conf
.
3. Der nächste Schritt ist die Konfiguration des „Jails“ für WordDrücken. Dies ist der Punkt, an dem die meisten Benutzer verwirrt sind, da die Regeln je nach Hosting-Verwaltungssystem (sofern vorhanden) oder Webserverkonfiguration unterschiedlich festgelegt werden müssen.
Wenn Sie HestiaCP verwenden, VestaCP oder MyVesta, erstellen und bearbeiten Sie die Datei /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Fügen Sie dieser Datei die folgenden Zeilen hinzu:
[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/domains/*.log #or apache2.
maxretry = 5
findtime = 1800
bantime = 3600
action = hestia[name=WEB] #hestacp action.
Passen Sie die oben genannten Parameter Ihren Anforderungen entsprechend an. Wenn in der von mir angegebenen Konfiguration innerhalb eines Intervalls von 1800 Minuten fünf wiederholte Versuche von derselben IP erfolgen, wird diese mithilfe der HestiaCP-Aktion für das Web für 5 Minuten blockiert. (hestia[name=WEB]
). Hier benötigen Sie je nach System auf Ihrem Server Hilfe.
Es ist auch sehr wichtig, „logpath
". Aus diesen Protokollen werden die Daten extrahiert, auf deren Grundlage Maßnahmen ergriffen werden. Stellen Sie sicher, dass der Standort korrekt ist.
Wenn Sie kein Verwaltungssystem installiert haben, müssen Sie IPs mit fail2ban blockieren für WordPress direkt erfolgen durch iptables
. Die Vorgehensweise sieht wie folgt aus:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Als Klammer statt /etc/fail2ban/jail.local
Sie können für die Konfiguration auch eine separate Datei verwenden, etwa: /etc/fail2ban/jail.d/wordpress.conf
.
Nachdem Sie Ihre Anpassungen vorgenommen haben, wenden Sie die Änderungen an.
sudo systemctl restart fail2ban
4. Überprüfen Sie nach dem Neustart, ob fail2ban für WordPress Werke:
fail2ban-client status wordpress
Status for the jail: wordpress
|- Filter
| |- Currently failed: 355
| |- Total failed: 33873
| `- File list: (log files per domain)
- Actions
|- Currently banned: 127
|- Total banned: 680
`- Banned IP list:
Wenn Sie blockierte IPs in dieser Liste finden, stellen Sie sicher, dass diese auch blockiert sind in iptables
. Ich bin auf die Situation gestoßen, dass ich aufgrund einer Fehlkonfiguration in fail2ban sah, dass eine IP blockiert war, in Wirklichkeit aber immer noch auf wp-login.php
oder xmlrpc.php
.
Um zu überprüfen, ob alles ordnungsgemäß funktioniert, wählen Sie eine blockierte IP aus der Fail2ban-Liste und suchen Sie sie in iptables.
Führen Sie die Befehlszeile aus:
iptables -L -v -n --line-numbers
Wenn die von fail2ban blockierte IP-Adresse auch in dieser Liste enthalten ist, bedeutet dies, dass Sie fail2ban dafür korrekt konfiguriert haben. WordDrücken Sie.
Verwandt: So setzen Sie das Administratorkennwort zurück in WordDrücken. Kein Zugriff auf E-Mail.
Gleichzeitig wird dringend empfohlen, das Protokoll mit Fail2Ban-Aktionen zu überprüfen:
sudo tail -f /var/log/fail2ban.log
Wenn Sie jedoch Fragen haben oder Hilfe benötigen, kann ich Ihnen in den Kommentaren weiterhelfen.