我目前正在優化我的fail2ban過濾器。Fail2ban未能匹配日期格式
我正則表達式之前是這樣的:
<HOST> \- \- \[.*\] \"(GET|POST) .+ HTTP\/\d\.\d\" 40\d \d{2,5} \"(.*)\" \"(.*)\"$
,它是在爲一個包含404錯誤這樣的每一行:
<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"
之後,我改變了:
\[.*\]
通過
\[[0-9]{2}\/.{3}\/[0-9]{4}\:([0-9]{2}\:){2}[0-9]{2} \+[0-9]{4}\]
但現在它與fail2ban不再匹配,而像regex101這樣的網站仍然認可正確的模板! (不要介意\ HOST,如果我沒有把這個詞出現的話)。
我試圖通過[0-9]/通過\/改變\ d:由\: 的fail2ban總是錯過了線,我不知道爲什麼。 。
是否有人遇到同樣的問題?謝謝 ! :)
你是故意逃避兩個'*'在第一正則表達式的結束?這似乎阻止了它的工作。 我可以通過以下方法使其與您的更改一起運行:http://regexr.com/3giqc – Bananaapple
@Bananaapple不會在代碼塊語法之前忘記刪除它。我的第二個正則表達式可以和你的在線工具一起工作,但不會與fail2ban:/ – Levrifon
嗯,根據http://fail2ban.readthedocs.io/en/latest/filters。html#regular-expressions fail2ban使用Python的正則表達式,即使我測試它與特定的風格相比,你的正則表達式也能正常工作:https://www.debuggex.com/r/xC-YEMB4P-DM-Td2 - 這留下了兩個選項然後。 1 - fail2ban中的錯誤,2 - 您的錯誤或其他疏忽。你測試過他們的命令行工具的正則表達式嗎? ./fail2ban-regex --help – Bananaapple