CentOS 6.5作为一款经典的企业级Linux发行版,其内置的Sendmail邮件传输服务(MTA)在系统管理和运维中仍具有重要地位,本文将详细介绍CentOS 6.5环境下Sendmail的安装、配置、安全优化及故障排查,帮助用户高效部署和维护邮件服务。

Sendmail的安装与基础配置
在CentOS 6.5中,Sendmail通常作为默认邮件服务存在,若需重新安装,可通过yum命令快速完成:
sudo yum install sendmail sendmail-cf -y
安装完成后,启动服务并设置开机自启:
sudo service sendmail start sudo chkconfig sendmail on
Sendmail的核心配置文件位于/etc/mail/目录,其中sendmail.cf是主配置文件,建议修改前先备份:
sudo cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak
通过m4工具生成配置文件可简化操作,例如修改/etc/mail/local-host-names添加域名,确保服务器能接收该域名的邮件。
域名与邮箱管理
-
域名配置
编辑/etc/mail/local-host-names,添加服务器管理的域名,每行一个域名,example.com mail.example.com修改后重启Sendmail使配置生效:
sudo service sendmail restart
-
虚拟用户配置
创建虚拟邮箱用户需依赖/etc/mail/virtusertable文件,格式为邮箱别名 本地用户,
webmaster@exampleinfo root执行
makemap hash virtusertable.db < virtusertable生成数据库文件,并设置权限为640。
安全加固与性能优化
-
启用SMTP认证
安装cyrus-sasl并配置/etc/sasl2/Sendmail.conf:pwcheck_method: saslauthd mech_list: plain login重启Sendmail后,客户端需输入用户名和密码才能发送邮件。
-
限制邮件中继
编辑/etc/mail/access文件,添加规则控制中继权限:Connect:192.168.1. RELAY # 允许内网IP中继 Connect:DEFAULT REJECT # 拒绝其他IP使用
makemap hash access.db < access生成数据库。 -
日志监控
Sendmail日志默认记录在/var/log/maillog,可通过grep关键字排查问题,例如过滤发送失败的记录:grep "stat=Deferred" /var/log/maillog
常见问题排查
-
邮件发送延迟或失败
检查DNS解析是否正确,确保MX记录指向服务器IP;查看/var/log/maillog中的错误信息,如"Relaying denied"通常表示未配置中继权限。
-
防火墙阻止邮件服务
CentOS 6.5默认使用iptables,需开放25(SMTP)和110(POP3)端口:sudo iptables -I INPUT -p tcp --dport 25 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 110 -j ACCEPT sudo service iptables save
FAQs
Q1: 如何在CentOS 6.5中配置Sendmail支持SSL加密?
A1: 需生成自签名证书并修改sendmail.mc文件,添加以下内容:
define(`confCACERT_PATH', `/etc/pki/tls/certs') define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt') define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem') define(`confSERVER_KEY', `/etc/pki/tls/private/sendmail.key') TRUST_AUTH_MECH(`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN') define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
执行make -C /etc/mail生成新配置文件后重启服务。
Q2: 如何限制Sendmail仅允许特定IP发送邮件?
A2: 编辑/etc/mail/sendmail.mc,添加以下规则:
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')
创建/etc/mail/mailertable为:
localhost.localdomain smtp:[127.0.0.1]
192.168.1. smtp:[192.168.1.1]
. error:550 "Mail relay denied"
生成数据库并重启服务即可实现IP白名单控制。