Ich optimiere gerade meinen fail2ban-Filter.Fail2ban konnte nicht mit dem Datumsformat übereinstimmen
Vor meiner regex war:
<HOST> \- \- \[.*\] \"(GET|POST) .+ HTTP\/\d\.\d\" 40\d \d{2,5} \"(.*)\" \"(.*)\"$
und es funktionierte für jede Zeile, die einen 404-Fehler wie folgt enthält:
<HOST> - - [16/Aug/2017:14:02:33 +0200] "GET /favicon.ico HTTP/1.1" 404 6494 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko"
Danach habe ich geändert, um die:
\[.*\]
Von
\[[0-9]{2}\/.{3}\/[0-9]{4}\:([0-9]{2}\:){2}[0-9]{2} \+[0-9]{4}\]
Aber jetzt passt es nicht mehr mit fail2ban, während Website wie regex101 immer noch das richtige patern erkennen! (Passen Sie nicht auf das \ HOST auf, wenn ich das Wort nicht eingefügt habe).
Ich versuchte \ d von [0-9]/ von \/zu ändern: von \: Fail2ban immer vermisst die Linien und ich weiß nicht, warum.
Hat jemand das gleiche Problem? Vielen Dank ! :)
Sind Sie bewusst die beiden '*' am Ende des ersten regulären Ausdruck zu entkommen? Denn das scheint zu verhindern, dass es funktioniert. Ich war in der Lage, es mit Ihrer Änderung durch Unescaping laufen zu lassen: http://regexr.com/3giqc – Bananaapple
@ Bananaapple Nein, das war vor der Codeblock-Syntax Ich habe vergessen, es zu löschen. Mein zweiter Regex funktioniert mit einem Online-Tool wie deins, aber nicht mit fail2ban:/ – Levrifon
Hm, nach http://fail2ban.readthedocs.io/en/latest/filters.html # reguläre Ausdrücke fail2ban verwendet Pythons Regex-Geschmack, und Ihre Regex funktioniert auch dann gut, wenn ich sie mit diesem speziellen Geschmack teste: https://www.debuggex.com/r/xC-YEMB4P-DM-Td2 - das lässt zwei Optionen übrig dann. 1 - Fehler in fail2ban, 2 - Tippfehler oder andere Versehen an Ihrem Ende. Haben Sie die Regex mit ihrem Befehlszeilenprogramm getestet? ./fail2ban-regex --help – Bananaapple