机器

机器

我正在尝试阻止攻击并记录SASL LOGIN authentication failed我的邮件服务器。但是,我已经尝试了一天,仍然无法实现。日志继续使用相同的 IP 生成攻击。

机器

Linux server 5.4.0-109-generic #123-Ubuntu SMP Fri Apr 8 09:10:54 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

邮件登录/var/log/mail.log

Apr 28 20:45:23 server postfix/smtpd[112579]: connect from unknown[5.34.207.81]
Apr 28 20:45:24 server postfix/smtpd[112409]: warning: unknown[5.34.207.81]: SASL LOGIN authentication failed: authentication failure
Apr 28 20:45:25 server postfix/smtpd[112409]: disconnect from unknown[5.34.207.81] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4
Apr 28 20:45:30 server postfix/smtpd[112599]: connect from unknown[5.34.207.81]
Apr 28 20:45:31 server postfix/smtpd[112579]: warning: unknown[5.34.207.81]: SASL LOGIN authentication failed: authentication failure
Apr 28 20:45:32 server postfix/smtpd[112579]: disconnect from unknown[5.34.207.81] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4
Apr 28 20:45:36 server postfix/smtpd[112409]: connect from unknown[5.34.207.81]
Apr 28 20:45:38 server postfix/smtpd[112599]: warning: unknown[5.34.207.81]: SASL LOGIN authentication failed: authentication failure
Apr 28 20:45:38 server postfix/smtpd[112599]: disconnect from unknown[5.34.207.81] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4

使用 IPtables 的 Fail2Ban

/etc/fail2ban/jail.local

[postfix-sasl]

enabled  = true
port     = smtp,ssmtp,465,submission,imap,imaps,pop3,pop3s

bantime = 10m
filter   = postfix-sasl
#action   = iptables-multiport[name=postfix, port="smtp,ssmtp,465,submission,imap,imaps,pop3,pop3s", protocol=tcp]
logpath  = /var/log/mail.log
maxretry = 15

我做到了sudo service fail2ban restart,但有线的事情是我没有看到任何带有的链条f2b-postfix

从日志中执行了 grep 操作fail2ban,结果如下:

Fail2Ban 登录/var/log/fail2ban.log

2022-04-27 16:27:10,133 fail2ban.actions        [567]: NOTICE  [postfix-sasl] Unban 5.34.207.81
2022-04-27 16:27:45,391 fail2ban.actions        [567]: NOTICE  [postfix-sasl] Ban 5.34.207.81
2022-04-27 16:32:17,801 fail2ban.actions        [567]: NOTICE  [postfix-sasl] Unban 212.70.149.72
2022-04-27 22:37:46,299 fail2ban.actions        [567]: NOTICE  [postfix-sasl] Unban 5.34.207.81

使用 UFW 进行 Fail2Ban

在我的研究中,我了解到 Fail2Ban 可以与 UFW 一起使用,因此我对它做了一些研究,这是我的配置:

/etc/fail2ban/jail.local

[postfix-sasl]

enabled  = true
journalmatch =
backend = polling
bantime = -1    // Permanent ban? Maybe 
filter   = postfix-sasl
logpath  = /var/log/mail.log
maxretry = 15
banaction = ufw
findtime = 120

值得一提的是,我已经手动输入了sudo ufw insert 1 deny from 5.34.207.81 to anysudo ufw reload但不幸的是,我仍然能够在邮件日志中看到来自同一 IP 的攻击/var/log/mail.log

答案1

更新

最后,我的Fail2Ban工作如预期的那样,我将把它标记为答案!

解决方案是将 设置action为 ,iptables-multiport以禁止多个端口!但是,我不使用它UFW来限制攻击者,因为我意识到UFW由于与 发生冲突, 在启动过程中 始终未启用firewalld

解决方案

将此行添加到您的/etc/fail2ban/jail.local

action = iptables-multiport[name=postfix, port="smtp,ssmtp,465,submission,imap,imaps,pop3,pop3s"]

它看起来应该是这样的:

[postfix-sasl]

enabled  = true
filter   = postfix-sasl
action   = iptables-multiport[name=postfix, port="smtp,ssmtp,465,submission,imap,imaps,pop3,pop3s"]
logpath  = /var/log/mail.log
maxretry = 15
bantime  = 12h

之前我已将其设置maxretry3用于测试目的。您可能希望将其更改为更高的值。否则您的用户可能很快就会陷入麻烦。

检查Fail2Ban状态

值得检查一下你的监狱:

sudo fail2ban-server status postfix-sasl

输出:

Status for the jail: postfix-sasl
|- Filter
|  |- Currently failed: 2
|  |- Total failed:     49
|  `- File list:        /var/log/mail.log
`- Actions
   |- Currently banned: 1
   |- Total banned:     3
   `- Banned IP list:   5.34.207.81

资源:Fail2Ban 无法设置 Iptables 规则:

答案2

值得注意的是,根据您的用户数量,您可能需要降低门槛,并且根据攻击次数,可能会增加禁令时间。

我不使用 Postfix,而是使用 Exim。但是,阻止攻击者的挑战是相同的。在这里您可以看到我的 Fail2ban 监狱的状态,让您了解那里的僵尸网络规模:

XXXX@XXXX:~# fail2ban-client 状态 exim

监狱状态:exim
|- 过滤器
| |- 当前失败:0
| |- 总失败次数:10380
| - File list: /var/log/exim4/mainlog- 操作
|- 当前禁止:1763
|- 总计禁止: 5644
`- 禁止 IP 列表:XXXXXXXXXXXX

相关内容