WordPress vor Brute-Force Attacken schützen

5
(2)

WordPress Server vor Brute-Force Login versuche durch fail2ban schützen

WordPress Schutz bietet sich durch mehrere Methoden an, neben Lock-Down Plugins, die IP-Adressen und Zeitstempel jedes fehlgeschlagenen Anmeldeversuchs aufzeichnen und blockieren, wird mit fail2ban die Kernel Firewall gesteuert, und damit der host für eine vorgegebene Zeit gesperrt.

  Zur Installation von fail2ban auf CentOS 7 muss das EPEL Repository hinzugefügt werden. Für Debian ist fail2ban im Standard Repository.

$ yum install epel-release

Die Installation hier wie folgt als root, es wird eine Standard Konfiguration bereitgestellt, und erfordert keine weiteren Anpassungen:

$ yum install fail2ban -y

Nachdem fail2ban auf dem Server installiert ist, können die Apache access_log nach Anmeldeversuchen untersucht werden.

10.241.83.170 - - [02/Jul/2017:21:23:17 +0200] "POST /xmlrpc.php HTTP/1.1" 200 406
10.241.83.170 - - [02/Jul/2017:21:23:19 +0200] "GET /wp-login.php HTTP/1.1" 200 6387
10.241.83.170 - - [02/Jul/2017:21:23:19 +0200] "POST /wp-login.php HTTP/1.1" 200 6561
10.120.13.157 - - [02/Jul/2017:21:27:55 +0200] "POST /xmlrpc.php HTTP/1.1" 200 406
10.120.13.157 - - [02/Jul/2017:21:27:56 +0200] "GET /wp-login.php HTTP/1.1" 200 6440
10.120.13.157 - - [02/Jul/2017:21:27:56 +0200] "POST /wp-login.php HTTP/1.1" 200 6614

Damit fail2ban weiss nach welchen parser in der Logdatei gesucht werden soll, wird ein Filter erzeugt, durch editieren mit vim oder anderen bevorzugten Editoren, erstellen wir die Filter Datei mit vi /etc/fail2ban/filter.d/wp-auth.conf:

# WordPress brute force auth filter: /etc/fail2ban/filter.d/wp-auth.conf:
#
# Block IPs trying to auth wp wordpress
#
[Definition]
failregex = ^<HOST> .*"POST \/wp-login\.php HTTP\/.*$
            ^<HOST> .*"POST \/xmlrpc\.php HTTP\/.*$
ignoreregex =

Die Hauptkonfiguration von fail2ban befindet sich in der Datei /etc/fail2ban/jail.conf, diese kopiert man zu jail.local, oder es genügt auch nur die zusätzliche Filter Einstellung einzutragen, die Konfiguration hinzufügen mit vi /etc/fail2ban/jail.local

[wp-auth]
enabled = true
filter = wp-auth
action = iptables-multiport[name=AuthFailures, port="http,https"]
logpath = %(apache_access_log)s
bantime = 1800
maxretry = 5

Nach 6 Anmeldeversuche (maxretry) wird für 30 min. blockiert.

Bevor fail2ban eingesetzt wird, ist ein blick in /etc/fail2ban/jail.conf gegeben, unter der Sektion [INCLUDES] sind die Pfade der gerade verwendeten Linux Distribution definiert, bei der Zeile before = paths-distro.conf, hier verwenden wir CentOS 7 dabei ist die passende Datei /etc/fail2ban/paths-fedora.conf :

[INCLUDES]
before = paths-centos.conf

Die Datei paths-fedora.conf  kopieren wir zu paths-centos.conf. Es sollen alle Logs unter /var/www/*/logs ausgelesen werden, dabei die Pfade zu den Apache Logs ggf. anpassen:

# apache server log
apache_error_log = /var/log/httpd/*error_log
apache_access_log = /var/log/httpd/*access_log

# apache virtual hosts
apache_error_log = /var/www/*/logs/*error_log
apache_access_log = /var/www/*/logs/*access_log

Nun fail2ban neu starten um den Filter zu aktivieren.

 $ systemctl restart fail2ban

fail2ban Status überprüfen wie folgt.

$ fail2ban-client status wp-auth

Der iptables Status des Filters in der Kette ausgeben.

$ iptables -vnL | grep AuthFailures

Die iptables Ausgabe des Filter AuthFailures in etwa viel folgt.

Chain f2b-AuthFailures (1 references)
 pkts bytes target     prot opt in     out     source               destination
 252K   32M RETURN     all  --  *      *       10.241.83.170/0            0.0.0.0/0
 232K   29M RETURN     all  --  *      *       10.120.13.157/0            0.0.0.0/0

Hat man sich selber durch zu viel Fehlversuche und Tests ausgesperrt, kann man sich mit folgendem Command wieder entsperren.

$ fail2ban-client set wp-auth unbanip 10.110.51.25

  Der vorteil dieser Methode ist es, durch fail2ban wird der host und alle Dienste blockiert, der Bot wird in der regel zur nächsten Webseite gehen, um die Attacken fortzusetzen, auch ssh und ftp anfragen gehen ins leere, und ICMP anfragen bleiben für die IP-Adresse unbeantwortet.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 2

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.