第一步:准备以及部分说明

      1、系统:RedHat Enterprise Linux 5.4
      2、IP地址:192.168.1.4
      3、域名:mail.kk.com
      以下是DNS解析:

 
  1. 正向记录检查 
  2. [root@mail ~]# nslookup mail.kk.com 
  3. Server:        192.168.1.4 
  4. Address:    192.168.1.4#53 
  5.  
  6. Name:    mail.kk.com 
  7. Address: 192.168.1.4 
  8. 反向记录检查 
  9. [root@mail ~]# nslookup 192.168.1.4 
  10. Server:        192.168.1.4 
  11. Address:    192.168.1.4#53 
  12.  
  13. 4.1.168.192.in-addr.arpa    name = mail.kk.com. 

hostname:

 

 
  1. [root@mail ~]# hostname 
  2. mail.kk.com 

      部分说明:

 

            1、文中会用的yum安装软件,由于和本文没有多大联系,所以不会在本文出现详细配置。

 

            2、本文中只有maildrop和extmail部分属于源代码安装,所以以下主要软件我在一切开始之前就安装了。

 

 
  1. yum install -y http* perl* gcc* mysql* dovecot* php* 
  2. service httpd start 
  3. chkconfig httpd on 
  4. service mysqld start 
  5. chkdocnfig mysqld on 
  6. service dovecot start 
  7. chkconfig dovecot on 

            3、我的源代码包存放路径

 

 
  1. /usr/local/src 

            4、文中的环境都是我自己的系统环境,请各位在安装过程中根据自己的环境安装。

第二步:安装和配置postfix

 

      由于RHEL5.4自带的postfix的rpm包不支持mysql,所以需要自己编译,我这里的编译方法是使用src.rpm来编译postfix带支持mysql的rpm包。

 

       1、下载postfix-2.8.4-1.src.rpm--这个包目前来看应该是最新的。

      2、安装rpm -ivh postfix-2.8.4-1.src.rpm过程中可能会出现类似与没有目录的提示,建立好过后就行了。

      3、编辑/usr/src/redhat/SPECS/postfix.spec,我修改过的内容如下(其他的各位根据自己的实际情况更改):

 
  1. %define mysql_paths /usr/include/mysql/:/usr/lib/mysql 
  2. %define with_mysql_redhat 1 
  3. %define with_sasl 2 
  4. %define with_dovecot 1 

      4、安装rpm-build包,用于创建postfix的rpm包,使用如下命令:

 

 
  1. yum install -y rpm* 

      5、创建postfix的rpm包(在这个过程中可能也会出现没有某些目录,你根据提示创建目录就行了)。

 
  1. rpmbuild –ba /usr/src/redhat/SPECS/postfix.spec 

      6、安装postfix,命令如下:

 
  1. [root@mail ~]#rpm -ivh /usr/src/redhat/RPMS/i386/postfix-2.8.4-1.rhel5.i386.rpm 

      7、检查安装结果(可以看见有支持mysql):

 

 
  1. [root@mail ~]# postconf -m 
  2. btree 
  3. cidr 
  4. environ 
  5. hash 
  6. internal 
  7. ldap 
  8. mysql 
  9. nis 
  10. proxy 
  11. regexp 
  12. static 
  13. tcp 
  14. texthash 
  15. unix 

       8、配置postfix(修改配置文件之前最好备份):

 

 
  1. cp /etc/postfix/main.cf /etc/postfix/main.cf.back 

          编辑主配置文件:

 

          以下是主要配置:

 

 
  1. 1         myhostname = mail.kk.com 
  2. #####这个参数大家更改成自己的主机名即可; 
  3. 2         mydomain = kk.com   
  4. ####这个参数就是我们的域名; 
  5. 3         myorigin = $myhostname 
  6. #####这个是设置邮件表头上面的mail from地址的,大家用默认即可,即取消前面的那个; 
  7. 4         inet_interfaces = all   
  8. ####这个就是设置我们的邮件服务器监听所有的端口; 
  9. 5         #mydestination = ####$myhostname, localhost.$mydomain, localhost, $mydomain, 
  10. #####mail.$mydomain, www.$mydomain, ftp.$mydomain 
  11. ###这个可以不用写,由于要配置虚拟域,如果这里配置了的话会导致mail积压在队列里面不能发送; 
  12. 6  mynetworks = 192.168.1.0/24, 127.0.0.0/8,hash:/etc/postfix/access   
  13. ####这个设置是决定你要向哪些网段和主机开放使用本邮件服务; 
  14. 7         #relay_domains = $mydestination 
  15. ###### 这个参数就是说如果我们有多台邮件服务器,我们的这台服务器需要将邮件转发到其他服务时,就像Yahoo的邮箱要转发到QQ邮箱上,那么在yahoo的邮箱中就要设置这个转发咯。这里我不需要转发,就不用配置了。大家根据自己需要自行更改; 

            以下是虚拟邮箱以及maildrop的设置(我加在配置文件最末尾的):

 

 
  1. virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf 
  2. ####设置虚拟邮箱的别名的,后面的mysql:表示是通过mysql数据库来提供验证的,也就是说我们的别名数据是放在mysql数据库中的 
  3. virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf 
  4. ####虚拟邮箱可以接受哪些域 
  5. virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf 
  6. ####虚拟邮箱的邮箱登陆账户 

 

               以上文件都存在于extman的压缩包里,然后我们就复制过来并且进行编辑:

 

 
  1. [root@mail ~]# tar -zxv -f /usr/local/src/extman-1.1.tar.gz 
  2. [root@mail ~]#cp /usr/local/src/extman-1.1/docs/mysql_virtual_alias_maps.cf /etc/postfix/ 
  3. [root@mail ~]#cp /usr/local/src/extman-1.1/docs/mysql_virtual_domains_maps.cf /etc/postfix/ 
  4. [root@mail ~]#cp /usr/local/src/extman-1.1/docs/mysql_virtual_mailbox_maps.cf /etc/postfix/ 

      9、编辑虚拟邮箱配置文件(也就是在extman下面复制过去的几个文件)

 

           第一个文件的内容如下:

 

 
  1. [root@mail ~]# vim /etc/postfix/mysql_virtual_alias_maps.cf 
  2. user = extmail 
  3. password = extmail 
  4. hosts = localhost 
  5. dbname = extmail 
  6. table = alias 
  7. select_field = goto 
  8. where_field = address 
  9. #additional_conditions = AND active = '1' 

             第二个文件的内容如下:

 

 
  1. [root@mail ~]# vim /etc/postfix/mysql_virtual_mailbox_maps.cf 
  2. user = extmail 
  3. password = extmail 
  4. hosts = localhost 
  5. dbname = extmail 
  6. table = mailbox 
  7. select_field = maildir 
  8. where_field = username 
  9. #additional_conditions = AND active = '1' 

              第三个文件的内容如下:

 
  1. [root@mail ~]# vim /etc/postfix/mysql_virtual_domains_maps.cf 
  2. user = extmail 
  3. password = extmail 
  4. hosts = localhost 
  5. dbname = extmail 
  6. table = domain 
  7. #select_field = domain 
  8. select_field = description 
  9. where_field = domain 
  10. #additional_conditions = AND active = '1' 

