yum install -y httpd mysql-server mysql-devel postgresql-devel expect libtool-ltdl-devel gamin-devel pcre-devel groupadd -g 1000 vgroup useradd -g 1000 -u 1000 -M -s /bin/false vuser service mysqld start chkconfig mysqld on cd /usr/local/src rpmbuild -ta courier-authlib-0.63.0.tar.bz2 cd /usr/src/redhat/RPMS/i386/ rpm -ivh courier-authlib-0.63.0-1.i386.rpm courier-authlib-mysql-0.63.0-1.i386.rpm courier-authlib-devel-0.63.0-
1.i386.rpm 添加普通账号,并使用普通账号 给予普通账号/usr/src/redhat目录的读写权限,然后rpmbuild courier-imap cd /usr/local/src rpmbuild -ta courier-imap-4.6.0.tar.bz2 切换回root cd /usr/src/redhat/RPMS/i386/ rpm -ivh courier-imap-4.6.0-1.i386.rpm cd /usr/local/src rpmbuild -ta maildrop-2.5.2.tar.bz2 cd /usr/src/redhat/RPMS/i386/ rpm -ivh maildrop-2.5.2-1.i386.rpm
cd /usr/local/src rpm -qa | grep cyrus-sasl | xargs rpm -e --nodeps rm -rf /usr/lib/sasl rm -rf /usr/lib/sasl2 rpm -ivh cyrus-sasl-lib-2.1.22-8.i386.rpm cyrus-sasl-2.1.22-8.i386.rpm cyrus-sasl-devel-2.1.22-8.i386.rpm cyrus-sasl-
plain-2.1.22-8.i386.rpm 从emos包中提取出来的
/etc/init.d/sendmail stop rpm -ivh postfix-2.5.1-1.mysql.sasl2.vda.rhel5.i386.rpm rpm -e sendmail postconf -n > /etc/postfix/main2.cf mv /etc/postfix/main.cf /etc/postfix/main.cf.old mv /etc/postfix/main2.cf /etc/postfix/main.cf vi /etc/postfix/main.cf 增加如下内容 # hostname mynetworks = 127.0.0.1 myhostname = mail.extmail.org mydestination = $mynetworks $myhostname
# banner mail_name = Postfix - by extmail.org smtpd_banner = $myhostname ESMTP $mail_name
# response immediately smtpd_error_sleep_time = 0s
# Message and return code control message_size_limit = 5242880 mailbox_size_limit = 5242880 show_user_unknown_table_name = no
# Queue lifetime control bounce_queue_lifetime = 1d maximal_queue_lifetime = 1d
配置Courier-Authlib vi /etc/authlib/authmysqlrc 将其内容清空,然后增加如下内容: MYSQL_SERVER localhost MYSQL_USERNAME extmail MYSQL_PASSWORD extmail MYSQL_SOCKET /var/lib/mysql/mysql.sock MYSQL_PORT 3306 MYSQL_OPT 0 MYSQL_DATABASE extmail MYSQL_USER_TABLE mailbox MYSQL_CRYPT_PWFIELD password MYSQL_UID_FIELD uidnumber MYSQL_GID_FIELD gidnumber MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD homedir MYSQL_NAME_FIELD name MYSQL_MAILDIR_FIELD maildir MYSQL_QUOTA_FIELD quota MYSQL_SELECT_CLAUSE SELECT username,password,"",uidnumber,gidnumber,/ CONCAT('/home/domains/',homedir), / CONCAT('/home/domains/',maildir), / quota, / name / FROM mailbox / WHERE username = '$(local_part)@$(domain)'
vi /etc/authlib/authdaemonrc authmodulelist="authmysql" authmodulelistorig="authmysql"
启动courier-authlib service courier-authlib start
chmod 755 /var/spool/authdaemon/
配置maildrop vi /etc/postfix/master.cf maildrop unix - n n - - pipe flags=DRhu user=vuser argv=maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}
vi /etc/postfix/main.cf 添加 maildrop_destination_recipient_limit = 1
测试 maildrop -v
配置虚拟主机 vi /etc/httpd/conf/httpd.conf 在最后一行加上 NameVirtualHost *:80 Include conf/vhost_*.conf
vi /etc/httpd/conf/vhost_extmail.conf 定义虚拟主机的相关内容 # VirtualHost for ExtMail Solution <VirtualHost *:80> ServerName mail.extmail.org DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi/ /var/www/extsuite/extmail/cgi/ Alias /extmail /var/www/extsuite/extmail/html/
ScriptAlias /extman/cgi/ /var/www/extsuite/extman/cgi/ Alias /extman /var/www/extsuite/extman/html/
# Suexec config SuexecUserGroup vuser vgroup </VirtualHost>
mkdir /var/www/extsuite
chkconfig httpd on
配置cyrus-sasl vi /etc/postfix/main.cf 增加如下内容 # smtpd related config smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname,
# SMTP sender login matching config smtpd_sender_restrictions = permit_mynetworks, reject_sender_login_mismatch, reject_authenticated_sender_login_mismatch, reject_unauthenticated_sender_login_mismatch
smtpd_sender_login_maps = mysql:/etc/postfix/mysql_virtual_sender_maps.cf, mysql:/etc/postfix/mysql_virtual_alias_maps.cf # SMTP AUTH config here broken_sasl_auth_clients = yes smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous
编辑smtpd.conf文件 vi /usr/lib/sasl2/smtpd.conf pwcheck_method: authdaemond log_level: 3 mech_list: PLAIN LOGIN authdaemond_path:/var/spool/authdaemon/socket
配置Courier-imap vi /usr/lib/courier-imap/etc/imapd IMAPDSTART=NO
vi /usr/lib/courier-imap/etc/imapd-ssl IMAPDSSLSTART=NO
service courier-imap start chkconfig courier-imap on
安装配置extmail 处理extmail依赖关系 perl -MCPAN -e shell Are you ready for manual configuration? [yes] no
vi /usr/lib/perl5/5.8.8/CPAN/Config.pm 'urllist' => [], 'urllist' => [q[http://mirrors.163.com/cpan/ ]] ,
rm -rf ~/.cpan
http://www.cpan.org/ 查找镜像
如要重新配置CPAN,可先进入CPAN,然后在CPAN命令行(即CPAN>)键入以下指令:
CPAN>o conf init
安装DBD::Mysql 数据库驱动 cpan DBD::mysql 安装Unix-Syslog cpan Unix::Syslog
cd /usr/local/src tar zxvf extmail-1.2.tar.gz mv extmail-1.2 /var/www/extsuite/extmail cd /var/www/extsuite/extmail/ 创建webmail.cf文件 cp webmail.cf.default webmail.cf vi webmail.cf 主要变动的内容见下 SYS_MYSQL_USER = extmail SYS_MYSQL_PASS = extmail SYS_MYSQL_DB = extmail chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/
安装配置extman 处理extman 依赖关系 cd /usr/local/src tar jxvf gd-2.0.35.tar.bz2 cd gd-2.0.35 ./configure make make install
yum install pango-devel -y cpan GD cpan Time::HiRes cpan File::Tail 安装rrdtool tar zxvf rrdtool-1.4.4.tar.gz cd rrdtool-1.4.4 ./configure --prefix=/usr/local/rrdtool --enable-perl-site-install=/usr/lib/perl5 make make install
tar zxvf extman-1.1.tar.gz mv extman-1.1 /var/www/extsuite/extman cd /var/www/extsuite/extman cp webman.cf.default webman.cf chown -R vuser:vgroup /var/www/extsuite/extman/cgi/ mkdir /tmp/extman chown -R vuser:vgroup /tmp/extman
cd docs/ vi init.sql :%s/extmail.org/96090.com/g /usr/local/mysql/bin/mysql -u root -p < extmail.sql /usr/local/mysql/bin/mysql -u root -p < init.sql 配置postfix虚拟域 cp mysql_virtual_* /etc/postfix/ vi /etc/postfix/main.cf 增加以下内容 # extmail config here virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_transport = maildrop:
配置extman图形日志 cd /var/www/extsuite/extman/addon/ cp -r mailgraph_ext /usr/local/
配置extman图形监控 cpan Time::HiRes cpan File::Tail
/usr/local/mailgraph_ext/mailgraph-init start echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.d/rc.local
启动cmdserver(在后台显示系统信息) /var/www/extsuite/extman/daemon/cmdserver --daemon 添加开机起动 echo "/var/www/extsuite/extman/daemon/cmdserver -v -d" >> /etc/rc.d/rc.local
安装MailScanner tar zxvf MailScanner-4.83.4-1 cd MailScanner-4.83.4-1 ./install.sh
安装Clam SA tar zxvf install-Clam-SA-latest.tar.gz cd install-Clam-0.96.5-SA-3.3.1/ ./install.sh
配置MailScanner vi /etc/MailScanner/MailScanner.conf 下面的注释掉并修改成对应的情况 %org-name% = yoursite %org-long-name% = Your Organisation Name Here %web-site% = www.your-organisation.com Run As User = Run As Group = 更改为: Run As User = postfix Run As Group = postfix ----------------------------------------------------- Incoming Queue Dir = /var/spool/mqueue.in Outgoing Queue Dir = /var/spool/mqueue 更改为: Incoming Queue Dir = /var/spool/postfix/hold Outgoing Queue Dir = /var/spool/postfix/incoming
-----------------------------------------------------
MTA = sendmail 更改为: MTA = postfix ---------------------------------------------------- Virus Scanners = none 更改为: Virus Scanners = clamd --------------------------------------------------- Always Include SpamAssassin Report = no 更改为: Always Include SpamAssassin Report = yes -------------------------------------------------- Use SpamAssassin = no 更改为: Use SpamAssassin = yes ------------------------------------------------- Required SpamAssassin Score = 6 更改为: Required SpamAssassin Score = 4 -------------------------------------------------- SpamAssassin User State Dir = 更改为: SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
----------------------------------------------------------------- SpamAssassin Install Prefix = 更改为: SpamAssassin Install Prefix = /usr/bin
-------------------------------------------------------------------- SpamAssassin Local Rules Dir = 更改为: SpamAssassin Local Rules Dir = /etc/MailScanner
-------------------------------------------------------------------- Clamd Socket = /tmp/clamd.socket Incoming Work Group = clamav Incoming Work Permissions = 0640
更改incoming、quarantine两个目录相关用户和组的使用权限 chown -R postfix.postfix /var/spool/MailScanner/incoming chown -R postfix.postfix /var/spool/MailScanner/quarantine ln -s /usr/bin/freshclam /usr/local/bin/freshclam
mkdir /var/spool/MailScanner/spamassassin chown -R postfix.clamav /var/spool/MailScanner/spamassassin
整合MailScanner into Postfix vi /etc/postfix/main.cf 添加 header_checks = regexp:/etc/postfix/header_checks. vi /etc/postfix/header_checks 添加 /^Received:/ HOLD
配置SpamAssassin 增加中文规则: 用于处理中文(简体)垃圾邮件
wget -N -P /etc/mail/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
vi /etc/mail/spamassassin/local.cf rewrite_header Subject *****SPAM*****
配置clamd vi /usr/loca/etc/clamd.conf LocalSocket /tmp/clamd.socket
vi /usr/local/etc/freshclam.conf PidFile /var/run/freshclam.pid DatabaseMirror db.CN.clamav.net
/usr/local/sbin/clamd start /usr/local/bin/freshclam
chkconfig MailScanner on service MailScanner start
用mailscanner发信自动带加上这个内容: This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean 取消这种设置方法:vi /etc/MailScanner/MailScaner.conf Sign Clean Messages = yes 改成 Sign Clean Messages = no
修改提示信息文中文 拷贝cn文件夹到/etc/MailScanner/reports下 %report-dir% = /etc/MailScanner/reports/en 修改成 %report-dir% = /etc/MailScanner/reports/cn
http://linux.vbird.org/somepaper/20030905-mailscanner-conf.htm http://wiki.extmail.org/extmail_solution_for_linux_centos-5 http://www.linuxmail.info/mailscanner-postfix-clamav-spamassassin-howto-centos-5/