如何测试邮件服务器的开放中继(open relay)?

62 如何测试邮件服务器的开放中继(open relay)?
原因

开放中继(Open Relay)是指邮件服务器允许任何来源的用户通过它向任何外部域投递邮件,无需认证。攻击者利用开放中继大量发送垃圾邮件,最终导致服务器 IP 被列入多个 DNSBL 黑名单。

操作

1. 手工测试(telnet)
从外部网络连接你的服务器 25 端口:
telnet mail.example.com 25
输入以下命令(替换为两个外部域):
EHLO test.com
MAIL FROM: <user@example.org>
RCPT TO: <someone@gmail.com>
如果在 RCPT TO 之后返回 250 OK(而非 554 或 550),说明中继开放。
2. 使用在线检测工具
访问 https://www.checktls.com/TestReceiver 输入你的服务器域名。
3. 如果检测到开放中继——立即修复
在 Postfix /etc/postfix/main.cf 中确保配置:
smtpd_relay_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination

注意:Postfix 2.10 之前用 smtpd_recipient_restrictions,2.10+ 用 smtpd_relay_restrictions
4. 修复后重新测试
再次用 telnet 测试,确认 RCPT TO 返回 554 Relay access denied

RFC 5321 (§3.9 Relaying) · RFC 2505 (Anti-Spam Recommendations for SMTP MTAs) · RFC 4954 (SMTP Authentication)