【问题标题】:fail2ban and specific RegExfail2ban 和特定的 RegEx
【发布时间】:2021-04-07 12:00:54
【问题描述】:

我需要一个 fail2ban 过滤器的帮助,它应该与 openHAB 中的失败登录尝试匹配。

06-Apr.-2021 18:49:52.726 [WARN ] [core.io.http.auth.internal.AbstractAuthPageServlet] - Authentication failed: Wrong password for user UserThatFailedLogin

06-Apr.-2021 19:41:11.456 [WARN ] [core.io.http.auth.internal.AbstractAuthPageServlet] - Authentication failed: User not found: UserThatFailedLogin

这些都是 A) 密码错误和 B) 不存在用户的日志条目示例。

我玩过https://regex101.com 并想出了以下正则表达式(我的第一个接触点);

(\bAuthentication failed: Wrong password\b|\bAuthentication failed: User not found\b)

虽然它在 regex101 工具中匹配上述示例日志条目,但遗憾的是我在 fail2ban 中没有看到任何匹配项。

如果您能在这里帮助我,我们将不胜感激,在此先感谢您!

【问题讨论】:

  • 请注意,不同的工具使用不同的正则表达式方言。可能是fail2ban 不支持\b 字边界指示器。

标签: regex fail2ban openhab


【解决方案1】:

你到底想禁止什么?

首先,您示例中的两条消息都不包含任何要被禁止的标识符 - 既不是 IP,也不是除用户名之外的其他内容。可以禁止所有内容,但您肯定不会禁止用户名。

然后你需要提供一个自定义的datepattern,它会像下面这样(只是我不确定月份标记是否总是匹配(因为它后面有.)。

所以假设我们在failed 之后有一个 IP 地址,如下所示:

06-Apr.-2021 18:49:52.726 [WARN ] [core.io.http.auth.internal.AbstractAuthPageServlet] - Authentication failed from 192.0.2.1: Wrong password for user UserThatFailedLogin
06-Apr.-2021 19:41:11.456 [WARN ] [core.io.http.auth.internal.AbstractAuthPageServlet] - Authentication failed from 192.0.2.1: User not found: UserThatFailedLogin

您的过滤器可能如下所示:

[Definition]
datepattern = %%d-%%b\.-%%Y %%H:%%M:%%S\.%%f
failregex = ^\s*\[WARN\s*\] \[core.io.http.auth.internal.AbstractAuthPageServlet\] - Authentication failed from <ADDR>: (?:Wrong password for user|User not found:) <F-USER>\S+</F-USER>

但是没有任何标识符可以禁止,嗯...

【讨论】:

  • 非常感谢您抽出宝贵时间 - 不幸的是,openhab 似乎没有在日志中提供任何标识符,所以我想我在这里的问题已经过时了。也许他们将来会添加这个,那么我肯定会回到你在这里提供的内容。再次非常感谢,先生,祝您周末愉快!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多