FAQ

Plesk Fail2Ban für Wordpress, Joomla und WHMCS inkl. Regex

Für die Experten unter uns: Wir haben Jails & Filter gegen Brute-Force-Attacken für folgende Content Management Systeme: Wordpress, Joomla und WHMCS.

1. Per SSH auf dem Pleskserver folgende Datei editieren und Code einfügen "/etc/fail2ban/jail.local"

[wplogin-jail]
enabled = true
filter = wp-login-filter
action = iptables-multiport[name="wp-login", port="http,https", protocol="tcp"]
logpath = /var/www/vhosts/system/*/logs/*access*log
        /var/log/apache2/*access.log
bantime = 86400
maxretry = 6

[joomla-login-jail]
enabled = true
filter = joomla-login-filter
action = iptables-multiport[name="joomla-login", port="http,https", protocol="tcp"]
logpath = /var/www/vhosts/system/*/logs/*access*log
        /var/log/apache2/*access.log
bantime = 86400
maxretry = 6

[whmcs-jail]
enabled = true
filter = whmcs-login-filter
action = iptables-multiport[name="whmcs-login", port="http,https", protocol="tcp"]
logpath = /var/www/vhosts/system/*/logs/*access*log
        /var/log/apache2/*access.log
bantime = 86400
maxretry = 6

2. Per SSH auf dem Pleskserver folgende Dateien im Verzeichnis anlegen und Code einfügen "/etc/fail2ban/filter.d/"


2.1 wp-login-filter.local:
[Definition]
failregex = ^ .* "POST .*(wp-login.php|xmlrpc.php) HTTP/.*" (200|401)
ignoreregex =

2.2 joomla-login-filter.local:
[Definition]
failregex = ^ .* "POST .*(\/administrator\/index\.php|\/index\.php\/component\/users\/\?task=user\.login) HTTP/.*" 303
ignoreregex =

EDIT: Joomla schreibt leider keine korrekten Logeinträge (bisher). Der oben genannte failregex hat viele false positives. 
Man könnte versuchen "\[client (\S+):\d+\] .* user (\S+) authentication failure" (ohne Anführungsstriche) einzubinden. Dies wurde noch nicht getestet.
Dann müsste man aber auch https://extensions.joomla.org/extension/fail2ban/ als Komponente bei Joomla installieren.

2.3 whmcs-login-filter.local:
[Definition]
failregex = ^ .* "GET .*(\/clientarea\.php\?incorrect\=true|\/admin\/login\.php\?incorrect\=1) HTTP/.*" 200
ignoreregex =

Hinweise: - Hier gehen wir davon aus, dass das admin Verzeichnis auch /admin/ hier abrufbar ist. Ansonsten bitte anpassen. Vor jedes Sonderzeichen kommt ein \
- Dateien bitte ohne Doppelpunkt anlegen. Beispielsweise hier einmal der komplette Pfad der Datei für Wordpress: "/etc/fail2ban/filter.d/wp-login-filter.local"

3. Fail2Ban neustarten:

service fail2ban restart

Mit folgendem befehl kann überprüft werden, ob Fehler entstanden sind:
service fail2ban status

4. Fertig.
  • 3 Benutzer fanden dies hilfreich
War diese Antwort hilfreich?

Verwandte Beiträge

TMP Verzeichnis für einen Webserver absichern

  1. Überprüfen, ob es bereits ein TMP Verzeichnis existiert. # mount | egrep --color -w...

Perfect Forward Secrecy

Perfect Forward Secrecy (PFS), auf deutsch etwa perfekte vorwärts gerichtete Geheimhaltung, ist...

Wie wird der SSH Key von Rehost24 installiert, um dem Support Zugang zum Server zu geben?

Um dem Support zugriff auf einen Server zu geben - können Sie unseren SSH Key platzieren. Führen...

Plesk mit SpamExperts Mail-Relay pro Domainbasiert einrichten

Im folgendem werden wir kurz und knapp Plesk Onyx auf Debian/Cloudlinux beibringen, wie er per...