postfix电子邮件服务的配置与应用3

SMTP认证的配置
如果任何人都可以通过一台邮件服务器来转发邮件,那么相信大家会想到它的坏处的。Postfix默认不会对外开放转发功能,而仅对本机进行转发功能。但是在实际应用中必须在postfix注配置文件中通过设置mynetworks、relay_domains参数来开放一些所信任的网段或网域,都则该邮件服务器几乎没有什么用途。在开放了这些所信任的网段或网域后,还可以通过设置SMTP认证,对要求转发邮件的客户端进行身份验证。目前比较流行的验证机制是通过cyrus SASL包来实现的。
cyrus的安装
我在rh9中只找到了下图的几个包,但是在我的书里确是有7个包(rhel4)希望有哪位高手能给予解答,将不胜感激。除了下图的5个文件包外还应有cyrus-sasl-sql-...和cyrus-sasl-ntlm....两个软件包。
cyrus-sasl V2的密码验证机制
默认情况下cyrusSASL-v2版使用saslauthd这个守护进程进行密码认证,使用下面的命令可查看当前系统中的cyrusSASL-v2所支持的密码验证机制。
saslauthd -v 如果成功可以看到当前可使用的密码验证方法...
测试cyrus-sasl V2的认证功能
ps aux | grep saslauthd   检查saslauthd进程是否已经运行
如果没有运行可以启动它   /etc/init.d/saslauthd start
设置开机自动启动  chkconfig  saslauthd on
然后进行如下小测试  /usr/sbin/testsaslauthd  -u lbt -p 'mima'
设置postfix启用SMTP认证
postfix默认并没有启用SMTP的认证机制,要启用就必须对主配置文件/etc/postfix/main.cf进行配置。下面给出main.cf文件中的有关SMTP认证的设置部分,位于文件的最后部分。
smtpd_sasl_auth_enable = yes  是否要启用sasl作为SMTP认证方式
smtpd_sasl_local_domain = ''如果采用cyrus-SASL V2版进行认证,那么这里不作设置
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 表示通过收件人地址对客户端发来的邮件进行过滤。通常有以下几种限制规则:permit_mynetworks表示只要是收件人地址位于mynetworks参数中指定的网段就可以被转发邮件。 permit_sasl_authenticated表示允许转发通过SASL认证的邮件。reject_unauth_destination表示拒绝转发含未信任的目标地址的邮件。
broken_sasl_auth_clients = yes 是否兼容非标准的认证。
smtpd_client_restrictions = permit_sasl_authenticated 表示限制可以向postfix发起SMTP连接的客户端。如果要禁止未经过认证的客户端向postfix发起smtp连接,则可将该参数值设置为permit_sasl_authenticated.
smtpd_sasl_security_options = noanonymous用来限制某些登陆的方式。禁止采用匿名用户登录。
完成上述配置后 可使用/etc/init.d/postfix reload或/etc/init.d/postfix restart重启动服务.
此外,由于当postfix要使用SMTP认证时,会读取/usr/lib/sasl2/smtpd.conf文件中的内容以确定所采用的认证方式,因此要使用saslauthd这个守护进程来进行密码认证,就必须确保这个文件中的内容为:pwcheck_method: saslauthd
测试postfix是否启用了SMTP认证
telnet mail.jackie.com 25
EHLO  163.com
quit  如下图
/etc/init.d/postfix start
/etc/init.d/postfix stop
/etc/init.d/postfix restart
/etc/init.d/postfix reload
ntsysv 自动启动postfix服务