Cyrus-SASL

SASL (Simple Authentication Security Layer)简单认证安全层,在这里有功能主要是用于SMTP认证。

安装配置

  1. 首先查看系统是否已经安装了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
    				
  2. 编译安装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]#
    
    			
  3. 设置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
    			
  4. 配置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

    1. crypt=0: 明文密码

    2. crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)

    3. crypt=2: 使用MYSQL中的password()函数加密

    4. crypt=3:表示使用md5的散列方式

  5. 启动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