Sendmail 郵件伺服器的防毒方式

12/3/2006来源:Qmail人气:7120

Description :

通常我們在做郵件伺服器主機的病毒過濾時,都需要安裝 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): [email protected]:30:00
May 17 14:42:17 ms1 sm-msp-queue[397]: starting daemon (8.12.10): [email protected]:30:00

測試病毒郵件:
#cd /usr/ports/security/clamav/work/clamav-0.70/test
#mail [email protected] < 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"