my personal code snippet database

Linux

Fail2Ban Filter für WordPress

Um Serverübernahme durch SSH Logins zu verhindern wird gerne das Tool Fail2Ban eingesetzt. Ich möchte selbiges Tool für den Schutz von WordPress Instanzen verwenden. Installation wie folgt:

Installation des Dienstes

$ sudo apt update
$ sudo apt install fail2ban

Schreiben der Definitionsdatei (dem Filter wonach in den Webserver Logs gesucht werden soll)

/etc/fail2ban/filter.d/wordpress.conf

[Definition]
failregex = ^<HOST>.*POST.*(wp-login\.php|xmlrpc\.php).* 200

Damit werden Zugriffa uf wp-login.php und xmlrpc.php erkannt und je nach Häufigkeit der Zugriffe blockiert.

Nun braucht es noch die Jail Konfiguration

/etc/fail2ban/jail.local

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/*.log
findtime = 60
maxretry = 10
bantime = 3600

Übersetzt bedeutet diese Konfiguration folgendes: Wenn eine IP innerhalb von 60 Sekunden (findtime) den Filter (Aufruf auf wp-login.php oder xmlrpc.php) öfters als 10 Mal auslöst, wird diese Adresse für 3600 Sekunden (1 Stunde) blockiert.

Nun muss der Dienst noch neu gestartet werden um die Konfiguration ein zulesen

$ sudo systemctl restart fail2ban