AS5 Sendmail下配置SMTP认证
A、SMTP身份认证 (SMTP AUTH)
SMTP身份认证是一种保证SMTP服务器安全的方法,它要求希望通过SMTP服务器转发邮件(即邮件最终发送给另一个SMTP服务器)的用户在发送消息之前必须先向sendmail表明自己的身份。这样垃圾邮件发送者就不能用你的SMTP服务器发送未经授权的邮件了。
允许垃圾邮件发送者发送未经授权的email的邮件服务器被称为开放中继,所以SMTP AUTH是一种确保你的邮件服务器不是开放中继的机制。
邮件系统是否允许中继请查看:http://www.5dmail.net/html/2005-8-25/200582502120.htm
B、配置过程:
1、安装 cyrus-sasl, cyrus-sasl-devel, cyrus-sasl-plain, cyrus-sasl-md5 等包。
此处我测试中安装了cyrus-imapd包,不装也可以。
2、启动 saslauthd 服务:
sendmail调用cyrus-sasl的saslauthd进程对请求邮件系统25端口的用户进行身份鉴权,saslauthd要求对方输入本地系统用户的用户名和密码,saslauthd通过查找系统的/etc/shadow文件,确认用户是否合法,合法登录成功,否则失败。
启动saslauthd:
或者编辑/etc/sysconfig/saslauthd,修改 MECH=shadow
然后执行:service saslauthd start
3、查看是否开启成功:
4、测试认证是否成功,testsaslauthd -u user -p password:
5、编辑sendmail.mc文件,修改以下几行:
此处容易出问题。
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
DAEMON_OPTIONS(`Port=25, Name=MSA,M=Ea')dnl
两行内容不能同时出现在配置文件中,否则造成端口冲突,sendmail启动后自动停止。日志中报以下错误:
6、使用M4重新生成sendmail.cf:
7、重启sendmail:
8、查看TCP的25号端口是否开启:
9、测试认证是否开启:
尝试mail from:[email protected]的邮件时提示:530 5.7.0 Authentication required,说明认证成功。
OK~
转载于:https://blog.51cto.com/hunt1574/395574