Версия 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
вкратце:
[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+"