Regex 故障2 EXIM的正则表达式(TCP/IP连接计数)

Regex 故障2 EXIM的正则表达式(TCP/IP连接计数),regex,exim,fail2ban,Regex,Exim,Fail2ban,我正在尝试为Fail2Ban的exim筛选器创建正则表达式条件。在我的进出口日志中,我有如下条目: 2014-11-27 17:09:05来自[42.117.255.244]的SMTP连接(TCP/IP连接计数=1) 2014-11-27 17:09:14来自[118.68.249.18]的SMTP连接(TCP/IP连接计数=2) 2014-11-27 17:09:15来自[113.188.85.220]的SMTP连接(TCP/IP连接计数=3) 因此,我需要一个正则表达式过滤器来分析exim日

我正在尝试为Fail2Ban的exim筛选器创建正则表达式条件。在我的进出口日志中,我有如下条目:

2014-11-27 17:09:05来自[42.117.255.244]的SMTP连接(TCP/IP连接计数=1)

2014-11-27 17:09:14来自[118.68.249.18]的SMTP连接(TCP/IP连接计数=2)

2014-11-27 17:09:15来自[113.188.85.220]的SMTP连接(TCP/IP连接计数=3)

因此,我需要一个正则表达式过滤器来分析exim日志,如果TCP/IP连接计数>3,则fail2ban将在fail2ban配置中指定的时间内阻止该IP

到目前为止,我尝试的是这样的:

failregex=^%(pid)的SMTP连接来自\s+[](:\d+)?(I=[\S+]:\d+)(TCP/IP连接计数=“\S+”)\S*$

但它失败了。。。我不擅长正则表达式,所以我需要你的帮助

谢谢大家!

[ \S]+?SMTP connection from \S+? \(TCP\/IP connection count = (?!\b1\b|\b2\b|\b3\b)\d+\)
试试这个。看演示


谢谢,但它不起作用!以下是我得到的:root@zira在/etc/fail2ban(8个条目,0个隐藏项)88/25083#fail2ban regex/var/log/exim_mainlog“来自\S+?(TCP\/IP连接计数=(?!\b1\b | \b2\b | \b3\b)\d+)-bash:\b1\b:未找到事件root@zira在/etc/fail2ban(8个条目,0个隐藏)中,您的
fail2ban
是否支持lookaheads?尽管在该站点上正则表达式工作得很好,但它不工作。我甚至尝试过这样简单地实现它:来自\S+的SMTP连接?(TCP\/IP connection count=只是尝试检测所有连接,但它仍然不工作…我不知道它是否支持lookaheads..如何检查?Fail2ban是用python编写的,因此基本上正则表达式应该可以工作,但它不是唯一的?有什么想法吗?我真的不明白为什么它不工作,尽管在regex101.com网站上,正则表达式x表达式似乎很好。