WordPress & Fail2Ban

WP Fail2Ban - Log-Datei-Überwachung

WP Fail2Ban – Log-Datei-Überwachung

WordPress ist eine sehr beliebte Weblog-Software, welche allerdings gerade wegen der großen Verbreitung und Beliebtheit entsprechend oft angegriffen wird. Mit der folgenden Beschreibung lassen sich Angriffe auf die xml-rpc, unautorisierte Login-Versuche und weiteres sinnvoll blockieren. Natürlich ist es auch weiterhin das A und O, die Software auf einem aktuellen Stand zu halten, so dass bereits bekannte Sicherheitslücken nicht mehr nutzbar sind.

Was ist „fail2ban“?

Mittels fail2ban lassen sich Log-Dateien auf Servern auf bestimmte Wortmuster durchsuchen und beim Zutreffen lässt sich hieraus eine gewünschte Firewall-Regel generieren. Anhand eines Beispiels wird schnell klar, wie fail2ban funktioniert:

Angenommen, fail2ban soll die Login-Versuche auf den Server über einen Dienst überwachen. Dieser Dienst schreibt eine Log-Datei, also quasi ein Protokoll, in welchem vermerkt wird, was gerade passiert. Meldet sich ein Benutzer über diesen Dienst am Server an, schreibt dieser Dienst vereinfacht gesagt: 08.01.2018, 19:42 Uhr: Benutzer "pixel64"(IP-Adresse xx.xx.xx.xx) meldet sich am Dienst an, der Login hat funktioniert. Schlägt die Anmeldung fehl, würde der Dienst beispielsweise etwas in dieser Art in sein Protokoll schreiben: 08.01.2018, 19:42 Uhr: Benutzer "pixel64"(IP-Adresse xx.xx.xx.xx) meldet sich am Dienst an, der Login hat nicht funktioniert - das Passwort war falsch.

Unsere Software fail2ban liest sich in diesem Moment fortlaufend diese Protokolldatei durch. Die Software wurde so konfiguriert, dass beim Vorkommen des Musters „Passwort war falsch“ eine Aktion folgen soll, beispielsweise für diese IP-Adresse den Zugang zum Dienst oder zu allen Diensten auf dem Server zu blockieren.

WP Fail2Ban

Über das Plugin WP Fail2Ban und die dazugehörigen Filter-Regeln lässt sich WordPress so einstellen, dass für verschiedene Aktionen solche Regeln ausgeführt werden. Es ist also notwendig, dass man zum einen das Plugin innerhalb seiner WordPress-Instanz installiert hat und zum anderen Fail2Ban auf dem Server installiert, aktiviert und die zugehörigen Filter- und Aktions-Regeln definiert hat.

Das bedeutet, dass wie in der Beschreibung zum Plugin die Filter-Regeln (auf Debian-basierten Servern unter /etc/fail2ban/filter.d) in das entsprechende Verzeichnis kopiert werden müssen und die Datei jail.local mit dem in der Beschreibung vorgeschlagenen Aktions-Set erweitert wird. Unter Debian-basierten Servern ist die Datei jail.local nicht automatisch im entsprechenden Verzeichnis vorhanden, sondern die Datei jail.conf. Daher ist es notwendig, die Datei jail.local als Kopie von jail.conf zu erstellen. Dies hat den Grund, dass somit lokale Veränderungen nicht von Maintainer-Package-Upgrades überschrieben werden. Wichtig ist noch zu erwähnen (für Debian/*buntu-Server), dass die zu parsende Log-Datei im WP Fail2Ban-Block der jail.local so angepasst werden muss, dass die Log-Datei /var/log/auth.log überwacht wird. In diese Datei werden in den Standard-Einstellungen die entsprechenden WordPress-Aktionen geschrieben (Benutzer meldet sich an, XML-RPC-Authentifizierungsversuch, etc.).

Aufgepasst beim „Testen“ der neuen Einstellungen: Die „WordPress Hard“-Regel sperrt einen Benutzer bereits beim ersten fehlgeschlagenen Login-Versuch (wenn man den WordPress-Login unter Verwendung eines nicht existenten Benutzernamens probiert). Für existente Benutzernamen gibt es drei Login-Versuche vor der Sperrung. Je nachdem, welche Blockierzeit man in den Einstellungen gewählt hat, kann man sich auch ziemlich schnell beim Testen selbst von WordPress ausschliessen. Mit diesem Wissen kann es auch sinnvoll sein, den Administrator-Account nicht „admin“ zu nennen. 😉

WP Fail2Ban @NET73

Auf unseren Servern sind sämtliche Einstellungen für WP Fail2Ban(etwas modifiziert) bereits konfiguriert. Falls du also bereits ein Webhosting-Paket bei net73.com hast, genügt es, wenn du einfach das Plugin in WordPress installierst.

Marc Eggert Webhosting & Webdesign 2018