有人能帮我使用一个特殊的 f2b 过滤器来追踪特定邮箱上的重复登录失败吗?我不想将失败限制在全局 postfix jail 中。因此我需要一个额外的过滤器。
我还认为我需要更多的正则表达式,因为在我的 Mailbox 线路中没有 IP,对吗?
这里内容:
Sep 14 22:00:28 host01 plesk_saslauthd[7633]: failed mail authentication attempt for user '[email protected]' (password len=9)
Sep 14 22:00:28 host01 postfix/smtpd[6772]: warning: SASL authentication failure: Password verification failed
Sep 14 22:00:28 host01 postfix/smtpd[6772]: warning: unknown[190.124.18.242]: SASL PLAIN authentication failed: authentication failure
下列情况将导致监禁[电子邮件保护]失败了,但可能需要第 3 行的 IP?!
我需要这个,因为攻击者只运行一次假密码,然后转移到另一个 IP。我只想追踪一个邮箱,在 1 次失败后禁止他。将全局后缀触发器更改为仅一次失败太强,对真实用户不利。
这是 Postfix Jail:
[INCLUDES]
before = common.conf
[Definition]
_daemon = postfix(-\w+)?/(?:submission/|smtps/)?smtp[ds]
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(:[ A-Za-z0-9+/:]*={0,2})?\s*$
ignoreregex = authentication failed: Connection lost to authentication server$
[Init]
journalmatch = _SYSTEMD_UNIT=postfix.service
答案1
现有规则与示例中的第三行匹配。此行中没有邮箱,因此无法编写正则表达式规则来包含它。
可靠的多行规则是不可能的,因为没有可靠的方法将 postfix/smtpd 故障行与提及邮箱的第一个日志行进行匹配。