SIGN IN YOUR ACCOUNT TO HAVE ACCESS TO DIFFERENT FEATURES

PASSWORT VERGESSEN!

LOGIN-DATEN VERGESSEN?

AAH, WARTET, ICH ERINNERE MICH WIEDER!

OneSystems

OneSystems

System Management aus der Schweiz

OneSystems
Untere Grundgasse 3, 9500 Wil, Schweiz

Open in Google Maps
Haben Sie Fragen? Senden Sie uns doch eine Nachricht
  • LOGIN
  • No products in cart.
  • Home
  • Dienstleistungen
    • E-Mail
      • b1gMail / b1gMailServer
      • b1gMail Plugins
    • Webdesign
  • Blog
  • Hilfe & Support
  • Mein Konto
  • Kontakt
  • Home
  • Blog
  • Linux
  • WordPress mit Fail2Ban absichern
7. Februar 2023

WordPress mit Fail2Ban absichern

WordPress mit Fail2Ban absichern

von Michael Kleger / Mittwoch, 02 März 2016 / Veröffentlicht in Linux, Tipps und Tricks, Webseiten, Webserver

Vor einiger Zeit hab eich eine Beitrag verfasst wie man ownCloud mit Fail2Ban absichern kann nun möchte ich zeigen wie man das selbe mit WordPress macht.

 

WordPress Plugin

Da WordPress standardmässig fehlerhafte Logins immer mit einem 200 HTTP code (OK) bestätigt ist es sehr schwierig die Logins zu überwachen. Mit der folgenden Erweiterung wird es möglich das bei fehlerhaften Logins das aus dem code 200 ein code 403 HTTP code (Forbidden) in den Logs aufgeführt wird.

Im WordPress wp-content Ordner muss ein neuer Ordner mit dem Namen „mu-plugins“ für Must Use Plugins angelegt werden, darin muss eine neue Datei mit einem beliebigen Namen (bei uns wp-login.php) angelegt werden mit dem folgenden Inhalt.

<?php
function my_login_failed_403() {
    status_header( 403 );
}
add_action( 'wp_login_failed', 'my_login_failed_403' );

 

Erstellen der Filterdatei und Konfiguration in Fail2Ban

Erstellen der Datei /etc/fail2ban/filter.d/wordpress.conf  mit folgenden Inhalt:

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

 

Und in der Datei /etc/fail2ban/jail.conf folgendes hinzufügen:

[wordpress]
enabled = true
filter  = wordpress
logpath = /var/log/httpd/access_log
maxretry = 3

 

 

Neue Regeln für Fail2Ban testen

Welches natürlich nur geht, wenn man sich mal falsch anmeldet, sonst kann nichts gefunden werden.

root@test:/# fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/wordpress.conf

Running tests
=============

Use   failregex filter file : wordpress, basedir: /etc/fail2ban
Use         log file : /var/log/apache2/access.log
Use         encoding : UTF-8


Results
=======

