我正遭受僵尸网络的攻击,我之所以发现这一点,是因为我收到了来自 mailer-daemon 的电子邮件,告诉我设备上没有剩余空间。mail.log 中充满了类似这样的消息
Dec 5 01:56:14 ip-xxx-xxx-xxx postfix/smtpd[9634]: NOQUEUE: reject: RCPT from xxx-xxx-xxx-xxx.dynamic.hinet.net[xxx.xxx.xxx.xxx]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=SMTP helo=<xxx.xxx.xxx.xxx>
我编写了一个僵尸网络杀手脚本。该脚本使用 iptables 来禁止具有过多 IP 地址的网络范围尝试通过我的服务器发送消息,从而在日志文件中生成上述消息。
我确信这可以杀死合法流量。我决定我需要此流量如下:
S0 - standard traffic - <1 mail per minute
S1 - increased traffic - 1+ mail per minute
S2 - suspicious traffic - 10+ mails per minute
S3 - potentially unwanted traffic - 1+ mails per second
S4 - attack - 5+ mails per second
...处理如下:
S0: No action
S1: Log
S2: Log&MailReport (to postmaster@localhost)
S3: Log&MailReport&AutoBounce (solve capcha at http://myhost.tld/anti-spam )
S4: Log&MailReport&AutoBounce (you were temporarily blocked by the mailserver)
S5: Log&MailReport&AutoBounce&AutoAbuseReport (User [email protected] is abusing our server)
有没有办法使用 postfix 来实现这一点?如果没有,有没有更好的邮件服务器?
谢谢
编辑:我完全重写了这个问题,因为人们感到困惑,以为这是一个开放的中继
答案1
事实上,这只是运行面向互联网的邮件服务器的本质。我运行一个内部邮件服务器作为我们的公司邮件服务器,每隔几秒钟我们就会收到垃圾邮件。你真正能做的唯一事情就是实施logrotate
并防止日志失控。如果你出于历史原因需要它们,gzip
可以将它们压缩多达 90% 或更多。
如果你想看看这个,请查看这包含大量操作方法信息的文章。