![fail2ban 正则表达式在测试站点上匹配,但 fail2ban 本身不匹配](https://linux22.com/image/718450/fail2ban%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%9C%A8%E6%B5%8B%E8%AF%95%E7%AB%99%E7%82%B9%E4%B8%8A%E5%8C%B9%E9%85%8D%EF%BC%8C%E4%BD%86%20fail2ban%20%E6%9C%AC%E8%BA%AB%E4%B8%8D%E5%8C%B9%E9%85%8D.png)
你好,我正在尝试匹配以下日志行:
E/Sun, 04 Mar 2018 21:40:32 +0100: Error logging in from RemoteIP: 1.2.3.4
经过几个小时的努力,我终于得到了一个可以在 debuggerex、regextester 等上运行的正则表达式。但我无论如何也无法让 fail2ban 匹配它。
我在 fail2ban 中的正则表达式如下:
^E\/(Mon|Tue|Wed|Thu|Fri|Sat|Sun), ([0-1][0-9]) (\w\w\w) (\d\d\d\d) (00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]) (\+[0-9][0-9][0-9][0-9]): Error logging in from RemoteIP: <HOST>$
我是否遗漏了一些基本的东西?
答案1
因为我无法发现您的问题,所以这里是修复 fail2ban 匹配正则表达式的一般方法。
- 验证你有一个包含所需匹配的文件,例如
/var/log/foo.log
- 称呼
fail2ban-regex /var/log/foo.log 'substring of regex'
- 如果不匹配,请从正则表达式中删除几个单词并转到2。
- 如果匹配,则附加原始正则表达式的几个单词并转到2,或者:
- 如果根据 3. 和 4. 您已经确定哪个单词是错误的,请改正它。
- 如果修复后,完整的正则表达式仍然不匹配,请使用修复后的正则表达式重复整个过程。