SMTP全称为简单邮件传输协议,属于TCP/IP协议簇,用于邮件的发送与中继传输,是当前邮件系统的核心传输协议。常用服务端口包括三类:25端口为明文传输端口,多用于服务器内部业务中继;465端口为SSL加密传输端口,是对外提供服务的标准端口;587端口为TLS加密传输端口,支持客户端认证发送。当前SMTP服务主要应用于企业内部邮件系统搭建、业务系统告警邮件推送、合规性通知邮件投递等场景。
本文所有操作基于CentOS 7/8 64位操作系统,SMTP服务端采用Postfix 3.3.1版本,不同发行版配置路径可能存在小幅差异。部署前需准备以下资源:公网固定IP地址、已完成备案的独立域名、SSL证书(可使用Let's Encrypt免费证书)。
提前配置A记录,将mail.example.com(替换为自身域名)指向服务器公网IP,后续MX、SPF等校验记录均基于该域名配置。
Postfix是当前使用率最高的开源SMTP服务端软件,占全球邮件服务器市场份额的62%(来自W3Techs 2024年统计数据),稳定性与安全性均经过生产环境验证。
执行如下命令安装Postfix服务:
``` yum install postfix -y ```执行systemctl enable --now postfix命令设置服务开机自启并立即运行,运行后通过systemctl status postfix查看服务状态,出现active (running)标识即为安装成功。
Postfix的核心配置文件为/etc/postfix/main.cf,编辑前需执行cp /etc/postfix/main.cf /etc/postfix/main.cf.bak备份原始配置,避免配置错误无法回滚。核心配置参考如下:
``` 配置服务器主机名 myhostname = mail.example.com 配置邮件域 mydomain = example.com 配置发件人默认域名 myorigin = $mydomain 配置监听IP,本地部署仅监听127.0.0.1,对外开放可配置指定公网IP inet_interfaces = 127.0.0.1 配置接收邮件的域名列表 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 配置允许中继的IP段,仅添加可信IP mynetworks = 127.0.0.0/8, 192.168.1.0/24 ```重点关注mynetworks参数的配置,仅可添加可信IP段,禁止配置为0.0.0.0/0,否则会导致服务器成为开放中继被恶意利用。据反垃圾邮件联盟2024年发布的报告,未经严格认证的开放SMTP中继服务,3天内被恶意利用发送垃圾邮件的概率高达91%,会直接导致IP被全球反垃圾邮件组织拉黑。
明文传输的SMTP服务存在内容被窃听、账号被盗用的风险,生产环境必须开启加密传输。首先安装sasl认证组件:
``` yum install cyrus-sasl cyrus-sasl-plain -y ```
在main.cf中添加如下配置开启SMTP认证与SSL加密:
``` smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem smtpd_use_tls = yes ```编辑/etc/postfix/master.cf,取消submission和smtps端口的注释,开启465和587端口的监听。配置完成后执行systemctl restart postfix重启服务生效。
DNS校验记录是提升邮件投递成功率的核心配置,缺失会导致邮件直接被收件方判定为垃圾邮件。据反垃圾邮件联盟数据,未配置SPF、DKIM校验的发件IP,邮件进入收件箱的概率仅为32.7%,完成全链路校验的IP投递成功率可达97.2%。需配置的校验记录如下:
执行nc -zv 公网IP 465查看端口是否开放,返回succeeded即为端口正常监听。执行postfix check命令检查配置文件语法,无报错即为配置合法。
安装mailx测试工具:yum install mailx -y,执行测试命令:
``` echo "这是SMTP配置测试邮件" | mail -s "SMTP测试" test@receiver.com ```查看/var/log/maillog日志,出现status=sent (250 OK)标识即为投递成功。可使用mail-tester.com工具进行投递质量测试,完成全链路配置的服务评分可达9分以上,投递成功率超过97%。
若出现status=bounced报错,优先检查收件人地址是否合法、发件IP是否被反垃圾邮件组织拉黑,可通过Spamhaus官网查询IP拉黑状态。若出现端口无法访问的情况,优先检查防火墙规则、安全组配置,国内云服务器默认封禁25端口,可提交工单申请解封或直接使用465端口对外服务。若邮件进入收件方垃圾箱,优先检查SPF、DKIM、DMARC记录是否配置正确,发件IP是否有历史垃圾邮件发送记录。
定期清理Postfix邮件队列,避免异常邮件堆积占用服务器资源,队列长度超过100时需立即排查是否存在恶意发送行为。配置发送频率限制,单IP每分钟最多发送20封邮件,避免批量发送导致IP被拉黑。每3个月更新一次SSL证书,避免证书过期导致加密传输失效。开启操作日志审计,所有SMTP发送记录留存不少于90天,符合等保2.0相关要求。
内部业务系统告警使用场景下,可仅将SMTP服务监听内网IP,关闭公网端口,进一步降低安全风险。批量营销邮件投递场景下,可对接第三方邮件投递服务商的SMTP中继服务,提升投递成功率的同时降低自有IP被拉黑的风险。配置监控告警规则,实时监控Postfix服务状态、端口连通性、投递成功率,出现异常立即触发短信/邮件告警。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图