fail2ban schützt dein WordPress-Login nach mehreren, fehlgeschlagen Versuchen und sperrt die entsprechende IP-Adresse aus. Installiere das Paket fail2ban:
# apt install fail2ban
Das nötige Konfigurationsfile findet man unter:
/etc/fail2ban/jail.conf
Erstelle eine Kopie vom Originalfile:
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
die verhindert, dass bei einem Update die eigenen Regeln überschrieben werden.
Den aktuellen Status von fail2ban rufst du per systemctl auf:
$ systemctl status fail2ban
● fail2ban.service - Fail2Ban Service Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-11-26 10:14:43 CET; 1 weeks 1 days ago Docs: man:fail2ban(1) Main PID: 655 (fail2ban-server) Tasks: 5 (limit: 4678) Memory: 21.2M CPU: 6min 15.308s CGroup: /system.slice/fail2ban.service └─655 /usr/bin/python3 /usr/bin/fail2ban-server -xf start Warning: some journal files were not opened due to insufficient permissions.
1. Erstelle nun einen Filter unter
# nano /etc/fail2ban/filter.d/wordpress.conf
[Definition]
failregex = ^<HOST> .* "POST .*wp-login.php
^<HOST> .* "POST .*xmlrpc.php
ignoreregex =
2. Anschliessend erstellen oder ergänzen wir noch die entsprechende jail-Datei unter:
# nano /etc/fail2ban/jail.local
[wordpress]
enabled = true
port = http,https
filter = wordpress
action = iptables-multiport[name=wordpress, port="http,https", protocol=tcp]
logpath = /var/log/apache2*/access*log
maxretry = 3
findtime = 60m
3. Starte fail2ban neu:
# /etc/init.d/fail2ban restart
Mittels fail2ban-client -i kann der Status vom jail wordpress abgefragt werden. Hier z. B. wurde die IP 12.34.567.89 nach mehreren, fehlgeschlagen Versuchen gesperrt.
# fail2ban-client -i
fail2ban> status wordpress Status for the jail: wordpress |- Filter | |- Currently failed: 9 | |- Total failed: 12 | `- File list: /var/log/apache2/access.log `- Actions |- Currently banned: 1 |- Total banned: 1 `- Banned IP list: 12.34.567.89
Falls du dich versehentlich selbst aus WordPress ausgesperrt hast, kann die IP wieder entsperrt werden.
fail2ban> set wordpress unbanip 12.34.567.89