我已经与 MailScanner 一起设置了可运行的 SMTP 中继。此 SMTP 中继无法(将来也无法)中继来自外部的电子邮件,只能中继本地电子邮件。
我们为客户提供 SMTP 中继,以便他们可以从 Wordpress 网站等处获取通知。但有时 - 众所周知,网站会被黑客入侵并开始发送垃圾邮件(每小时 10k 封)。我想使用 fail2ban 来阻止服务器这样做。
例如:客户网站遭到黑客攻击,他们的一个虚拟主机正在发送大量垃圾邮件。Fail2Ban 检测到洪水并阻止来自该服务器的端口 25 上的所有流量 - 并向我发送一封电子邮件,告知我“服务器 B 因 smtp 洪水而被阻止”。
如何实现这一点?
答案1
当您使用 postfix 时,请查看 anvil 配置:它允许限制连接(不会向您发送电子邮件)。然后,您可以使用 fail2ban 读取 postfix 日志并断开连接,然后通过电子邮件通知您(查看http://www.postfix.org/postconf.5.html#smtpd_client_connection_rate_limit)
答案2
我发现我可以用 iptables 来阻止它:
iptables -A INPUT -p tcp -m tcp --dport 25 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name DEFAULT --rsource -j DROP
iptables -A INPUT -p tcp -m tcp --dport 25 -m state --state NEW -m recent --set --name DEFAULT --rsource
如果客户端每分钟发送超过 4 封电子邮件,就会被阻止。