Failregex: 38 total
|-  #) [# of hits] regular expression
|   1) [38] .*POST.*(wp-login\.php|xmlrpc\.php).* 403
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [230241] Day(?P<_sep>[-/])MON(?P=_sep)ExYear[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)?
`-

Lines: 230241 lines, 0 ignored, 38 matched, 230203 missed
[processed in 239.60 sec]

 

 

Die Regeln funktionieren. Der Service/Daemon Fail2ban kann neu gestartet werden:

root@test:/# systemctl restart fail2ban

Ähnliche Beiträge

  • Tweet
Tags absichern, Fail2Ban, Webserver, Wordpress

About Michael Kleger

What you can read next

QNAP TS-269 Pro check_mk_agent installieren
SSH mit 2-Faktor-Authentifizierung durch Google Authenticator
Microsoft ISO Downloaden aber wie?

4 Comments to “ WordPress mit Fail2Ban absichern”

  1. speefak sagt:Antworten
    1. Februar 2017 an 17:12

    Logfile Pfad unter debian 8 ist nicht mehr /var/log/httpd/access_log sonden /var/log/apache2/access.log

    mfg 😉

    1. Michael Kleger sagt:Antworten
      1. Februar 2017 an 19:11

      Nicht nur erst seit Debian 8 sondern auch schon früher, bei RHEL Systemen sind die immer unter /var/log/httpd/… zu finden.
      Die Anleitung kann aber natürlich für die anderen Distributionen angepasst werden.

  2. T.K. sagt:Antworten
    9. April 2021 an 12:44

    Ich fürchte, dieser Ansatz funktioniert nicht verlässlich. Die Annahme, dass ein fehlgeschlagener Login immer zu einem HTTP-Status-Code 200 führt, ist nicht zutreffend. Wenn ich z.B. dem POST noch ein Argument mitgebe, etwa: POST /wp-login.php?action=register führt das zu einem 302 Status-Code – obwohl der Login nicht erfolgreich war. Wir sehen derzeit Angriffe genau nach diesem Muster… fail2ban kriegt das dann mit der o.g. regex nicht mit und der Angreifer kann ungebremst Passworte erraten…

    1. Michael Kleger sagt:Antworten
      11. April 2021 an 14:15

      Besten Dank für den Hinweis, der Filter ist mittlerweile auch schon einige Jahre alt und auf der Seite von WordPress hat sich in der Zeit einiges getan.

      Ich habe den Regex etwas angepasst und eine kleine Erweiterung für die WordPress Installation, leider noch nicht 100% getestet sollte aber so wieder funktionieren.

Schreibe einen Kommentar Antworten abbrechen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Letzten Beiträge

  • Windows Updates Fehler 0x8024500c

    Es gibt verschiedenste Gründe, warum der Fehler...
  • VMware ESXi updaten

    Auch ein ESXi Server, der von sich aus schon se...
  • VMware vCenter vCLS „The task was canceled by a user.“

    Nach einem vCenter oder ESXi Update kann es vor...
  • Eigene Cloud mit einem Raspberry Pi und Nextcloud (Teil 4)

    Damit die Cloud Best möglichst abgesichert ist ...
  • Eigene Cloud mit einem Raspberry Pi und Nextcloud (Teil 3)

    Statische interne IP-Adresse Damit die Nextclou...

Neueste Kommentare

  • LVM, Linux Festplatte vergrößern | Gumpert IT Wiki bei LVM Festplatte vergrössern ohne neue Partition
  • Detlef bei Remote Desktop mit Linux Mint 19
  • Michael Kleger bei Remote Desktop mit Linux Mint 19
  • Detlef bei Remote Desktop mit Linux Mint 19
  • Michael Kleger bei WordPress mit Fail2Ban absichern

Kategorien

  • b1gMail
  • CentOS
  • Debian
  • Linux
  • Mac OSX
  • Microsoft Exchange
  • Microsoft Outlook
  • Mint
  • Monitoring
  • Neuigkeiten
  • Nextcloud
  • PowerShell
  • Python
  • Raspberry Pi
  • Sicherheit
  • Tipps und Tricks
  • VMware
  • Webseiten
  • Webserver
  • Windows

Der IT-Dienstleister OneSystems mit Sitz in Wil versteht sich als Full-Service-Dienstleister für die Umsetzung und Betreuung von IT-Infrastrukturen, Internetseiten und individueller Programmierung. Wir betreuen Kunden aus der ganzen Schweiz, Deutschland und Österreich.

Wir legen grossen Wert auf eine technisch einwandfreie Umsetzung nach aktuellen Standards bei nachhaltiger Qualität.

Letzten Blog Posts

  • Windows Updates Fehler 0x8024500c

  • VMware ESXi updaten

  • VMware vCenter vCLS „The task was canceled by a user.“

Kontakt

Email: info@onesystems.ch

OneSystems
Untere Grundgasse 3
9500 Wil
Schweiz

Copyright © 2022 OneSystems, Alle Rechte vorbehalten.
Impressum | AGBs | Kontakt

OBEN
 

Lade Kommentare …