【问题标题】:Fail2Ban regex for EXIM (TCP/IP connection count)EXIM 的 Fail2Ban 正则表达式(TCP/IP 连接计数)
【发布时间】:2014-11-27 15:14:58
【问题描述】:

我正在尝试为 Fail2Ban 的 exim 过滤器创建一个正则表达式条件。在我的 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)s 来自 \S+ [](:\d+) 的 SMTP 连接? (I=[\S+]:\d+ )?(TCP/IP 连接数 = "\S+")\s*$

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

谢谢!

【问题讨论】:

  • 有人吗?有什么想法吗?我真的不明白为什么不工作,虽然在那个 regex101.com 网站上,正则表达式似乎很好。

标签: regex exim fail2ban


【解决方案1】:
[ \S]+?SMTP connection from \S+? \(TCP\/IP connection count = (?!\b1\b|\b2\b|\b3\b)\d+\)

试试这个。查看演示。

http://regex101.com/r/hQ9xT1/10

【讨论】:

  • 谢谢你,但不工作!这是我得到的: /etc/fail2ban 中的 root@zira(8 个条目,0 个隐藏) 88/25083# fail2ban-regex /var/log/exim_mainlog "来自 \S+ 的 SMTP 连接?(TCP\/IP 连接计数 = ( ?!\b1\b|\b2\b|\b3\b)\d+)" -bash: !\b1\b: 在 /etc/fail2ban 中找不到事件 root@zira(8 个条目,0 个隐藏)跨度>
  • 你的fail2ban 支持前瞻吗?
  • 虽然在那个网站上正则表达式可以完美运行,但它不起作用。我什至尝试过这样简单: SMTP connection from \S+? (TCP\/IP 连接数 = 只是为了尝试检测所有连接但它仍然不起作用......
  • 我不知道它是否支持前瞻。如何检查?
  • Fail2ban 是用 python 编写的,所以基本上正则表达式应该可以工作,但它没有
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多