Regex Fail2ban无法匹配日期格式
我目前正在优化fail2ban过滤器 在我的正则表达式出现之前:Regex Fail2ban无法匹配日期格式,regex,date,format,match,fail2ban,Regex,Date,Format,Match,Fail2ban,我目前正在优化fail2ban过滤器 在我的正则表达式出现之前: <HOST> \- \- \[.*\] \"(GET|POST) .+ HTTP\/\d\.\d\" 40\d \d{2,5} \"(.*)\" \"(.*)\"$ 借 但现在它不再与fail2ban匹配,而像regex101这样的网站仍然能识别正确的模式!(如果我没有输入单词,请不要介意\HOST) 我试图通过\/\/\/:通过\:改变\d 失败2可能总是漏掉台词,我不知道为什么 有人也有同样的问题吗?谢谢!:)
<HOST> \- \- \[.*\] \"(GET|POST) .+ HTTP\/\d\.\d\" 40\d \d{2,5} \"(.*)\" \"(.*)\"$
借
但现在它不再与fail2ban匹配,而像regex101这样的网站仍然能识别正确的模式!(如果我没有输入单词,请不要介意\HOST)
我试图通过\/\/\/:通过\:改变\d
失败2可能总是漏掉台词,我不知道为什么
有人也有同样的问题吗?谢谢!:) 您需要转义最后一个
+
和后面的]
\[[0-9]{2}/{3}/[0-9]{4}:([0-9]{2}:){2}[0-9]{2}+[0-9]{4}\]
此外,也可能是前斜杠,这取决于特定的正则表达式解释器。可能唯一需要的模式是:
*404
这应该根据实际日志进行测试。fail2ban regex命令行实用程序对于测试非常有用
请注意,可能会出现误报,因此将响应代码移到主机之后,然后将日期/时间移到主机之后会更容易,在这种情况下,^404
会更精确
关于性能,这似乎不太容易出错,而且即使不比更长的时间快,也同样快。有关过滤器性能提示,请参阅下面的第二个链接
*
?因为这似乎阻止了它的工作。我能够让它与您的更改一起运行,方法是取消这些:@Bananaapple No在代码块语法之前,我忘记删除它了。我的第二个正则表达式可以使用像您这样的在线工具,但不能使用fail2ban:/Hm,根据fail2ban使用Python的正则表达式风格,即使在我针对特定风格进行测试时,您的正则表达式也可以正常工作:-这就剩下两个选项。1-故障2栏中的错误,2-输入错误或其他方面的疏忽。你有没有用他们的命令行工具测试过正则表达式/fail2banregex--help@Bananaapple是的,我已经在用fail2ban regex:)测试它,当我从1更改为2时,它不匹配。。可能无法自行提取dateformat,除非我们指定日期?请注意,regex文档中有一些关于datetime的内容:-不确定这是否有帮助/甚至适用于您的案例。谢谢您的回答,这是可行的,是的,但这是最佳执行时间吗?我已经回答了最佳执行时间问题。
<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}\]