我在 CentOS 上运行 postfix,并且我正确地拒绝了中继邮件请求,但我的服务器不断……不断……接收中继邮件的请求。因此,邮件日志已满(日志轮换等问题不大),并且服务器的负载总是比我希望的略高。尝试发送所有这些电子邮件的脚本非常愚蠢,因为它只是不断尝试数百或数千次。
有没有一种好的方法可以检测并自动阻止试图通过我的机器进行大规模中继的 IP 地址?我假设我需要在 iptables 级别切断它们,这样它们就根本无法连接。
有什么建议么?
答案1
您可以使用失败禁止。它监视日志文件,如果在日志文件中发现特定行,则使用 iptables 阻止主机。
答案2
您还可以配置 postscreenhttp://www.postfix.org/POSTSCREEN_README.html,但您只需要对 MX 使用 postscreen,而不需要对客户端使用。
答案3
假设您实际上希望处理入站 SMTP 流量,那么您将需要设置一些关于如何postfix/smtpd
对待客户端的限制。
http://www.postfix.org/TUNING_README.html#conn_limit是一个很好的简要概述。
这些是我倾向于使用的设置。
#SMTPd limits
smtpd_client_connection_rate_limit = 10
smtpd_client_new_tls_session_rate_limit = 5
smtpd_client_recipient_rate_limit = 60
smtpd_client_message_rate_limit = 10
如果服务器根本不应该接收邮件,您可以smtpd
通过在中将其注释掉来禁用$(postconf -h config_directory)/master.cf
。
答案4
如果您的主机不是邮件中继,您可以完全阻止端口 25:
iptables -A INPUT -p tcp --dport 25 -j DROP
iptables -A INPUT -p udp --dport 25 -j DROP
service iptables save
service iptables restart