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