
最近客户反馈其部署于香港的数据中心的邮件服务器流量异常,频繁出现外发邮件失败和黑名单报警。客户初步怀疑服务器遭受入侵或邮件服务存在配置问题,影响了正常的企业邮件通信。经进一步分析,发现问题的根本原因是 SMTP中继被滥用,导致服务器变成了“开放中继(Open Relay)”,被黑客用于发送垃圾邮件(Spam)。
环境与部署信息
- 服务器位置:香港某数据中心
- 操作系统:CentOS 7.9 x64
- 邮件服务软件:Postfix 3.4.13
- 前端控制面板:无(手动部署)
- 域名:example.hk
- DNS配置:MX记录、SPF、DKIM、DMARC 均已配置
- 用途:企业内部与外部客户的业务邮件收发
故障现象
邮件队列中出现大量未知外部收件人地址(如 @qq.com、@gmail.com、*@163.com)
服务器IP被列入Spamhaus等黑名单
邮件发送延迟严重,部分被直接退信
网络出口带宽异常飙升
故障排查
1. 检查Postfix日志
cat /var/log/maillog | grep postfix
发现如下异常日志片段:
postfix/smtpd[24982]: connect from unknown[185.XX.XX.XX]
postfix/smtpd[24982]: 1234567890: client=unknown[185.XX.XX.XX], sasl_method=none, sasl_username=
postfix/smtpd[24982]: 1234567890: to=<randomuser@qq.com>, relay=none, delay=0.03, status=sent
关键点:大量未认证的连接请求正在中继邮件,来源IP分布广泛,明显是脚本自动发送。
2. 检查SMTP配置
postconf -n | grep relay
发现配置如下:
smtpd_recipient_restrictions = permit_mynetworks, permit
这是一个典型的“开放中继”配置,任何来源的IP都可以通过SMTP端口发送邮件,不做身份验证。
故障原因
服务器未正确配置SMTP身份验证和访问控制,导致Postfix默认允许任意来源的中继请求。黑客扫描发现服务器SMTP端口(25/587)开放后,便开始批量投递垃圾邮件,最终造成IP被封、邮件延迟与业务中断。
解决方案:防止开放中继的多层次验证方案
为防止类似问题再次发生,我们设计了一套分层验证的安全体系,具体如下:
1. 第一层:明确“允许中继”的来源
修改Postfix配置,拒绝未认证或非内部IP来源中继:
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
确保 mynetworks 设置为仅限本地和可信网络:
mynetworks = 127.0.0.0/8, [::1]/128
2. 第二层:启用SMTP SASL身份验证
安装并配置 cyrus-sasl 支持SMTP认证:
yum install cyrus-sasl cyrus-sasl-plain
编辑 /etc/postfix/main.cf,添加以下内容:
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
确保 /etc/sasl2/smtpd.conf 文件存在并包含:
pwcheck_method: saslauthd
mech_list: plain login
启动并启用SASL服务:
systemctl start saslauthd
systemctl enable saslauthd
3. 第三层:开启SMTP over TLS
启用STARTTLS或SMTPS加密SMTP连接:
smtpd_tls_cert_file = /etc/ssl/certs/mail.crt
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_use_tls = yes
并强制客户端使用TLS连接:
smtpd_tls_security_level = encrypt
4. 第四层:应用发送者策略框架(SPF/DKIM/DMARC)
虽然这些策略不会直接防止中继,但它们有助于提升服务器信誉度并配合网关判定合法邮件来源。
配置SPF记录:
example.hk. IN TXT "v=spf1 ip4:YOUR_SERVER_IP -all"
使用OpenDKIM进行签名
添加DMARC策略记录:
_dmarc.example.hk. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.hk"
验证和监控
1 邮件中继验证
使用在线工具如 MXToolbox 验证SMTP是否仍为开放中继。
2 实时日志监控
推荐使用 logwatch、fail2ban 结合定时报告分析非法访问行为。
3 加入反垃圾邮件监控服务
如 Google Postmaster Tools、Microsoft SNDS,提前发现信誉变化。
本次SMTP开放中继问题的发生,根源在于服务部署初期对邮件安全策略的忽视。邮件服务作为企业通信的重要入口,任何配置漏洞都可能带来严重的信誉与数据风险。
建议:
- 所有部署SMTP服务的服务器务必关闭开放中继
- 配置基于SASL认证、TLS加密的收发通道
- 建议使用专业邮件网关或服务,如阿里云邮件推送、SendGrid等,减少自建风险
- 定期审核邮件服务配置,并接入安全监控平台
通过本次案例的实操排查与优化,客户的服务器邮件队列恢复正常,IP成功从黑名单中移除,系统恢复稳定运行。











