通常我们在做邮件伺服器主机的病毒过滤时,都需要安装 AntiVirus 防毒软体,如:McAfee、Sophos、Norton、Clamav、、、等防毒软体之後,再搭配﹝Mimedefang、Amavis、、、﹞之类的 Milter 邮件过滤软体,方可过滤有毒的信件及垃圾邮件。而最近我刚好想找个可以在 Sendmail 上使用的 Milter 邮件过滤软体来搭配安装於Sendmail+Clamav 上,结果找了大半天才发现,原来 Sendmail 自己本身就有支援 Milter 邮件过滤了,因此只要启动 Sendmail 的 Milter 邮件过滤器,再搭配 Clamav 这个免费的防毒软体就可做到病毒邮件的过滤,以下就是我的实做过程。
Environment :
硬体:i386 PC Intel P3 500
记忆体网卡:256M RAM + Intel 网卡
作业系统:FreeBSD 5.2.1 Release
Setp 1.
检查FreeBSD上的Sendmail是否有支持Milter
#sendmail -bt -d0.1 < /dev/null | grep MILTER
Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7 # 果然有支援MILTER
Setp 2.
加装Clamav 这个免费的 AntiVirus
#cd /usr/ports/security/clamav
#make -D WITH_MILTER install
安装完Clamav後设定下面两项:
#vi /usr/local/etc/clamav.conf # 只要将下面这个选项 # 号拿掉即可其他项目采预设值即可:
#StreamSaveToDisk
StreamSaveToDisk
#vi /etc/rc.conf # 加入下面几项:
clamav_clamd_enable="YES"
clamav_milter_enable="YES"
clamav_milter_flags="-loP -m20"
clamav_milter_socket="/var/run/clamav/clmilter.sock"
clamav_freshclam_enable="YES"
Setp 3.
设定Sendmail及重编sendmail
#cd /etc/mail
#vi /etc/mail/freebsd.mc # 加入下面这行
INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')
#make
#make install
#make restart
#reboot
Setp 4.
重开机後开始测试:
#vi /var/log/maillog # 查看正常起动下maillog的内容:
May 17 14:36:32 ms1 sm-mta[908]: i4HEaWwm000908: Milter add: header: X-Virus-Scanned: clamd / ClamAV version 0.70, clamav-milter version 0.70j
May 17 14:36:32 ms1 sm-mta[909]: i4HEaWwm000908: to=, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=31000, relay=loc
al, dsn=2.0.0, stat=Sent
May 17 14:42:16 ms1 sm-mta[394]: starting daemon (8.12.10): SMTP+queueing@00:30:00
May 17 14:42:17 ms1 sm-msp-queue[397]: starting daemon (8.12.10): queueing@00:30:00
测试病毒邮件:
#cd /usr/ports/security/clamav/work/clamav-0.70/test
#mail jim@ms1.ntut.idv.tw < test1
#cd /var/mail
#ls -l # 检查 Mail Box 病毒邮件不会寄给jim这个User
-rw------- 1 jim wheel 0 May 17 14:36 jim
#vi /var/log/maillog # 检查 maillog 会又抓到病毒的 log
参考文件:
http://students.ukdw.ac.id/~haryo/clamav.html
http://networking.ringofsaturn.com/Unix/clamav-milter.php
http://www.technoids.org/clamav-milter.html
http://networking.ringofsaturn.com/Unix/spamassassin.php
http://www.bilbos-stekkie.com/clamav/index.php?action=1
To Add.
在查看 /var/log/maillog 之後,我发现侦测到的VirusMail病毒邮件,Server不知道要放在那边所以都直接丢弃,为了帮助我们取得更多的病毒资讯,我还是开一了个容纳病毒邮件的目录,专门用来收集病毒mail。
#mkdir -p /var/mail/quarantine
#chown clamav:clamav /var/mail/quarantine
#chmod 700 /var/mail/quarantine
#vi /etc/rc.conf # 更改clamav_milter_flags改为下面:
clamav_milter_flags="--postmaster-only --local --outgoing --max-children=50 --quarantine-dir=/var/mail/quarantine"
更多内容请看PCdog.com--DNS&Mail服务器 sendmail邮件服务器 垃圾邮件专题