三:安装maildrop

 

       1、创建maildrop的用户

 

 
  1. groupadd vmail -g 1001 
  2. useradd vmail -u 1001 -g 1001 

       2、安装courier-authlib(源代码安装)

        首先是一些有依赖的包:

 
  1. yum install -y libtool-libs* 
  2. yum install -y openssl097a* 

          然后开始安装courier-authlib

 

 
  1. [root@mail ~]# tar -jxv -f /usr/local/src/courier-authlib-0.63.0.tar.bz2 
  2. [root@mail ~]# cd /usr/local/src/courier-authlib-0.63.0 
  3. [root@mail courier-authlib-0.63.0]# ./configure --with-redhat --with-authmysql=yes --with-mailuser=vmail --with-mailgroup=vmail --with-mysql-libs=/usr/lib/mysql --with-mysql-includes=/usr/include/mysql --prefix=/usr/local/authlib --without-stdheaderdir 
  4. ####这里说明一下--with-mysql-libs和--with-mysql-includes这两个路径大家根据自己的实际环境来更改 
  5. [root@mail courier-authlib-0.63.0]# make;make install 
  6. [root@mail courier-authlib-0.63.0]# cd /usr/local/authlib/etc/authlib/ 
  7. [root@mail authlib]# mv authdaemonrc.dist authdaemonrc 
  8. [root@mail authlib]# mv authmysqlrc.dist authmysqlrc 
  9. [root@mail authlib]#vim authdaemonrc 
  10.  
  11. ###确保内容如下,你也可以根据自己需求情况更改 
  12. authmodulelist="authmysql" 
  13. authmodulelistorig="authmysql" 
  14. daemons=10 
  15. [root@mail authlib]#vim authmysqlrc 
  16. ###确保内容如下,你也可以根据自己需求情况更改 
  17. MYSQL_SERVER            localhost 
  18. MYSQL_USERNAME          extmail 
  19. MYSQL_PASSWORD          extmail 
  20. MYSQL_SOCKET            /var/lib/mysql/mysql.sock 
  21. MYSQL_PORT              3306 
  22. MYSQL_OPT               0 
  23. MYSQL_DATABASE          extmail 
  24. MYSQL_USER_TABLE        mailbox 
  25. MYSQL_CRYPT_PWFIELD     password 
  26. MYSQL_UID_FIELD         1001 
  27. MYSQL_GID_FIELD         1001 
  28. ###上面的UID和GID选项好像也可以为uidnumber,gidnumber 
  29. MYSQL_LOGIN_FIELD       username 
  30. MYSQL_HOME_FIELD        homedir 
  31. MYSQL_NAME_FIELD        name 
  32. MYSQL_MAILDIR_FIELD     maildir 
  33. MYSQL_QUOTA_FIELD       quota 
  34. MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,\ 
  35.                         CONCAT('/home/domains/',homedir),               \ 
  36.                         CONCAT('/home/domains/',maildir),               \ 
  37.                         quota,                                          \ 
  38.                         name                                            \ 
  39.                         FROM mailbox                                    \ 
  40.                         WHERE username = '$(local_part)@$(domain)' 
  41. ####设置authlib的共享库 
  42. [root@mail authlib]#echo "/usr/local/authlib/lib/courier-authlib" >> /etc/ld.so.conf 
  43. [root@mail authlib]#ldconfig 
  44.  
  45. #####拷贝安装包内的courier-authlib.sysvinit到/etc/init.d下: 
  46. [root@mail authlib]#cp courier-authlib.sysvinit /etc/init.d/courier-authlib 
  47. [root@mail authlib]#chmod 755 /etc/init.d/courier-authlib 
  48. [root@mail authlib]#chkconfig --add courier-authlib 
  49. [root@mail authlib]#chkconfig --level 2345 courier-authlib on 
  50. [root@mail authlib]#service courier-authlib start 
  51. [root@mail authlib]#ln -s /usr/local/authlib/var/spool/authdaemon  /var/spool/authdaemon 
  52. [root@mail authlib]#chmod 755 /var/spool/authdaemon 
  53. [root@mail authlib]#chmod +x /usr/local/authlib/var/spool/authdaemon 
  54. ####下面两个连接文件在安装maildrop时,会去相应目录检查这些文件,这样编译出来的maildrop才会ourier Authentication Library extension enabled.。 
  55. [root@mail authlib]#ln -sv /usr/local/authlib/bin/courierauthconfig /usr/bin 
  56. [root@mail authlib]#ln -sv /usr/local/authlib/include/* /usr/include  

        安装maildrop

 

 
  1. [root@mail ~]# tar -jxv -f  /usr/local/src/maildrop-2.5.4.tar.bz2 
  2. [root@mail ~]# ./configure --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail' --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=1001 --enable-maildrop-uid=1001 --with-trashquota --with-dirsync 
  3. [root@mail ~]# make;make install 
  4. ###测试,如果出现Courier Authentication Library extension enabled.安装maidrop就差不多完成了。 
  5. [root@mail ~]# maildrop -v 
  6. maildrop 2.5.4 Copyright 1998-2005 Double Precision, Inc. 
  7. Courier Authentication Library extension enabled. 
  8. Maildir quota extension are now always enabled. 
  9. This program is distributed under the terms of the GNU General Public 
  10. License. See COPYING for additional information. 

        编辑/etc/postfix/master.cf和/etc/postfix/main.cf使postfix支持maildrop

 

 
  1. maildrop  unix  -       n       n       -       -       pipe 
  2.  
  3.   flags=DRhu user=vmail argv=/usr/local/bin/maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop} 
  4. ####第二行前面必须要有两个空格,不然会出错,以上是master.cf 
  5. ####以下是main.cf 
  6. virtual_transport = maildrop
  7. maildrop_destination_recipient_limit = 1 

         maildrop日志

        

 
  1. [root@mail ~]#vim /etc/maildroprc ####输入如下内容: 
  2. logfile "/var/log/maildrop.log" 
  3. [root@mail ~]#touch /var/log/maildrop.log 
  4. [root@mail ~]#chown -R vmal.vmail /var/log/maildrop.log 

        如果在发送邮件过后的/var/log/maillog里面看见如下内容,maildrop就差不多成功了。

 

 
  1. Nov 11 20:57:50 mail postfix/pipe[5711]: 256142311D1: to=<lj@kk.com>relay=maildropdelay=7931234delays=7931233/0.34/0/0.36, dsn=2.0.0, status=sent (delivered via maildrop service) 

         安装过程中的一个小问题:

 

         编译安装的时候出现以下报错configure: error: pcre.h not found - install PCRE from

