Linux(Centos6)上架设认证加密邮件服务器之认证

2013年12月26日

这是CentOS6上架设邮件服务器三部曲的第二步,请确认事先阅览了第一步在CentOS6上架设认证加密邮件服务器之收发邮件

1 添加安装cyrus-sasl-mdb5。
CentOS6中默认没有安装cyrus-sasl-mdb5,没有这个包的话,邮件服务器认证功能有时不能顺利安装。当然你也可以把cyru-sasl的包全部安装上。

[root@srv ~]# rpm -qa | grep "cyrus-sasl"
cyrus-sasl-devel-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-md5-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-gssapi-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-ntlm-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-sql-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-ldap-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-plain-2.1.23-13.el6_3.1.x86_64
[root@srv ~]# 

如果上面没有出现”cyrus-sasl-md5-2.******”的话(******是版本号),执行以下命令。

yum install -y cyrus-sasl*

2 更改/etc/postfix/main.cf文件

vi /etc/postfix/main.cf

在最后加上如下三行。

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

3 启动saslauthd服务

[root@centos ~]# /etc/rc.d/init.d/saslauthd start ← saslauthd 启动
[root@centos ~]# chkconfig saslauthd on ← saslauthd 设置为自动启动

4 重新启动postfix,dovecot

/etc/rc.d/init.d/postfix restart
/etc/rc.d/init.d/dovecot restart

6 测试sasl

[root@srv ~]# perl -MMIME::Base64 -e 'print encode_base64("\000sai\000sai1111");'   ← 用户名与密码编码成Base64的字符串
AHNhaQBxanJvbmc1NjQz   ← 生成 Base64的字符串
[root@srv ~]# telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 srv.dragreen.com ESMTP unknown
EHLO localhost
250-srv.dragreen.com
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN AHNhaQBxanJvbmc1NjQz  ← 认证用户名密码(上面生成的Base64码字符串)
235 2.7.0 Authentication successful
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@srv ~]# 

Authentication successful 说明我们的认证成功了。
注意:1.这里的用户与密码是第一步中添加的用户名与密码。这里Base64 encode只是编码,并未加密,即我们的用户名:密码还不是安全的。
2.这里我们的认证用户名与密码采用的是系统的用户名与密码,如果要用与系统不同的用户名密码的话,请用saslpasswd2等命令实现。

第二步结束,谢谢阅览!!