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/