Fail2Ban SASL 过滤器未检测到失败登录

Fail2Ban SASL 过滤器未检测到失败登录

我在用失败2ban在我的邮件服务器上。今天早上我发现通过 SMTP 进行的登录尝试失败了大约 5000 次(在 1 小时内),但这些尝试都没有被我的 sasl 过滤器发现。以下是 /var/log/mail.log 中的一个条目示例

Jan 25 04:39:56 ***** postfix/smtpd[23828]: warning: 114-32-231-17.HINET-IP.hinet.net[114.32.231.17]: SASL LOGIN authentication failed: authentication failure

这是我的(未修改的)fail2ban 的 sasl 过滤器定义:

# Fail2Ban configuration file
#
# Author: Yaroslav Halchenko
#
# $Revision: 728 $
#

[Definition]

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/]*={0,2})?$

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

有人能建议对正则表达式进行改进,以便也能捕获该记录吗?

答案1

定义另一个 failregex

(?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(:.*)$

我使用 fail2ban-regex 测试了这个正则表达式并且可以正常工作。

相关内容