Seite anzeigenÄltere VersionenLinks hierherNach oben Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt. ==== 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 <code> 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 </code> \\ 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. <code Bash>nano /etc/fail2ban/filter.d/dokuwiki.auth</code> <code> [Definition] failregex = .*.\d{2}\/\d{2}\/\d{2} \d{2}:\d{2}\t<HOST>\t.*.\tfailed login attempt ignoreregex = </code> \\ 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 <code Bash>fail2ban-regex --print-all-matched /var/log/dokuwiki/login.log /etc/fail2ban/filter.d/dokuwiki-auth.log</code> getestet werden. \\ \\ Danach muss der Filter noch in der **/etc/fail2ban/jail.local** aktiviert werden. <code Bash>nano /etc/fail2ban/jail.local</code> <code> ... [dokuwiki-auth] enabled = true filter = dokuwiki-auth logpath = /var/log/dokuwiki/login.log maxretry = 3 bantime = 3600 ... </code>