1

我正在尝试创建一个正则表达式来匹配 Xen 的 XAPI 日志。问题是 IP 存储在第一行,失败消息存储在第二行。这是一个例子:

Jan  8 23:07:42 myserver stunnel: LOG5[6732:3073162128]: xapi connected from 1.1.1.1:55002
Jan  8 23:07:42 myserver xapi: pam_unix(xapi:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=  user=root

我的正则表达式是:

^.*xapi connected from <HOST>:[0-9]*\n.*xapi: pam_unix.xapi:auth.: authentication failure;.*$

这在 VI 中可以正常工作(显然没有 ),但在 fail2ban 中不行。我的测试似乎表明问题出在 \n. 这可能与fail2ban吗?

我发现这篇 Stackoverflow 文章:Can regex match be based on two line of text? . 我只是将换行视为一个字符。有没有人开发了支持多行信息的 Fail2Ban 过滤器?(我正在使用 Fail2Ban v0.8.4。如果重要的话)

4

2 回答 2

2

使用fail2ban v0.9.0,这是可能的(没有检查旧版本)。您必须指定maxlines选项。尝试以下过滤器文件:

[Init]
maxlines = 2

[Definition]

failregex = ^.*xapi connected from <HOST>:[0-9]*\n.*xapi: pam_unix.xapi:auth.: authentication failure;.*$

ignoreregex =
于 2014-11-04T21:01:58.283 回答
0

免责声明:我不知道 Fail2Ban。一个可能的问题是您^同时&使用\n. 我不认为他们混合得很好。它们是指示线边界的不同且同时的方式。

你最好\n系统地使用。

还要将 .* 替换为 .*?,以避免在整个日志中产生...

于 2013-01-10T10:05:39.110 回答