二 、 安装和配置cyrus-sasl(用于实现身份验证的smtp服务器)
1. 安装cyrus-sasl
(1)首先先要卸载系统已经安装cyrus-sasl
#rpm -q cyrus-sasl
#rpm -e cyrus-sasl --nodeps
(2)编译安装cyrus-sasl2.1.22
#tar zxvf cyrus-sasl-2.1.22.tar.gz
#cd cyrus-sasl-2.1.22
#./configure --prefix=/usr/local/sasl2 \
--disable-gssapi --disable-anon --disable-digest \
--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/ \
--with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket
/* 一定要加上--enable-login因为SASL2默认不支持login这种验证方式,而OUTLOOK是通过login来进行SMTP验证得) */
#make
(
这里可能会编译错误,解决的方法:
cp mac/libdes/public/des.h /root/tools/Postfix/cyrus-sasl-2.1.22/,
说明: mac/libdes/public/des.h 这个路径是cyrus-sasl源码包文件夹下面的mac路径
/root/tools/Postfix/cyrus-sasl-2.1.22/
这个路径是源码包的路径
)
#make install
2. 配置sasl
(1)
创建运行时需要的目录并调试启动
#mkdir -pv /var/state/saslauthd
在/var/目录下建一个目录给saslauthd进程存放临时数据.假如没有这些目录,运行saslauthd时,会提示出错.
(2)
接着为确保CYRUS-SASL2函数库知道怎样验证所收来的SASL认证请求,必须创建一个SASL的配置文档。配置文档名为smtpd.conf位于/usr/local/sasl2/lib/sasl2这个目录,在该文档中您定义您希望使用的认证数据库方法,以下这个例子使用saslauthd来验证认证请求.
#vi /usr/local/sasl2/lib/sasl2/smtpd.conf
添加以下内容
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
(3)启动并测试
#/usr/local/sasl2/sbin/saslauthd -a shadow pam
#/usr/local/sasl2/sbin/testsaslauthd -u root -p root //用户密码
例如:# /usr/local/sasl2/sbin/testsaslauthd -u root -p 123456
0: OK "Success."
假如出现以上信息,就说明saslauthd正常运行了。
(testsaslauthd程式默认是没有编译的,您需要在源码目录树的saslauthd子目录中运行 make testsaslauthd命令生成.)
(4)添加连接库 postfix编译安装会用到,否则报错.
#echo "/usr/local/sasl2/lib" >> /etc/ld.so.conf
#echo "/usr/local/sasl2/lib/sasl2" >> /etc/ld.so.conf
#ldconfig -v
(5)添加库连接到/usr/lib 因为postfix会到/usr/lib目录下去找SASL2库,而我们是把程式安装在/usr/local/sasl2中,所以我们要在/usr/lib目录下做一个链接:
#ln -s /usr/local/sasl2/lib/sasl2 /usr/lib/sasl2
(6)设置为开机启动
#echo “/usr/local/sasl2/sbin/saslauthd -a shadow pam” >>/etc/rc.local
三、安装配置courier-authlib (实现带验证的pop3服务器)
1、安装courier-authlib
#tar -jxvf courier-authlib-0.62.4.tar.bz2
#cd courier-authlib-0.62.4
#./configure --prefix=/usr/local/courier-authlib\
--without-authpam\
--without-authdap\
--without-authshadow\
--without-vchkpw\
--with-authmysql\
--with-mysql-libs=/usr/local/mysql/lib/mysql\ --with-mysql-includes=/usr/local/mysql/include/mysql
#make
#make install
2、配置courier-authlib
(1)#cd /usr/local/courier-authlib/
#chmod 755 var/spool/authdaemon/
(2) #cd etc/authlib/
#cp authdaemonrc.dist authdaemonrc
#cp authmysqlrc.dist authmysqlrc
(3) #vi authdaemonrc
修改etc/authlib/authdaemonrc 文件为:
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=10
(4)#vi authmysqlrc
修改etc/authlib/authmysqlrc 为以下内容
MYSQL_SERVER localhost
MYSQL_PORT 3306 //指定你的mysql监听的端口,这里使用默认的3306
MYSQL_USERNAME extmail //这是为后文要用的数据库的所有者的用户名 MYSQL_PASSWORD extmail //这是为后文要用的数据库的所有者的密码
MYSQL_SOCKET /tmp/mysql.sock //mysql的接口文件
MYSQL_DATABASE extmail //用于验证的数据库
MYSQL_USER_TABLE mailbox //用于验证的数据库表
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD '501' //501为postfix用户uid
MYSQL_GID_FIELD '501' //501为postfix组gid
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD concat('/var/mailbox/',homedir)
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir)
3、设置开机自启动
#cp /root/tools/postfix/courier-authlib-0.62.4/courier-authlib.sysvinit /etc/init.d/courier-authlib
#chmod 755 /etc/init.d/courier-authlib
#chkconfig --add courier-authlib
#chkconfig --level 35 courier-authlib on
#service courier-authlib start
#netstat -an |grep 110
unix 2 [ ACC ] STREAM LISTENING 11090 /var/state/saslauthd/mux
unix 2 [ ] DGRAM 11089
本文转自wiliiwin 51CTO博客,原文链接:http://blog.51cto.com/wiliiwin/221325