postfix安装(四)-- cyrus-sasl安装

来源:互联网 发布:微博发淘宝优惠券 编辑:程序博客网 时间:2024/06/06 19:33

安装cyrus-sasl-2.1.25


下载链接:http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/cyrus-sasl.html

CentOS的cyrus-sasl默认没有打开authdaemon的支持,为了使用集中认证的authlib,必须打开这个支持。因此我们必须删除系统的cyrus-sasl软件包

首先查看系统是否已经安装了cyrus-sasl
[root@Webmail software]# rpm -qa |grep cyrus-sasl
cyrus-sasl-2.1.23-8.el6.x86_64
cyrus-sasl-gssapi-2.1.23-8.el6.x86_64
cyrus-sasl-plain-2.1.23-8.el6.x86_64
cyrus-sasl-lib-2.1.23-8.el6.x86_64
cyrus-sasl-devel-2.1.23-8.el6.x86_64
cyrus-sasl-md5-2.1.23-8.el6.x86_64

卸载系统自带的sasl
[root@Webmail software]# yum erase cyrus-sasl -y

由于Cyrus SASL 依赖 OpenSSL1.0.0
[root@Webmail cyrus-sasl-2.1.25]# rpm -qa |grep -i openssl
openssl-1.0.0-4.el6.x86_64

[root@Webmail cyrus-sasl-2.1.25]# yum install openssl-devel -y

 
[root@Webmail software]# chmod +x cyrus-sasl-2.1.25.tar.gz 
[root@Webmail software]# tar zxf !$
tar zxf cyrus-sasl-2.1.25.tar.gz

[root@Webmail software]# cd cyrus-sasl-2.1.20
[root@Webmail cyrus-sasl-2.1.20]# ./configure \
> --disable-anon -enable-plain --enable-login \
> --enable-sql --with-mysql=/usr/local/mysql \
> --with-mysql-includes=/usr/local/mysql/include/mysql \
> --with-mysql-libs=/usr/local/mysql/lib/mysql 


configure完成的标志:
Configuration Complete. Type 'make' to build.


用2.1.20版本安装的时候有这个报错,我也不知道怎么解决这个错误,但是安装2.1.25版本没有这个报错:
make的时候出现这个报错:
digestmd5.c: In function 'digestmd5_client_mech_step':
digestmd5.c:3977: warning: pointer targets in assignment differ in signedness
digestmd5.c:4014:15: error: #elif with no expression
make[2]: *** [digestmd5.lo] 错误 1
make[2]: Leaving directory `/home/software/cyrus-sasl-2.1.20/plugins'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/home/software/cyrus-sasl-2.1.20'
make: *** [all] 错误 2


[root@Webmail cyrus-sasl-2.1.25]# make install && install -v -m755  -d /usr/share/doc/cyrus-sasl-2.1.25 && \
> install -v -m644 doc/{*.{html,txt,fig},ONEWS,TODO} \
> saslauthd/LDAP_SASLAUTHD /usr/share/doc/cyrus-sasl-2.1.25 && \
> install -v -m700 -d /var/lib/sasl


PS:
install -v -m644 ...: 这个命令用来安装make install命令没有安装的文档,将文档存放在/usr/share/doc/cyrus-sasl-2.1.25目录下
                      
install -v -m700 -d /var/lib/sasl: 当启动 saslauthd或使用sasldb插件的时候,/var/lib/sasl这个目录必须存在。
                                   如果不运行这个进程或不使用这个插件的话,你可能会忽略创建这个文件     




make install完成时,会有这个提示:   
* WARNING:
* Plugins are being installed into /usr/local/lib/sasl2,
* but the library will look for them in /usr/lib/sasl2.
* You need to make sure that the plugins will eventually
* be in /usr/lib/sasl2 -- the easiest way is to make a
* symbolic link from /usr/lib/sasl2 to /usr/local/lib/sasl2,
* but this may not be appropriate for your site, so this
* installation procedure won't do it for you.
*
* If you don't want to do this for some reason, you can
* set the location where the library will look for plugins
* by setting the environment variable SASL_PATH to the path
* the library should use.

上述提示的主要意思是:插件被安装在/usr/local/lib/sasl2目录下,但是数据库会去找 /usr/lib/sasl2目录
                      建议从/usr/lib/sasl2 到 /usr/local/lib/sasl2做一个符号链接

做符号链接:
[root@Webmail cyrus-sasl-2.1.25]# ln -s /usr/lib/sasl2 /usr/local/lib/sasl2


想要读入高速缓存中的动态函数库所在的目录,利用ldconfig执行文件将 /etc/ld.so.conf的数据读入高速缓存中
为了让postfix能找到sasl,请运行如下命令:
# echo "/usr/lib64" >> /etc/ld.so.conf
# ldconfig

启用saslauthd服务并选择一种认证机制
]# vi /etc/sysconfig/cyrus-sasl 
START="yes"      
AUTHMECH="pam"  
    
[root@Webmail pam.d]# cat /etc/sysconfig/saslauthd
MECH=pam


启用plain login模块,Postfix的SMTP认证需要透过Cyrus-SASL,连接到authdaemon获取认证信息。
echo pwcheck_method: saslauthd > /usr/lib/sasl2/smtpd.conf
echo mech_list: plain login >> /usr/lib/sasl2/smtpd.conf

开机自启动
]# cp /usr/local/sbin/saslauthd /etc/rc.d/init.d/
echo "service saslauthd start" >> /etc/rc.d/rc.local

改程序安装的内容如下:
安装的程序:
pluginviewer, saslauthd, sasldblistusers2, saslpasswd2 and testsaslauthd
安装的库:
libsasl2.so, and numerous SASL plugins
安装的目录:
/usr/include/sasl, /usr/lib/sasl2, /usr/share/doc/cyrus-sasl-2.1.25, and /var/lib/sasl

功能描述:
pluginviewer
用来列出可加载的SASL插件以及他们的属性

saslauthd
是SASL认证服务

sasldblistusers2

列出SASL密码数据库sasldb2中的用户

saslpasswd2
从sasldb2中设置和删除用户的SASL密码

testsaslauthd
测试SASL认证服务
libsasl2.so
认证库