Fail2ban ist eine Wissenschaft. (Artikel von 2010-02-21 19:00)
Naja, nicht wirklich. Aber die Regular Expression sind es. Einfache Dinge gehen mir mittlerweile gut von der Hand, aber die Lücken sind größer als die Wissensinseln. Wenn man sich allerdings den Wikipedia Artikel ansieht kann man schon zu den Schluß kommen, das es die Regex eine Wissenschaft sind. Für mich sind sie das auch. Anders ist es nicht zu erklären, das ich Stunden brauchte, bis ich den Ausdruck für pure-ftpd richtig erstellt hatte.
Doch wie testet man das eigentlich richtig? Dafür hat fail2ban das tool fail2ban-regex mitgeliefert
Der korrekte Aufruf erschließt sich nicht sofort. Der richtige Aufruf lautet:
fail2ban-regex logfile 'regexp'
pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]\s*$
Für sasl sieht es so aus
: warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed: \w+
Update 27.8.2011:
weil die ewige Sucherei nach irgendwelchen lücken in Programmen, die ich gar nicht installiert habe, mich a) nervt und b) unnötig das error.log vollmüllt, habe ich nun mittlerweile dieses hier:
fail2ban-regex /tmp/v '[[]client (?P<host>\S*)[]] File does not exist: .*\.php'
Wo /tmp/v ein Ausschnitt eines Apachelogs ist, wo einige der Fehler gehäuft auftreten.
Der regexp Ausdruck in den ' ' ist exakt der Ausdruck, der in die Jail Datei in /etc/fail2ban/filter.d/ gehört.
Noch der Hinweis, das hinter dem regexp in der Datei kein space sein darf, es gehört sonst zum Ausdruck.
Happy Hacking!
ich bin so froh Dich mit den Problemen auf meiner Seite zu haben!
SPAM jeder Art ist echt zum k....
Wir rackern uns ab und werden auch noch (fast) lahmgelegt! geht nicht, (garnich)