我的邮件系统安装过程(linux AS4+qmail+vpopmail..
时间:2006-05-21 来源:feixueliantian
第八节:安装courier-imap
Courier-IMAP支持IMAP/SIMAP访问
参考:http://www.inter7.com/courierimap
courier-imap 从 4版本开始,把 courier-authlib 独立出来了,需要先安装 courier-authlib. 具体步骤:
cd /home/pkg
tar -xjvf courier-authlib-0.55.tar.bz2
cd courier-authlib-0.55
./configure --prefix=/usr/local --exec-prefix=/usr/local --with-authvchkpw --without-authldap --without-authmysql --disable-root-check --with-ssl --with-authchange pwdir=/usr/local/libexec/authlib --with-redhat
make
make install
make install-configure
#修改设置文件:/usr/local/etc/authlib/authdaemonrc,去掉不需要的认证模式,只留vchkpw方式,然后认证进程改成2个
#完成后启动它:
/usr/local/sbin/authdaemond start
#需要把这个脚本放到/etc/init.d, 然后在/etc/rc3.d 或/etc/rc5.d做一个符号连接,以便系统启动时自动运行。
cp /usr/local/sbin/authdaemond /etc/init.d/
ln -s /etc/init.d/authdaemond /etc/rc3.d/authdaemond
ln -s /etc/init.d/authdaemond /etc/rc5.d/authdaemond
ln -s /etc/init.d/authdaemond /etc/rc6.d/authdaemond
#启动后,在内存中可以看到2个authlib进程:
ps -aef |grep authlib
root 20108 20107 0 Jan28 ? 00:00:00 /usr/local/libexec/courier-authlib/authdaemond
root 20109 20108 0 Jan28 ? 00:00:00 /usr/local/libexec/courier-authlib/authdaemond
#这里可以想办法把运行身份改成vpopmail,毕竟用root运行,如果出现问题影响范围会大很多。
#测试是否正常:
运行/usr/local/sbin/authtest:(红字为输入内容,后面的1121221应该是pop3密码,后面部分应该是命令结果)
authtest [email protected] 1121221
Authenticated: [email protected] (uid 509, gid 509)
Home Directory: /var/vpopmail/domains/domain.com/xukixu
Maildir: (none)
Quota: (none)
Encrypted Password: $1$LJjMeeeeqqeqF9VWUywtLV/O5ciqeg.
Cleartext Password: xukixu
Options: disablewebmail=0,disablepop3=0,disableimap=0
#出现上面的提示就是说authlib运行正常
#下面来安装courier-imap
cd /home/pkg
tar -xjf courier-imap-4.0.2.tar.bz2
cd courier-imap-4.0.2
# 作为vpopmail用户进行安装
chown -R vpopmail:vchkpw ../courier-imap-4.0.2
su vpopmail
./configure --with-redhat
# 注:Redhat用户需要使用"--with-redhat"选项
make
exit
make install-strip
make install-configure
cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
chmod 755 /etc/rc.d/init.d/courier-imap
chkconfig --add courier-imap
#配置:
# 修改文件/usr/lib/courier-imap/etc/authdaemonrc,如果没有,则链接/usr/local/etc/authlib/authdaemonrc
ln –s /usr/local/etc/authlib/authdaemonrc /usr/lib/courier-imap/etc/authdaemonrc
authmodulelist="authvchkpw"
# 修改文件/usr/lib/courier-imap/etc/imapd
IMAPDSTART=YES
# 修改文件/usr/lib/courier-imap/etc/imapd-ssl
IMAPDSSLSTART=YES
# 修改文件/usr/lib/courier-imap/etc/imapd.cnf
CN=domain.com
# 修改文件/usr/lib/courier-imap/etc/pop3d.cnf
CN=domain.com
#启动:
/etc/rc.d/init.d/courier-imap start
#使用outlook测试一下IMAP是否正常
第十六节:安装SpamAssassin
SpamAssassin 是一种安装在邮件伺服主机上的邮件过滤器,用来辨识垃圾信。
它是使用大量的预设规则检查垃圾信,这些规则会检查寄到您的网域内所有邮件的标头,内文,以及送信者。他採取的过滤方式是採用记分制,也就是说会根据我们所设定的标準来给予分数超过标準值的时候即判定为 SPAM。
Spam是一个让人讨厌的字眼. 大部分的人都不喜欢它. 如果你想保护自己免受spam, 你就需要安装SpamAssassin.
因我在安装系统的时候已经选择好了SpamAssassin。现在我们将其升级到最新版:
cd /home/pkg
rpm -Uvh spamassassin-3.0.2-2.1.el3.rf.i386.rpm
还需要安装另外一个软件包:
rpm -Uvh perl-Razor-Agent-2.40-2.i386.rpm
#修改起动脚本使spamassassin支持vpopmail
#修改如下一行:
vi /etc/init.d/spamassassin
SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v"
vi /etc/sysconfig/spamassassin
SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v"
下图是我在安装SpamAssassin时所列出的perl模块,SpamAssassin所要用到的一些Perl模块是:
perl-Time-HiRes
perl-Digest-SHA1
perl-HTML-Parser
perl-DB_File
perl-HTML-Tagset
perl-Razor-Agent
perl-DBI
perl-Net-DNS
perl-URI
这些模块请安装上。
#spamassassin的过滤模板在/etc/mail/spamassassin/local.cf,修改为:
vi /etc/mail/spamassassin/local.cf
required_score 5.0
rewrite_header Subject ********SPAM********
report_safe 1
use_bayes 1
skip_rbl_checks 0
ok_languages zh en
ok_locales en ko
score HEAD_ILLEGAL_CHARS 0
score SUBJ_ILLEGAL_CHARS 0
score DATE_IN_PAST_03_06 0
score UPPERCASE_25_50 0
score UPPERCASE_50_75 0
score UPPERCASE_75_100 0
score X_MSMAIL_PRIORITY_HIGH 0
score X_PRIORITY_HIGH 0
score TO_TXT 100
score RATWARE_HASH_2 100
score RATWARE_HASH_2_V2 100
score BAYES_99 0.1
score BAYES_80 0.1
score BAYES_60 0.1
score FROM_ILLEGAL_CHARS 0.1
score MIME_BASE64_TEXT 0.1
score NO_RDNS_DOTCOM_HELO 0.1
score CHINA_HEADER 0.1
score NO_REAL_NAME 0.2
score HTML_MESSAGE 0.2
score MIME_HTML_ONLY 0.2
score MIME_HTML_ONLY_MULTI 0.2
score FORGED_MUA_OUTLOOK 0.2
score FORGED_HOTMAIL_RCVD 0.2
score FORGED_OUTLOOK_TAGS 0.2
score MAILTO_TO_SPAM_ADDR 0.2
#黑白名单
whitelist_from *@domain.com
# ---------------------------------------------------------------------------
# 使用中国反垃圾邮件联盟的CBL/CDL
# URL: http://www.anti-spam.org.cn/
header RCVD_IN_CBL eval:check_rbl('cbl', 'cbl.anti-spam.org.cn.')
describe RCVD_IN_CBL Received via a relay in cbl.anti-spam.org.cn
tflags RCVD_IN_CBL net
header RCVD_IN_CDL eval:check_rbl('cdl-notfirsthop', 'cdl.anti-spam.org.cn.')
describe RCVD_IN_CDL CDL: dialup sender did non-local SMTP
tflags RCVD_IN_CDL net
#SCORE
score RCVD_IN_CBL 4.0
score RCVD_IN_CDL 3.0
#运行ntsysv,将spamassassin设定的为开机运行
#使用CCERT 中文垃圾邮件过滤规则集Chinese_rules.cf
wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
#启动SpamAssassin
service spamassassin start
如果启动不起来就创建spamd用户:
#useradd spamd;
#定期自动更新中文反垃圾邮件规则
crontab –e
#加入
0 0 1 * * wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf;/etc/init.d/spamassassin restart;/etc/init.d/spamassassin restart;
#建立SpamAssassin的学习系统
sa-learn --sync -D -p user_prefs
#查看自学习的数据信息
sa-learn --dump all
#查看调试信息
spamassassin --lint –D
第十七节:安装Clamav
一个扫描邮件队列的插件,其调用Clamav和SpamAssassin进行清除邮件病毒和垃圾邮件的动作
#添加所需的组和用户
groupadd clamav
useradd -g clamav -s /bin/false clamav
#安装软件
cd /home/pkg
tar -xzvf clamav-0.83.tar.gz
cd clamav-0.83
./configure --disable-zlib-vcheck
make check
make install
#测试Clamav
clamscan --recursive --log=/tmp/clamscan.log ./ //扫描当前目录,测试clamscn是否运行
cat /tmp/clamscan.log
#更改/usr/local/etc/freshclam.conf文件,去掉下面选项前面的#:
vi /usr/local/etc/freshclam.conf
#Example \\前面加上#
UpdateLogFile /var/log/freshclam.log \\去掉前面的#
LogSyslog \\去掉前面的#
PidFile /var/run/freshclam.pid \\去掉前面的#
更改/usr/local/etc/clamd.conf文件,去掉下面选项前面的#:
vi /usr/local/etc/clamd.conf
#Example \\前面加上#
LogFile /var/log/clamav/clamd.log \\去掉前面的#
LogFileMaxSize 2M \\去掉前面的#
LogTime \\去掉前面的#
PidFile /var/run/clamd.pid \\去掉前面的#
LogSyslog \\去掉前面的#
ScanMail \\去掉前面的#
touch /var/log/freshclam.log
chmod 644 /var/log/freshclam.log
chown clamav:clamav /var/log/freshclam.log
mkdir /var/lib/clamav
chown clamav:clamav /var/lib/clamav
#升级clamscan病毒库
freshclam --verbose
#把freshclam加入crontab 定时更新病毒库,自动扫描/home目录
crontab -e
0 1 * * * freshclam --quiet -l /var/log/freshclam.log
0 6 * * * /usr/local/bin/clamscan --recursive --infected --exclude /usr/local/share/clamav/viruses.db --exclude /usr/local/share/clamav/viruses.db2 --log=/var/log/clamscan.log /home
#创建freshclam日志记录文件
mkdir -p /var/log/clamav
touch /var/log/clamav/clamd.log
chown clamav.clamav -R /var/log/clamav/
chmod 644 -R /var/log/clamav/
#创建clamav启动脚本
vi /etc/rc.d/init.d/clamav
#!/bin/sh
#
# Startup / shutdown script for Clam Antivirus
case "$1" in
start)
/usr/local/sbin/clamd && echo -n 'Clamd started'
/usr/local/bin/freshclam -d -c 2 -l /var/log/freshclam.log
echo -n ' freshclam started'
;;
stop)
/usr/bin/killall clamd > /dev/null 2>&1 && echo -n 'Clamd stoped'
/usr/bin/killall freshclam > /dev/null 2>&1 && echo -n ' freshclam Stoped'
;;
*)
echo ""
echo "Usage: `basename $0` { start | stop }"
echo ""
exit 64
;;
esac
#使其能够执行
chmod 755 /etc/init.d/clamav
#随开机起动
ln -s /etc/init.d/clamav /etc/rc.d/rc3.d/S88clamav
ln -s /etc/init.d/clamav /etc/rc.d/rc5.d/S88clamav
第十八节:安装MailDrop 和TNEF reader
TNEF是一个从"application/ms-tnef". 类型中找出MIME附件的程序.这仅仅是微软系统中的一种附件.TNEF程序允许将封装成TNEF的附件提取出来. 安装TNEF并不是必须的, 但我强烈推荐安装它!
# 安装 maildrop
cd /home/pkg
tar -xjvf maildrop-1.8.0.tar.bz2
cd maildrop-1.8.0
./configure
make
make install-strip
make install-man
# 安装 the tnef
cd /home/pkg
tar -xzvf tnef-1.2.3.1.tar.gz
cd tnef-1.2.3.1
./configure
make
make install
#使用Maildrop调用SpamAssassin
#在/home/vpopmail/domains/localhost.com(你创建的域)/ 建立mailfilter文件
touch mailfilter
chown vpopmail:vchkpw mailfilter
chmod 700 mailfilter
vi mailfilter
#mailfilter内容如下:
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
VSPAM=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
`test -d $VHOME/Maildir/`
if( $RETURNCODE != 0 )
{
echo "Sorry , but the user $EXT@$HOST dos not exist"
EXITCODE=77
exit
}
if ( $SIZE < 262144 )
{
exception {
xfilter "/usr/bin/spamc -f -u $EXT@$HOST"
}
}
if (/^X-Spam-Flag: YES/)
{
to "$VSPAM/Maildir/.Trash/."
EXITCODE=0
}
else
{
to "$VHOME/Maildir/."
}
#修改.qmail-default内容如下:
vi .qmail-default
| preline /usr/local/bin/maildrop mailfilter