如果系统还没有安装Cyrus-SASL认证包,应将Red Hat Enterprise Linux 5第1、2和3张安装光盘分别放入光驱,加载光驱后在光盘的Server目录下找到与Cyrus-SASL认证包相关的RPM包文件,然后分别使用rpm -ivh命令安装。例如,要安装第1张光盘上的cyrus-sasl-2.1.22-4.i386.rpm包文件,可使用下面的命令。
rpm -ivh /mnt/Server/cyrus-sasl-2.1.22-4.i386.rpm 2.Cyrus-SASL V2的密码验证机制
默认情况下,Cyrus-SASL V2版使用saslauthd这个守护进程进行密码认证,而密码认证的方法有多种,使用下面的命令可查看当前系统中的Cyrus-SASL V2所支持的密码验证机制。
saslauthd -v 命令的执行情况如图9-8所示。
图9-8 查看可以使用的密码验证机制
从图中可以看到,当前可使用的密码验证方法有getwent、kerberos5、pam、rimap、shadow和ldap。为简单起见,这里准备采用shadow验证方法,也就是直接用/etc/shadow文件中的用户账户及密码进行验证。因此,在配置文件/etc/sysconfig/saslauthd中,应修改当前系统所采用的密码验证机制为shadow,即:
MECH=shadow 3.测试Cyrus-SASL V2的认证功能
由于Cyrus-SASL V2版默认使用saslauthd这个守护进程进行密码认证,因此需要使用下面的命令来查看saslauthd进程是否已经运行。
ps aux | grep saslauthd 如果没有发现saslauthd进程,则可用下面的命令启动该进程并设置它开机自启动。
/etc/init.d/saslauthd start chkconfig saslauthd on 然后,可用下面的命令测试saslauthd进程的认证功能。
/usr/sbin/testsaslauthd –u lbt –p ‘123456’ 其中,lbt为Linux系统中的用户账户名,‘123456’为用户lbt的密码。该命令执行后,如果出现如图9-9所示的结果,则表示saslauthd的认证功能已起作用。
图9-9 测试saslauthd的认证功能
4.设置Postfix启用smtp认证
默认情况下,Postfix并没有启用SMTP认证机制。要让Postfix启用SMTP认证,就必须对Postfix的主配置文件/etc/postfix/main.cf进行修改。
下面先给出main.cf文件中有关SMTP认证的设置部分(位于文件的最后面),然后对这部分内容进行说明。
smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = '' smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination broken_sasl_auth_clients=yes smtpd_client_restrictions = permit_sasl_authenticated smtpd_sasl_security_options = noanonymous (1)smtpd_sasl_auth_enable:指定是否要启用SASL作为SMTP认证方式。默认不启用,这里必须将它启用,所以要将该参数值设置为“yes”。
(2)smtpd_sasl_local_domain:如果采用Cyrus-SASL V2版进行认证,那么这里不做设置。
(3)smtpd_recipient_restrictions:表示通过收件人地址对客户端发来的邮件进行过滤。通常有以下几种限制规则。
permit_mynetworks:表示只要是收件人地址位于mynetworks参数中指定的网段就可以被转发邮件。
permit_sasl_authenticated:表示允许转发通过SASL认证的邮件。 reject_unauth_destination:表示拒绝转发含未信任的目标地址的邮件。
(4)broken_sasl_auth_clients:表示是否兼容非标准的SMTP认证。有一些Microsoft的SMTP客户端(如Outlook Express 4.x)采用非标准的SMTP认证协议,只需将该参数设置为“yes”就可解决这类不兼容问题。
(5)smtpd_client_restrictions:表示限制可以向Postfix发起SMTP连接的客户端。如果要禁止未经过认证的客户端向Postfix发起SMTP连接,则可将该参数值设置为
“permit_sasl_authenticated”。
(6)smtpd_sasl_security_options:用来限制某些登录的方式。如果将该参数值设置为“noanonymous”,则表示禁止采用匿名登录方式。
在完成上述设置后,必须使用命令“/etc/init.d/postfix reload”重新载入配置文件,或使用命令“/etc/init.d/postfix restart”重新启动Postfix服务。
此外,由于当Postfix要使用SMTP认证时,会读取/usr/lib/sasl2/smtpd.conf文件中的内容,以确定所采用的认证方式,因此如果要使用saslauthd这个守护进程来进行密码认证,就必须确保/usr/lib/sasl2/smtpd.conf文件中的内容为:
pwcheck_method: saslauthd 5.测试Postfix是否启用了SMTP认证
经过上面的设置,Postfix邮件服务器应该已具备了SMTP认证功能。可采用Telnet命令连接到Postfix服务器端口25来进行测试,测试过程如图9-10所示。
图9-10 测试Postfix是否启用了SASL认证
如图9-10所示,第6行输入EHLO命令向远程163.com域发出消息,在随后得到的本地Postfix响应信息中,如果出现第12、13行信息(显示当前Postfix所支持的认证方式),则表明Postfix已启用了SMTP认证功能。
如果没有安装Cyrus-SASL认证包的相关程序如 cyrus-sasl-md5-2.1.22-4.i386.rpm、cyrus-sasl-gssapi-2.1.22-4.i386.rpm等,第12、13行信息就显示为:
250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN
启动和停止Postfix服务
1.启动Postfix服务 启动Postfix服务的命令为:
/etc/init.d/postfix start 命令执行后如图9-11所示,则表示启动Postfix服务成功。
图9-11 启动Postfix服务
2.停止Postfix服务 停止Postfix服务的命令为: