SASL (Simple Authentication Security Layer)简单认证安全层,在这里有功能主要是用于SMTP认证。
安装配置
首先查看系统是否已经安装了cyrus-sasl
[root@linuxas3 src]# rpm -qa |grep cyrus-sasl cyrus-sasl-plain-2.1.15-3 cyrus-sasl-md5-2.1.15-3 cyrus-sasl-2.1.15-3 cyrus-sasl-gssapi-2.1.15-3 cyrus-sasl-devel-2.1.15-3 [root@linuxas3 src]# |
如果安装已经,就请卸载它,或使用下面方法关闭它
[root@linuxas3 src]# mv /usr/lib/sasl /usr/lib/sasl.OFF [root@linuxas3 src]# mv /usr/lib/sasl2 /usr/lib/sasl2.OFF |
编译安装cyrus-sasl-2.1.18
[root@linux src]# cd cyrus-sasl-2.1.18 [root@linux cyrus-sasl-2.1.18]# make clean [root@linux cyrus-sasl-2.1.18]# ./configure --disable-sample --disable-saslauthd --disable-pwcheck \ --disable-krb4 --disable-gssapi --disable-anon \ --enable-plain --enable-login --enable-cram --enable-digest \ --with-saslauthd=/var/run/saslauthd Configuration Complete. Type 'make' to build. [root@linux cyrus-sasl-2.1.18]# make [root@linux cyrus-sasl-2.1.18]# make install [root@linux cyrus-sasl-2.1.18]# ln -s /usr/local/include/sasl/ /usr/include/sasl [root@linux cyrus-sasl-2.1.18]# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2 [root@linux cyrus-sasl-2.1.18]# echo /usr/local/lib/sasl2 >> /etc/ld.so.conf [root@linux cyrus-sasl-2.1.18]# ldconfig [root@linuxas3 src]# ll -d /usr/lib/sasl2 lrwxrwxrwx 1 root root 20 Apr 19 20:00 /usr/lib/sasl2 -> /usr/local/lib/sasl2 [root@linuxas3 src]# |
设置cyrus-sasl启用plain、login、cram、digest认证模块,Postfix使用SASL的saslauthd认证守护进程来支持smtp auth认证:
echo MECH=pam > /etc/sysconfig/saslauthd echo pwcheck_method: saslauthd > /usr/lib/sasl2/smtpd.conf echo mech_list: plain login cram digest>> /usr/lib/sasl2/smtpd.conf |
配置PAM
[root@linuxas3 cyrus-sasl-2.1.18]# cd /etc/pam.d/ [root@linuxas3 pam.d]# cat smtp #%PAM-1.0 #auth required pam_stack.so service=system-auth #account required pam_stack.so service=system-auth auth optional pam_mysql.so host=localhost db=postfix user=postfix passwd=6AJx9Nqv9x8hg table=postfix_users usercolumn=user passwdcolumn=passwd crypt=0 account required pam_mysql.so host=localhost db=postfix user=postfix passwd=6AJx9Nqv9x8hg table=postfix_users usercolumn=user passwdcolumn=passwd crypt=0 [root@linuxas3 pam.d]# |
crypt= n
crypt=0: 明文密码
crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
crypt=2: 使用MYSQL中的password()函数加密
crypt=3:表示使用md5的散列方式
启动SMTP认证进程(Authenticated SMTP)
[root@linuxas3 init.d]# service saslauthd start Starting saslauthd: [ OK ] [root@linuxas3 init.d]# or [root@linuxas3 init.d]# /etc/init.d/saslauthd start |