日常巡检比故障处理更重要
公司邮箱突然收不到外部邮件,客服电话立马被打爆。这种场景不少见,问题往往就出在邮件服务器没人定期看一眼。很多人觉得“能用就行”,可一旦出问题,排查起来费时又费力。其实维护邮件服务器没那么复杂,关键在于坚持几个简单动作。
检查日志不是高级工程师的专利
每天花十分钟看看 /var/log/mail.log 或对应系统的邮件日志,能发现很多苗头。比如大量被拒的连接请求,可能是有人在尝试暴力破解;反复出现的 DNS 查询失败,可能意味着解析配置出了问题。就像开车要时不时看仪表盘,服务器也得有人盯着。
举个例子,某次看到日志里频繁出现“relay access denied”,起初以为是用户输错密码,后来发现是市场部同事用手机客户端发邮件,配置的是外网IP,没走认证机制。早发现早改,避免了后续更大范围的问题。
及时更新和补丁管理
邮件服务器常年运行,系统内核、MTA 软件(比如 Postfix、Sendmail)或反垃圾模块(如 SpamAssassin)都可能有安全漏洞。某次 Debian 发布了一个 Postfix 的远程执行补丁,没及时更新的几台服务器第二天就被扫到中招,开始往外发垃圾邮件。
建议设置自动通知机制,比如用 cron 配合脚本检测可用更新:
0 2 * * 0 /usr/bin/apt list --upgradable | grep postfix >> /var/log/patch_check.log再配上邮件提醒,至少心里有数。
监控队列大小,别让积压邮件拖垮服务
邮件队列堆积是典型“温水煮青蛙”问题。一开始只是几封延迟,几天后变成几百封,磁盘空间告急,连带影响其他服务。用命令 postqueue -p 查看当前待发队列,如果数字一直不降,就得查原因。
常见情况包括:目标域名DNS解析异常、对方服务器拒收、本地网络出口限制 SMTP 流量。曾经遇到过一次,是因为防火墙策略变更,导致出站 25 端口被限,但没人注意到,结果三天积了上万封未发邮件。
备份配置,别让自己无路可退
改配置前不备份,等于在雷区跳舞。有一次调整 DKIM 签名参数,顺手就把旧配置删了,结果新配置签名验证不过,发出的邮件全进垃圾箱。还好有 git 记录,三分钟回滚搞定。
建议把核心配置文件纳入版本控制:
git add /etc/postfix/main.cf /etc/opendkim.conf
git commit -m "update dkim key for domain.com"哪怕只是本地仓库,也能救命。
测试不能偷懒
每次调整完,用真实工具测一遍。比如用 swaks 发个测试邮件:
swaks --to user@example.com --from admin@yourdomain.com --server localhost看是否正常发出,接收方能不能收到,SPF、DKIM、DMARC 是否通过。别只看本地日志“sent”就完事,最终效果得在收件箱里验证。
还有就是定期做灾难演练:模拟硬盘故障、主服务器宕机,看看备用方案能不能顶上。真出事的时候,你才会感谢那个提前试过的人。