且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

postfix安装以及配置2

更新时间:2022-09-21 22:46:45

  安装和配置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'                //501postfix用户uid
MYSQL_GID_FIELD '501'                //501postfixgid
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