`
kong0itey
  • 浏览: 298727 次
社区版块
存档分类
最新评论

CentOS5.3+Nginx0.7.57+Postfix+Extmail邮件系统安装配置

 
阅读更多

 

二.邮件发送接收相关包的安装

 

 
再继续安装前先清理一下系统自带的一些软件
Sendmail 相关包 rpm –q sendmail
sendmail-8.13.8-2.el5
———————————————-
清除:
rpm -e sendmail –nodeps
Sasl  相关包列出 rpm -qa|grep sasl
cyrus-sasl-2.1.22-4
cyrus-sasl-devel-2.1.22-4
cyrus-sasl-plain-2.1.22-4
cyrus-sasl-lib-2.1.22-4
———————————————
清除:
rpm -e –nodeps cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-lib
然后是创建以下用户及组
用户名
组名
作用
备注
mysql
mysql
数据库 mysql 运行用户
以上已创建
vmail
vmail
nginx  服务运行用户
以上已创建
vmail
vmail
Postfix 虚拟邮件帐号所使用的用户及组
uid,gid :1001,1001
postfix
Postfix
Postfix 主程序使用的帐号和组
 Uid,gid:1000,1000
 
Postdrop
Postfix   setgid_group
setgid_group=postdrop
1002
amavis
amavis
邮件扫描
 
clamav
Clamav
病毒扫描
 
 
 
 
   
 
 
 
ln -s /usr/src/kernels/2.6.18-128.el5-i686 /usr/src/linux    // 避免以下安装编译出现问题
一. 安装 courier-authlib
安装过程:
       ……………………………安装开始………………………………………………
       Shell> tar jxvf courier-authlib-0.62.2.tar.bz2
       Shell> cd courier-authlib-0.62.2
       Shell>./configure
–with-mailuser=vmail –with-mailgroup=vmail
 –with-mysql-libs=/usr/local/mysql/lib/mysql
 –with-mysql-includes=/usr/local/mysql/include/mysql
 –prefix=/usr/local/authlib
 –without-stdheaderdir
       Shell> make && make install
       Shell> make install-configure
…………………………安装结束……………………………………………

———————————————————
一般情况下, anthlib 的安装应该是容易完成的。
      配置:
配置 authlib. 在目录 /usr/local/authlib/etc/authlib 中,修改文件 authdaemonrc authmysqlrc
vim /usr/local/authlib/etc/authlib/authdaemonrc
vi /usr/local/authlib/etc/authlib/authdaemonrc
authmodulelist=”authmysql”
authmodulelistorig=”authmysql”
DEBUG_LOGIN=2
 
修改上面3 项,其他的项保持不变。这个修改前2 行表示用mysql 认证模块;把DEBUG_LOGIN 的值有默认的“0 ”改成“2 ”的用意是运行 postfix 时有更多的信息输出,通过生成的日志以帮助排错。
vi /usr/local/authlib/etc/authlib/authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_DATABASE extmail
MYSQL_SOCKET /usr/local/mysql/tmp/mysql.sock
MYSQL_PORT              3306
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password 
// 这里需要注意
#MYSQL_CLEAR_PWFIELD password
DEFAULT_DOMAIN mail.test.com
MYSQL_UID_FIELD
1001
MYSQL_GID_FIELD
1001
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD ‘/var/mailbox/’
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD
concat(quota,’S')
MYSQL_WHERE_CLAUSE active=’1′
特别注意 MYSQL_UID_FIELD MYSQL_GID_FIELD 字段的值,这里是‘1001, 也可以是其它的,但一定要与vmail 用户及组相一致(id vmail 可以得出这2 者的值)
后续工作还有,所以现在还不能测试。
——————————————————-
二. 安装 SASL
cyrus-sasl-2.1.22.tar.gz
       安装过程:
       ……………………………安装开始………………………………………………
Shell> tar zxvf cyrus-sasl-2.1.22.tar.gz
Shell> cd cyrus-sasl-2.1.22
Shell> ./configure –disable-anon
 –disable-gssapi           // 授权
 –disable-sample
  –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/authlib/var/spool/authdaemon/socket
Shell> make
Shell> make install
…………………………安装结束……………………………………………
配置:
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2  // sasl 的安装目录是 /usr/local/lib/sasl // 安装结束后有 Warning 警告
echo “/usr/local/lib” >> ld.so.conf      // 否则 postfix 编译里会找不到 libsasl2.so.2
    创建文件  /usr/local/lib/sasl2/smtpd.conf, 并加入如下内容:
pwcheck_method: authdaemond
mech_list: PLAIN LOGIN
log_level: 3
authdaemond_path: /usr/local/authlib/var/spool/authdaemon/socket
    Sasl2 需要使用文件 /usr/local/authlib/var/spool/authdaemon/socket ,但默认情况下,其属性是 744 ,需要把它加上执行权限,以便文件属组(主)而外的其它用户可以执行。运行命令
chmod +x /usr/local/authlib/var/spool/authdaemon 即可,如果不这样处理, smtp 验证无一例外会失败的。
创建运行时需要的目录并调试启动
# mkdir -pv /var/state/saslauthd
# /usr/local/sbin/saslauthd -v //
看看版本是不是 2.1.22   
saslauthd 2.1.22
authentication mechanisms: getpwent   pam rimap shadow   
# /usr/local/sbin/saslauthd -a shadow pam -d // 正常不会报错
    启动并测试
# /usr/local/sbin/saslauthd -a shadow pam
# /usr/local/sbin/testsaslauthd -u root -p password //
正常显示 0: OK “Success” 成功
       (Password 改成机器登录账号 root 的密码 , 这里不是账号不是指的 MySQL 账号密码。否则会提示:
    0: NO “authentication failed”, 同时,注意这里测试不用开启 authdaemond(authlib)
 
       加入开机自启动
Echo “/usr/local/sbin/saslauthd -a shadow pam” >>/etc/rc.local
 
三. 安装 postfix
Make 参数参考:安装源文件READ_FILES 目录
   
# more README_FILES/MYSQL_README
    安装过程:
       ……………………………安装开始………………………………………………
       Shell> tar zxvf postfix -2.5.6.tar.gz
       Shell> cd postfix -2.5.6
Shell> make makefiles ‘CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl’ ‘AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2′
@@ 注意: 1. 如果没有 Makefile 文件,需要设置成 make -f Makefile.init
               2. /usr/local/mysql/include 如果此目录下还有 mysql 目录,应改成 /usr/local/mysql/include/mysql
                3. /usr/local/mysql/lib 如果此目录下还有 mysql 目录,应改成 /usr/local/mysql/lib/mysql
       如果没有意外, make 这一步很快就执行完了,接下来就是安装,使用的命令是
       Shell> make install
程序先自动执行一阵子,然后会进入交互状态,等待用户的输入,一般情况下,一路回车即可完成所有的安装。
 
最后:
生成别名二进制文件,这个步骤如果忽略,会造成
postfix 效率极低:
shell> /usr/bin/newaliases
…………………………安装结束……………………………………………
检验 postfix 是否支持 sasl 认证,如果输出为以下结果,则支持:
shell> /usr/sbin/postconf  -a      // postfix
安装没有指定目录
cyrus
dovecot
       shell> /usr/sbin/postconf  -m |grep mysql
       mysql          // 没有的话需重新编译 postfix
四. 安装 imap
   Postfix 只是实现邮件系统的smtp 功能,pop3imap 则需要另外的软件来实现,这个软件就是courier-imap( 当然也有别的软件可以选择)
……………………………安装开始………………………………………………
Shell> tar jxvf courier-imap-4.4.1.tar.bz2
Shell> cd courier-imap-4.4.1
Shell>./configure
–prefix=/usr/local/imap
–with-redhat
–disable-root-check
–enable-unicode=utf-8,iso-8859-1,gb2312,gbk,gb18030
–with-trashquota
–with-dirsync 
–with-mysql-libs=/usr/local/mysql/lib/mysql –with-mysql-includes=/usr/local/mysql/include/mysql
–with-authmysql
–with-authmysql=yes
 CPPFLAGS=’-I/usr/local/authlib/include’ LDFLAGS=’-L/usr/local/authlib/lib/courier-authlib’
COURIERAUTHCONFIG=’/usr/local/authlib/bin/courierauthconfig’ 
 
[ 以上时间长一些 ]
 
Shell> make
Shell> make install
Shell> make install-configure
 
……………………………安装结束………………………………………………
 
配置:
……………………………配置开始………………………………………………
修改配置文件 /usr/local/imap/etc/pop3d /usr/local/imap/etc/imapd 。把 /usr/local/imap
/etc/pop3d 文件的行“ POP3DSTART=NO ”改成“ POP3DSTART=YES ”,再依照这个形式把文件 /usr/local/imap/etc/imapd 的行“ IMAPDSTART=NO ”改成“ IMAPDSTART=YES ”即可。
 
加入开机启动:
cp courier-imap.sysvinit /etc/rc.d/init.d/imapd     // courier-imap.sysvinit 在安装源文件中
chmod +x /etc/rc.d/init.d/imapd
chkconfig –add imapd
[chkconfig --level 2345 imapd on]
Service imapd start  // 输出 Starting Courier-IMAP server: imap pop3
 
检测:
netstat -tnl|egrep “110|143″
  五. 安装 pcre
       安装前先卸载系统自带的 pcre-6.6-1.1
Rpm –e pcre
自带的 pcre RPM 包可能与一些有冲突,可以先卸载掉
Shell> rpm –e pcre 如果提示 libpcre.so.0 与别的软件有依存关系。可以这样
先备份一下 libpcre.so.0 这个文件,然后。
Shell> rpm -e pcre –nodeps
 
……………………………安装开始………………………………………………
Shell> tar zxvf pcre-7.8.tar.gz
Shell> cd  pcre-7.8
Shell> ./configure
 
Install prefix ……………… : /usr/local
    C preprocessor ……………… : gcc -E
    C compiler …………………. : gcc
    C++ preprocessor ……………. : g++ -E
    C++ compiler ……………….. : g++
    Linker …………………….. : /usr/bin/ld
    C preprocessor flags ………… :
    C compiler flags ……………. : -O2
    C++ compiler flags ………….. : -O2
    Linker flags ……………….. :
    Extra libraries …………….. :
 
    Build C++ library …………… : yes
    Enable UTF-8 support ………… : no
    Unicode properties ………….. : no
    Newline char/sequence ……….. : lf
    \R matches only ANYCRLF ……… : no
    EBCDIC coding ………………. : no
    Rebuild char tables …………. : no
    Use stack recursion …………. : yes
    POSIX mem threshold …………. : 10
    Internal link size ………….. : 2
    Match limit ………………… : 10000000
    Match limit recursion ……….. : MATCH_LIMIT
    Build shared libs …………… : yes
    Build static libs …………… : yes
    Link pcregrep with libz ……… : no
    Link pcregrep with libbz2 ……. : no
    Link pcretest with libreadline .. : no
Shell> make
Shell> make install
……………………………安装结束………………………………………………
安装 maildrop
       注意 % 源码安装的,将 courierauthconfig 命令链接到 /usr/bin 里,假设装在:
/usr/local/authlib/bin/courierauthconfig
,则:
ln -s /usr/local/authlib/bin/courierauthconfig /usr/bin/courierauthconfig
这样编译出来的 maildrop 才会 Courier Authentication Library extension enabled.
……………………………安装开始………………………………………………
       Shell> tar jxvf maildrop-2.0.4.tar.bz2
       Shell> cd maildrop-2.0.4
       Shell>./configure  
–enable-sendmail=/usr/sbin/sendmail
–enable-trusted-users=’root vmail’
–enable-syslog=1
–enable-maildirquota
–enable-maildrop-uid=1001
–enable-maildrop-gid=1001
–with-trashquota
–with-dirsync
Shell> make
Shell> make install
Shell> cp /usr/local/bin/maildrop /usr/bin   // 可有可无
……………………………安装结束………………………………………………
 
验证安装是否成功 :
Shell> maildrop –v
[root@localhost postfix ]# /usr/local/bin/maildrop -v
maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled.  // 这行重要 , 没有的话要查一下原因
Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
       FAQ:
   如果没有显示Courier Authentication Library extension enabled . 说明你的maidrop 还不支持courier auth ,请仔细检查,重新编译maildrop 建议不要自定义目录安装,可以减少不必要的麻烦,删除很方便:直接在已经编译的源代码目录 make uninstall 就行
知道 maildrop 把邮件移动到哪个用户目录还是非常有必要的,这个操作就是 maildrop 的日志记录。这里我们创建一个新文件 /etc/maildroprc ,这个文件就 2 行内容:如果加入反SPAM, 需要更改以下内容
[root@mail mailbox]# more /etc/maildroprc
logfile “/var/log/maildrop.log” 
to “$HOME/$DEFAULT”
Shell> touch /var/log/maildrop.log
Shell> chown vmail.vmail /var/log/maildrop.log
shell> chown vmail.vmail /var/mailbox

  Leave a Reply

Name (required)

E-mail (required)

URI

Your Comment

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 

  CentOS5.3+Nginx0.7.57+Postfix+Extmail邮件系统安装配置(1)   CentOS5.3+Nginx0.7.57+Postfix+Extmail邮件系统安装配置(3)
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics