mongodb 的 Fail2ban 过滤器

mongodb 的 Fail2ban 过滤器

Fail2Ban版本:0.10.2

我已经尝试了很多用于 MongoDB 远程身份验证失败的过滤器配置文件,但它们都不起作用,我发现问题出在 failregex 上,而我无法想出一个合适的正则表达式。

{"$date":"2021-08-10T17:27:13.498+05:30"},"s":"I",  "c":"ACCESS",   "id":20249,   "ctx":"conn187","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":true,"principalName":"Admin","authenticationDatabase":"admin","remote":"123.456.789.123:60054","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}}

这是我在失败尝试时获得的 mongo 日志。我尝试在正则表达式中使用 <HOST>、<ADDR>,但 <HOST> 给出 0.0.0.0,而 <ADDR> 给出 3:6005(IP 的最后一位数字和端口的 4 位数字)。

过滤该日志的正确正则表达式是什么?

正则表达式我已经尝试过

^(.*Authentication failed.*)|(.*<ADDR>.*)|$
^(.*Authentication failed.*)|(.*<HOST>.*)|$

答案1

  1. https://github.com/fail2ban/fail2ban/issues/2932
  2. https://github.com/fail2ban/fail2ban/issues/3046

不久:

[Definition]

datepattern = ^\{"t":\{"\$date":"%%Y-%%m-%%dT%%H:%%M:%%S\.%%f%%z"}\s*,\s*
_groupre = (?:"(?!(?:msg|attr|client|remote)\b)\w+":(?:"[^"]+"|\w+)\s*[,\}]\s*)
failregex = ^%(_groupre)s*"msg":"Authentication failed"\s*,\s*%(_groupre)s*"attr"\s*:\s*\{%(_groupre)s*"(?:client|remote)":"<ADDR>:\d+"

相关内容