Fail2ban eigener Filter
Da fail2ban einfach nur Logdateien überprüft können wird einfache eigene Filter für unsere Anwendung bauen.
In diesesm Beispiel baue ich einen Filter für das Login von Dokuwiki.
- Ein passendes Plugin installieren, welches den Login von Dokuwiki überwacht.
- Einen Filter erstellen der die Logdatei überwacht
- Den Filter aktivieren
Als Beispiel erzeugt dieses Plugin unter /var/log/dokuwiki/login.log eine Logdatei mit folgendem Inhalt
1730823357 2024/11/05 16:15 80.187.82.92 user1 admin - extension 1730823370 2024/11/05 16:16 80.187.82.92 user1 admin 1730823372 2024/11/05 16:16 80.187.82.92 user1 admin - config 1730823391 2024/11/05 16:16 80.187.82.92 user1 logged off 1730823393 2024/11/05 16:16 80.187.82.92 user1 logged in temporarily 1730823431 2024/11/05 16:17 80.187.82.92 user1 logged off 1730823434 2024/11/05 16:17 80.187.82.92 user1 failed login attempt
Mit meinem Filter möchte ich erreichen, dass die Zeile mit „failed login attempt“ erkannt wird.
Dazu lege ich eine Filter Datei mit dem Namen /etc/fail2ban/filter.d/dokuwiki.auth an.
nano /etc/fail2ban/filter.d/dokuwiki.auth
[Definition]
failregex = .*.\d{2}\/\d{2}\/\d{2} \d{2}:\d{2}\t<HOST>\t.*.\tfailed login attempt
ignoreregex =
Hier wird der Regex String festgelegt. Ich empfehle das ganze von hinten zu erstellen. Hier habe ich einfach mit dem String
„failed login attempt“
begonnen und langsam die tabs und die Zahlen (\d) hinzugefügt.
Der Filter kann mit dem Befehl
fail2ban-regex --print-all-matched /var/log/dokuwiki/login.log /etc/fail2ban/filter.d/dokuwiki-auth.log
getestet werden.
Danach muss der Filter noch in der /etc/fail2ban/jail.local aktiviert werden.
nano /etc/fail2ban/jail.local
... [dokuwiki-auth] enabled = true filter = dokuwiki-auth logpath = /var/log/dokuwiki/login.log maxretry = 3 bantime = 3600 ...