,请安装pcre-devel包

 

        第四步:配置APACHE

 

 
  1. [root@mail ~]# vim /etc/httpd/conf/httpd.conf 
  2. ServerName mail.kk.com:80 
  3. Include conf.d/*.conf 
  4. #AddDefaultCharset UTF-8 
  5. ########然后建立虚拟主机 
  6. [root@mail ~]#touch /etc/httpd/conf.d/vhost_extmail.conf  [root@mail ~]#vim /etc/httpd/conf.d/vhost_extmail.conf 
  7. # VirtualHost for ExtMail Solution 
  8. <VirtualHost *:80> 
  9. ServerName mail.extmail.org 
  10. DocumentRoot /var/www/extsuite/extmail/html/ 
  11.  
  12. ScriptAlias /extmail/cgi/ /var/www/extsuite/extmail/cgi/ 
  13. Alias /extmail/ /var/www/extsuite/extmail/html/ 
  14.  
  15. ScriptAlias /extman/cgi/ /var/www/extsuite/extman/cgi/ 
  16. Alias /extman/ /var/www/extsuite/extman/html/ 
  17.  
  18. # Suexec config 
  19. SuexecUserGroup vmail vmail 
  20. </VirtualHost> 
  21. #####注意这个时候还不能启动apache,启动也会报错,应该设置虚拟主机时候指定的路径里面的那些文件 
  22. #####还没有复制过去 

        第五步:安装extmail和extman

 

         1、安装extmail和extman需要的perl套件

 

 
  1. yum install -y perl-Unix-Syslog  perl-GD 

 

         2、解压extmail和extman到apache的路径下面去:

     

 
  1. [root@mail ~]# tar -zxv -f /usr/local/src/extmail-1.2.tar.gz -C /var/www/extsuite/ 
  2. [root@mail ~]# tar -zxv -f /usr/local/src/extman-1.1.tar.gz -C /var/www/extsuite/ 
  3. [root@mail ~]#cd /var/www/extsuite 
  4. [root@mail extsuite]#mv extmail-1.2 extmail 
  5. [root@mail extsuite]#mv extman-1.1 extman 

         3、编辑extmail和extman的配置文件

 

 
  1. ###先是extmail 
  2. [root@mail extsuite]# cd extmail/ 
  3. [root@mail extmail]# cp webmail.cf.default webmail.cf 
  4. [root@mail extmail]# vim webmail.cf 
  5. ####修改内容如下 
  6. SYS_USER_LANG = zh_CN  SYS_USER_CHARSET = gb2312   
  7.  
  8.   SYS_MYSQL_USER = extmail  SYS_MYSQL_PASS = extmail  SYS_MYSQL_DB = extmail  SYS_MYSQL_HOST = localhost  SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock  ######这里大家根据自己的数据库名称和密码来修改,我直接就用extmail提供的 了。  ######还有最后一行  SYS_G_ABOOK_FILE_CHARSET = gb2312   
  9.   由于SuEXEC的需要,必须将extmail的cgi目录修改成vmail:vmail权限  [root@mail extmail]#chown -R vmail:vmail /var/www/extsuite/extmail/cgi/ 
  10.  
  11.  
  12. ####再是extman 
  13. [root@mail extmail]# cd ../extman/ 
  14. [root@mail extman]# cp webman.cf.default webman.cf 
  15. [root@mail extman]# vim webman.cf 
  16. #### 和配置webextmail差不多  SYS-LANG = zh_CN  ####以下和数据库有关的,大家根据自己的情况修改,我这里默认  SYS_MYSQL_USER = webman  SYS_MYSQL_PASS = webman  SYS_MYSQL_DB = extmail  SYS_MYSQL_HOST = localhost  SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock[root@mail extman]# chown -R vmail:vmail /var/www/extsuite/extman/cgi/ 

        4、导入extman里面的数据库模板到mysql

 

 
  1. ####先启动mysql 
  2. [root@mail ~]# /etc/rc.d/init.d/mysqld start 
  3. [root@mail ~]#mysql -u root -p < /var/www/extsuite/extman/docs/extmail.sql  ###要求密码,直接回车即可 
  4. [root@mail ~]#vim /var/www/extsuite/extman/docs/init.sql   
  5. #####把里面的extmail.org都换成你的域名,我的是 
  6. ####kk.com 
  7. [root@mail ~]#mysql -u root -p < /var/www/extsuite/extman/docs/init.sql     

         5、数据库建立好了,下面链接基本库到extmail

 
  1. [root@mail ~]#mkdir /tmp/extman/ 
  2. [root@mail ~]#chown –R vmail:vmail /tmp/extman/ 
  3. ####建立刚才导入mysql的postmaster@yourdomain.org帐户的Maildir,运行脚本。 
  4. [root@mail tools]# cd /var/www/extsuite/extman/tools/ 
  5. [root@mail tools]# ./maildirmake.pl /home/domains/yourdomain.com/postmaster/Maildir 
  6. [root@mail tools]# chown -R vmail:vmail /home/domains/yourdomain.com 

       6、测试(如下则为成功)

 

 
  1. [root@mail tools]# authtest -s login postmaster@kk.com 
  2. #####authtest命令如果不行,你用find查找一下,使用绝对路径,例如我的:/usr/sbin/authtest -s login 
  3. #####postmaster@kk.com 
  4. Authentication succeeded. 
  5.  
  6.      Authenticated: postmaster@kk.com  (uid 1001, gid 1001) 
  7.     Home Directory: /home/domains/kk.com/postmaster 
  8.            Maildir: /home/domains/kk.com/postmaster/Maildir/ 
  9.              Quota: 104857600S 
  10. Encrypted Password: rWWzNCTz2E5ig 
  11. Cleartext Password: (none) 
  12.            Options: (none) 

第六步:配置dovecot

      1、养成良好的习惯,备份配置文件

 
  1. [root@mail ~]# cp /etc/dovecot.conf /etc/dovecot.conf.bak 

       2、编辑配置文件

 

 
  1. [root@mail ~]# vim /etc/dovecot.conf 
  2. base_dir=/var/run/dovecot 
  3. protocols = imap pop3 
  4. listen = * 
  5. disable_plaintext_auth = no 
  6. ssl_disable = yes 
  7. mail_location = maildir:/var/spool/mail/%d/%n 
  8. auth default { 
  9.         mechanisms = PLAIN LOGIN CRAM-MD5 DIGEST-MD5 
  10.         passdb sql { 
  11.                args = /etc/dovecot-mysql.conf 
  12.         } 
  13. userdb sql { 
  14.                 args = /etc/dovecot-mysql.conf 
  15.         } 
  16. socket listen { 
  17.                 client { 
  18.                         path = /var/run/dovecot/auth-client 
  19.                         mode = 0660 
  20.                         user = postfix 
  21.                         group = postfix 
  22.                 } 
  23.   } 
  24. ####/etc/dovecot-mysql.conf是dovecot和mysql关联的文件,很重要,这个文件在安装的时候已经安装到 
  25. ####系统里面了,路径如下。 
  26. [root@mail examples]# ls /usr/share/doc/dovecot-1.0.7/examples/dovecot-sql-example.conf  

        3、编辑/etc/dovecot-mysql.conf

 

 
  1. [root@mail ~]# cp /usr/share/doc/dovecot-1.0.7/examples/dovecot-sql-example.conf  /etc/dovecot-mysql.conf 
  2. [root@mail ~]# vim /etc/dovecot-mysql.conf 
  3. ####主要编辑如下内容 
  4. driver = mysql 
  5. connect = host=/var/lib/mysql/mysql.sock dbname=extmail user=extmail password=extmail 
  6. default_pass_scheme = MD5 
  7. user_query = SELECT password FROM mailbox WHERE username = '%u' 
  8. password_query = SELECT password FROM mailbox WHERE username = '%u' 

第八步:安装Mailscanner+clamav+spamassass

 

       1、安装相关软件

 
  1. yum install -y patch rpm-build 
  2. yum install -y perl-MIME-tools 
  3. yum install -y gcc perl-Archive-Zip 
  4. yum install -y spamassassin 
  5. yum install -y perl-Razor-Agent 
  6. yum install -y pyzor 
  7. yum install -y unrar 
  8. yum install -y clamav-db clamav clamd 
  9. service spamassassin start 
  10. chkconfig spamassassin on 
  11. ####其中有个dcc需要源代码安装 
  12. [root@mail ~]# tar -zxv -f /usr/local/src/dcc-dccd.tar.Z 
  13. [root@mail ~]# cd /usr/local/src/dcc-dccd-1.3.140/ 
  14. [root@mail dcc-dccd-1.3.140]# ./configure 
  15. [root@mail dcc-dccd-1.3.140]# make 
  16. [root@mail dcc-dccd-1.3.140]# make install 

       2、安装

 
  1. [root@mail ~]# cd /usr/local/src/ 
  2. [root@mail src]# tar -zxv -f MailScanner-4.84.3-1.rpm.tar.gz 
  3. [root@mail src]# cd MailScanner-4.84.3-1 
  4. [root@mail MailScanner-4.84.3-1]# vim yum.sh 
  5. ###在里面有很多prel套件,但是我安装过程中有问题所以我把里面的套件重新安装了一遍;下面是我写的脚本,可 
  6. ###能有些套件不能安装,但是影响不是很大,下面是我yum.sh脚本里面的内容 
  7. #!/bin/bash 
  8. yum install -y perl-Archive-Zip 
  9. yum install -y perl-Net-CIDR 
  10. yum install -y perl-bignum 
  11. yum install -y perl-Net-DNS 
  12. yum install -y perl-Compress-Raw-Zlib 
  13. yum install -y perl-Net-IP 
  14. yum install -y perl-Compress-Zlib 
  15. yum install -y perl-OLE-Storage_Lite 
  16. yum install -y perl-Convert-BinHex 
  17. yum install -y perl-Pod-Escapes 
  18. yum install -y perl-Convert-TNEF 
  19. yum install -y perl-Pod-Simple 
  20. yum install -y perl-DBD-SQLite 
  21. yum install -y perl-Scalar-List-Utils 
  22. yum install -y perl-DBI 
  23. yum install -y perl-Storable 
  24. yum install -y perl-Digest-HMAC 
  25. yum install -y perl-Sys-Hostname-Long 
  26. yum install -y perl-Digest-MD5 
  27. yum install -y perl-Sys-SigAction 
  28. yum install -y perl-Digest-SHA1 
  29. yum install -y perl-Sys-Syslog 
  30. yum install -y perl-ExtUtils-MakeMaker 
  31. yum install -y perl-Test-Harness 
  32. yum install -y perl-File-Spec 
  33. yum install -y perl-Test-Pod 
  34. yum install -y perl-Filesys-Df 
  35. yum install -y perl-Test-Simple 
  36. yum install -y perl-File-Temp 
  37. yum install -y perl-TimeDate 
  38. yum install -y perl-Getopt-Long 
  39. yum install -y perl-Time-HiRes 
  40. yum install -y perl-HTML-Parser 
  41. yum install -y perl-HTML-Tagset 
  42. yum install -y perl-IO 
  43. yum install -y perl-IO-stringy 
  44. yum install -y perl-MailTools 
  45. yum install -y perl-Math-BigInt 
  46. yum install -y perl-Math-BigRat 
  47. yum install -y perl-MIME-Base64 
  48. yum install -y perl-MIME-tools 
  49.  
  50. ###我执行这个脚本过后才运行的Mailscanner安装脚本。 
  51. [root@mail MailScanner-4.84.3-1]# ./install.sh 

      3、设置MailScanner配置文件

 

 
  1. [root@mail ~]# vim /etc/MailScanner/MailScanner.conf 
  2. Run As User = postfix  ( 启动者) 
  3. Run As Group = postfix   (启动用户组) 
  4. Incoming Queue Dir = /var/spool/postfix/hold/   (收信队列) 
  5. Outgoing Queue Dir = /var/spool/postfix/incoming/   (寄信队列) 
  6. MTA = postfix   (使用的MTA为postfix) 
  7. Max Children = 5    (产生子程序的上限) 
  8. Virus Scanning = yes    (启动病毒扫描) 
  9. Virus Scanners = clamav   (指定病毒扫描使用clamav,如果有多个,用空格分隔) 
  10. Spam Checks = yes   (启动spam扫描) 
  11. Use SpamAssassin = yes   (使用Spamassassin扫描spam) 
  12. SpamAssassin Site Rules Dir = /etc/mail/spamassassin   (SpamAssassin规则路径) 
  13. Deliver Unparsable TNEF = yes   (增加使用outlook的兼容) 
  14. High Scoring Spam Actions = deliver header “X-Spam-Status: Yes”   (积分高时在header标记X-Spam) 

        4、队列属性配置

 
  1. [root@mail ~]# chown postfix.postfix /var/spool/MailScanner/incoming 
  2. [root@mail ~]# chown postfix.postfix /var/spool/MailScanner/quarantine 

        5、将postfix拖给MailScanner

 

 
  1. [root@mail ~]# vim /etc/postfix/main.cf 
  2. header_checks = regexp:/etc/postfix/header_checks 
  3.  
  4. [root@mail ~]# vim /etc/postfix/header_checks 
  5. /^Received:/ HOLD 

        6、停掉postfix,启动MailScanner

 

 
  1. service postfix stop 
  2. chkconfig postfix off 
  3. service MailScanner start 
  4. chkconfig MailScanner on 

        7、设定clamav更新

 

 
  1. [root@mail ~]# vim /etc/crontab 
  2. 0 0,12 * * * root /usr/bin/freshclam 

       8、spamassassin设定

 
  1. [root@mail ~]# ls /etc/mail/spamassassin/local.cf    ###预设规则文件:可以去官网设定http://www.yrex.com 
  2.                                                                                  #####/spam/spamconfig.php 
  3. #####中文规则如下: 
  4. [root@mail ~]# wget -N -P /etc/mail/spamassassin/ www.ccert.edu.cn/spam/sa/Chinese_rules.cf 
  5. --2011-11-12 06:06:53--  http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf 
  6. Connecting to 192.168.1.9:3128... 已连接。 
  7. 已发出 Proxy 请求,正在等待回应... 200 OK 
  8. 长度:55342 (54K) [text/plain] 
  9. Saving to: `/etc/mail/spamassassin/Chinese_rules.cf' 
  10.  
  11. 100%[======================================>] 55,342      48.6K/s   in 1.1s    
  12.  
  13. 2011-11-12 06:06:59 (48.6 KB/s) - `/etc/mail/spamassassin/Chinese_rules.cf' saved [55342/55342] 
  14.  
  15. [root@mail ~]#  

        9、启动spamassassin自动学习

 

 
  1. [root@mail ~]# spamassassin --lint --config-file=/etc/MailScanner/spam.assassin.prefs.conf 
  2.  
  3. ####无资料库时出现debug: bayes: no dbs present, cannot tie DB R/O: /var/spool/MailScanner/spamassassin 
  4. ####/bayes_toks 
  5. ####执行sa-learn --sync在/var/spool/MailScanner/spamassassin/里建立bayes_seen/bayes_toks等资料库档案 

        10、建立黑白名单账户

 
  1. [root@mail ~]# useradd spam 
  2. [root@mail ~]# useradd nospam 

         11、学习黑名单

 

 
  1. [root@mail ~]# sa-learn --prefs-file=/etc/MailScanner/spam.assassin.prefs.conf --showdots --spam --mbox /var/mail/spam 

         12、学习白名单

 

 
  1. [root@mail ~]#sa-learn --prefs-file=/etc/MailScanner/spam.assassin.prefs.conf --showdots --ham --mbox /var/mail/nospam 

           13、建立自动学习黑白名单脚本

 

 
  1. [root@mail ~]# vim /etc/cron.daily/spam-learn 
  2. #!/bin/sh 
  3. SPAM=/var/mail/spam 
  4. NOSPAM=/var/mail/nospam 
  5.  
  6. LOGFILE=/var/log/spamlearn.log 
  7. CONF=/etc/MailScanner/spam.assassin.prefs.conf 
  8. LEARN=/usr/bin/sa-learn 
  9.  
  10. date >> $LOGFILE 
  11. if [ -f $SPAM ]; then 
  12. BOX=${SPAM}.processing 
  13. mv $SPAM $BOX 
  14. sleep 5 
  15. $LEARN –prefs-file=$CONF –spam –mbox $BOX >> $LOGFILE 2>&1 
  16. rm -f $BOX 
  17. fi 
  18.  
  19. if [ -f $NOSPAM ]; then 
  20. BOX=${NOSPAM}.processing 
  21. mv $NOSPAM $BOX 
  22. sleep 5 
  23. $LEARN –prefs-file=$CONF –ham –mbox $BOX >> $LOGFILE 2>&1 
  24. rm -f $BOX 
  25. fi 
  26.  
  27.  
  28.  
  29. ####然后重启crond 
  30. [root@mail ~]# /etc/rc.d/init.d/crond restart 

第九步:安装Mailscanner-mrtg

 

         1、安装SNMP

 

 
  1. [root@mail ~]# yum install -y net-snmp net-snmp-utils 

          2、设置snmp

 

 
  1. [root@mail ~]# vim /etc/snmp/snmpd.conf 
  2.  
  3.  
  4. com2sec local  localhost       public 
  5. com2sec mynetwork 192.168.1.0/24      public 
  6. group MyRWGroup  v1        local 
  7. group MyROGroup  v1        mynetwork 
  8. group MyRWGroup  v2c        local 
  9. view    systemview    included   .1.3.6.1.2.1.1 
  10. view    systemview    included   .1.3.6.1.2.1.25.1.1 
  11. view all    included  .1                               80 
  12. access MyROGroup ""      any       noauth    prefix      all    none   none 
  13. access MyRWGroup ""      any       noauth    prefix      all    all    all 
  14. syslocation Unknown (edit /etc/snmp/snmpd.conf) 
  15. pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat 
  16.  
  17.  
  18. [root@mail ~]# /etc/rc.d/init.d/snmpd restart 
  19. 停止 snmpd:                                               [失败] 
  20. 启动 snmpd:                                               [确定] 

          3、安装MRTG

 

 
  1. [root@mail ~]# yum install -y mrtg 

           4、安裝Mailscanner-MRTG(下载:

 
  1. [root@mail ~]# rpm -ivh /mnt/postfix/mailscanner-mrtg-0.10.00-1.noarch.rpm  

          5、设置MailScanner-MRTG

 

 
  1. ####第一个文件 
  2. [root@mail ~]# vim /etc/MailScanner/mailscanner-mrtg.conf 
  3.  
  4.  
  5. MTA = postfix 
  6. Incoming Queue Dir = /var/spool/postfix/hold 
  7. Outgoing Queue Dir = /var/spool/postfix/incoming 
  8. MailScanner Work Directory = /var/spool/MailScanner/incoming 
  9. Spool Directory = /var 
  10. Use SNMP = yes 
  11. SNMP Community = public 
  12.  
  13.  
  14. ####第二个文件 
  15. [root@mail ~]# vim /etc/mrtg/mailscanner-mrtg.cfg 
  16.  
  17. Workdir: /var/www/html/mailscanner-mrtg/ 
  18. IconDir: /mrtg/ 
  19. WriteExpires: Yes 
  20. Interval: 5 
  21. Refresh: 300 
  22. Language: big5 

          6、生成MailScanner-MRTG的index.html

 

 
  1. [root@mail ~]# indexmaker --output=/var/www/html/mailscanner-mrtg/index.html /etc/mrtg/mailscanner-mrtg.cfg 

          7、安装好过后可以输入http://XXXX/mailscanner-mrtg进行浏览,如果不行运行如下命令。再检查配置文件

 

 
  1. [root@mail ~]# mrtg /etc/mrtg/mailscanner-mrtg.cfg 

          8、下面是我访问的图片

 

   

 

   

第十步:安装Mailwatch

 

        1、下载并安装(下载地址:

 
  1. [root@mail ~]# tar -zxv -f /usr/local/src/mailwatch-1.0.5.tar.gz 

        2、建立数据库

 

 
  1. [root@mail ~]# cd /usr/local/src/mailwatch-1.0.5 
  2. [root@mail mailwatch-1.0.5]# mysql -p < create.sql 

         3、修改MailWatch设定

 

 
  1. [root@mail mailwatch-1.0.5]# vim MailWatch.pm 
  2.  
  3. my($db_name) = 'mailscanner';     ###数据库名称 
  4. my($db_host) = 'localhost';            ###数据库位置 
  5. my($db_user) = 'root';                    ###数据库使用者 
  6. my($db_pass) = '19901218';          ###使用者密码 

        4、复制给MailScanner

 

 
  1. [root@mail mailwatch-1.0.5]# cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/ 

        5、在数据库中添加网页使用者

 
  1. [root@mail mailwatch-1.0.5]# mysql mailscanner -u root -p 
  2. Enter password: 
  3. mysql> insert into users values ('root',md5('19901218'),'root','A','0','0','0','0','0'); 

        6、设置网页

 

 
  1. [root@mail mailwatch-1.0.5]# mv mailscanenr /var/www/html 
  2. [root@mail mailwatch-1.0.5]# cd /var/www/html/mailscanner 
  3. [root@mail mailscanner]# chown root:apache p_w_picpaths 
  4. [root@mail mailscanner]# chmod ug+rwx p_w_picpaths/ 
  5. [root@mail mailscanner]# chown root:apache p_w_picpaths/cache/ 
  6. [root@mail mailscanner]# chmod ug+rwx p_w_picpaths/cache/ 

        7、修改mailwatch网页配置文件

 

 
  1. [root@mail mailscanner]# cp conf.php.example conf.php 
  2. [root@mail mailscanner]# vim conf.php 
  3.  
  4. define('DB_TYPE', 'mysql'); 
  5. define('DB_USER', 'root'); 
  6. define('DB_PASS', '19901218'); 
  7. define('DB_HOST', 'localhost'); 
  8. define('DB_NAME', 'mailscanner'); 

        8、修改MailScanner配置文件

 

 
  1. [root@mail mailscanner]# vim /etc/MailScanner/MailScanner.conf 
  2.  
  3. Quarantine User = root 
  4. Quarantine Group = apache 
  5. Quarantine Permissions = 0600 
  6. Quarantine Whole Message = yes 
  7. Quarantine Whole Messages As Queue Files = no 
  8. Detailed Spam Report = yes 
  9. Include Scores In SpamAssassin Report = yes 
  10. Always Looked Up Last = &MailWatchLogging 

         9、设置黑白名单

 

 
 
  1. [root@mail mailscanner]# vim /usr/local/src/mailwatch-1.0.5/SQLBlackWhiteList.pm 
  2.  
  3. my($db_name) = 'mailscanner'; 
  4.   my($db_host) = 'localhost'; 
  5.   my($db_user) = 'root'; 
  6.   my($db_pass) = 'f6a3f1a424fd6ce5aedf893158e71c1'; 
  7.  
  8. [root@mail mailscanner]# cp /usr/local/src/mailwatch-1.0.5/SQLBlackWhiteList.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/ 
  9.  
  10.  
  11. [root@mail mailscanner]# vim /etc/MailScanner/MailScanner.conf 
  12.  
  13. Is Definitely Not Spam = &SQLWhitelist 
  14. Is Definitely Spam = &SQLBlacklist 

        10、设置spamassassin

 

 
  1. [root@mail mailscanner]# vim /etc/MailScanner/spam.assassin.prefs.conf 
  2.  
  3. bayes_path /etc/MailScanner/bayes/bayes 
  4. bayes_file_mode 0660 

        11、复制bayes资料库到MailScanner下面

 
  1. cp /root/.spamassassin/bayes_* /etc/MailScanner/bayes 
  2. chown root:apache /etc/MailScanner/bayes/bayes_* 
  3. chmod g+rw /etc/MailScanner/bayes/bayes_* 
  4.  
  5. ####测试spamassassin; 
  6. [root@mail .spamassassin]# spamassassin -D -p /etc/MailScanner/spam.assassin.prefs.conf --lint 

         12、mailscanner网页汉化网址:

我这里就不详细说明了。

 

         13、登录mailwatch检测页面,地址为:http://xxxx/mailscanner首先要输入用户名和密码,如下对话框图,进入过后就是mailwatch for mailscanner 的界面。

     

最后一步:邮件测试

 

       1、启动各项服务(我写了一个脚本):

#!/bin/bash
service httpd restart
/etc/init.d/courier-authlib restart
service dovecot restart
service spamassassin restart
service MailScanner restart
service named restart

 

        2、extmail登录以及邮件发送测试

原文网址:http://276660374.wp5.dvbbs.net/forum.php?mod=viewthread&tid=604&page=1&extra=#pid5155

 

参照的网址

  #####主要的安装

                                                     #####

courier-authlib安装

                                  #####maildrop安装
                                                       ####mailscanner+clamav+spamassassin
                                                       ####mailscanner-mrtg+mailwatch安装