近期郵件病毒泛濫,正好從網上看到幾篇關於qmail防毒的文章,於是邊做邊比較了一下網上的幾種方法,並且做出了最後的選擇。 首先請允許我把網上能見到的幾篇防毒的文章的鏈接貼出來: 1.Linuxforum文章荟萃中 linux(redhat7.1)+MTA(qmail)掃瞄郵件病毒和拒收
近期郵件病毒泛濫,正好從網上看到幾篇關於qmail防毒的文章,於是邊做邊比較了一下網上的幾種方法,並且做出了最後的選擇。
首先請允許我把網上能見到的幾篇防毒的文章的鏈接貼出來:
1.Linuxforum文章荟萃中
linux(redhat7.1)+MTA(qmail)掃瞄郵件病毒和拒收帶病毒郵件軟件安裝配置一文!
http://www.linuxforum.net/docnew/showflat.php?Board=new&Number=410
2.Linuxforum郵件服務器版中的精華文章第一篇:
** AMaViS ** 一個 UNIX 下查病毒的郵件網關。
http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=dns&Number=166952&page=1&view=collapsed&sb=5&o=all&fpart=
3.水木清華FreeBSD版的一篇文章
Freebsd下安裝Drweb for qmail
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=dns&Number=303664&page=0&view=collapsed&sb=5&o=21&fpart=
4.Linuxforum郵件服務器版精化文章第二篇
Procmail 過濾mail病毒
http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=dns&Number=188250&page=0&view=collapsed&sb=5&o=all&fpart=
而在國外關於郵件服務器防病毒的文章倒處都是,我就不引了,只所以鏈接這幾篇文章是想讓喜歡技術(不僅僅是達到目的)的網友方便學習和研究!
我先大體地介紹一下,以上幾篇文章中使用的技術:
第一篇:
說它之前先再引一個鏈接:
http://www.linuxforum.net/forum/showthreaded.php?Cat=&Board=dns&Number=285647&page=&view=&sb=&o=&vc=1
這也是Linuxforum上的一個 thread,希望大家仔細看一下,看完後就應該可以明白TREND公司的
ANTI-VIRUS的工作方式了!我介紹的第一篇文章中的方法和TREND公司的ANTI-VIRUS的工作方式是一樣的,即:都是使用防病毒SMTP網關代替原來的SMTP服務,然後把正常的信件轉發到原來的SMTP上。這樣就必然帶來一個問題就是原來的ESMTP的功能沒有了:如SMTP_AUTH等。解決方法可以使用上面這個討論中的方法,即:在防病毒網關前再加一道關,當然,這一關支持SMTP_AUTH,轉發到防病毒網關上,然後查殺完毒後再轉到最終的SMTP上。:)太麻煩了點,可是也沒辦法,當然若你根本就沒有SMTP的AUTH就不會這麼麻煩了,只要病毒網關轉到真正的SMTP上就可以了。
這篇文章中使用的是H+BEDV公司的Mail Gate,跟Trend公司的ANTI-VIRUS一樣都是商業軟件。
此文中提供了一個hbedv.key文件,經
測試,可以把該公司的任何產品注冊成為正式版,過期時間為2003年5月31日,還有近一年,不錯,呵呵。
第二篇:
這篇文章中使用的軟件是:AMaViS+McAfee,AMaVis是一個opensource的軟件,McAfee是一個商業殺毒軟件,雖然是試用版,但是文章作者說這個McAfee的殺毒軟件用了很久都沒有任何問題,一直可以更新病毒庫。
AMaVis是一個可以適用於各種主流MTA的病毒網關(這樣叫或許不太合適,暫切這樣叫吧),可用於sendmail,qmail,postfix,exim等,詳細可以查看它的文檔。對於qmail來說,AmaVis是直接替換qmail-queue,經過我的測試,感覺AmaVis的效率有些低。
需要介紹一下的是另一個opensource軟件:qmail-scanner。qmail-scanner是專門為qmail寫的,AmaVis則可用於各種MTA,對qmail來說,兩者都是在qmail-queue上做動作。不同點是qmail-scanner不替換qmail-queue,而是使用一個QMAILQUEUE的被丁來實現可選擇地替換qmail-queue,我認為qmail-queue要勝於AmaVis。
第三篇:
drweb這個東東不大常見,是一家俄國公司的產品,氣人的是它沒有英文版網站,在網站上找產品列表費了我好大勁。這裡免費提示給大家:http://www.drweb.ru/linux-bsd/ 。它的軟件全部采用服務器-客戶端的的方式運行,服務器是一個後台運行的病毒掃描程序,應該比命令行方式的病毒掃描工具效率高,客戶端是則是針對某個一種服務器的另一個軟件包當有數據包通過時,直接向它的Server提交掃描,支持Sendmail,Exim,QMail,Postfix,Communigate Pro,Samba,ZMailer這幾種服務器,分別有FreeBSD、Linux、Solaris版的,對qmail來說也是替換qmail-queue。
後來又看了一下qmail-scanner的說明文檔說,其支持幾個第三方軟件如Sophie,Trophie,來實現DAEMON型的病毒掃描工具,或許可以跟drweb的有得一拼了。
第四篇:
文中使用的procmail,過濾幾個字符串,這種並非真正的病毒防火牆,本文不作討論。
綜上所述,我進行了以下設計:
因為我們的SMTP不是用IP進行限制relay的,故原系統的SMTP_AUTH不能少,同時又不想做郵件轉發,代替SMTP服務的方式我們捨棄,因此我們只能在qmail-queue上做手腳。
以下是我們的選擇:
用qmail-scanner或AmaVis替換qmail-queue。
qmail-scanner和AmaVis皆需要第三方的殺毒軟件
qmail-scanner可以使用以下軟件:
1 Trend's Virus scanner
2 Sophos's "sweep" virus scanner
3 H+BEDV's antivir scanner
4 Kaspersky's AVPLinux scanner
5 MacAfee's (NAI's) virus scanner
6 Command's virus scanner
7 F-Secure Anti-Virus scanner
8 F-Prot Anti-Virus scanner
9 InocuLAN Anti-Virus scanner
10 RAV Antivirus
11 Sophie: Daemon front-end to Sophos Sweep (see FAQ for details)
12 Trophie: Daemon front-end to Trend iscan (see FAQ for details)
13 Spam Assassin Daemon (see FAQ for details)
AmaVis可以使用的殺毒軟件如下:
1 Network Associates Virus Scan
2 DrSolomon (obsolete)
3 H+BEDV AntiVir/X
4 Sophos Sweep
5 Kaspersky Lab AntiViral Toolkit Pro (AVP)
6 CyberSoft VFind
7 Trend Micro FileScanner
8 CAI InoculateIT
9 F-Secure Inc. (former DataFellows) F-Secure AV
我的測試結果是qmail-scanner的效率更高一些(都使用H+BEDV的殺毒工具),同時qmail-scanner支持的第11、12三個軟件可以以Daemon的形式運行那兩種殺毒軟件,效率就更高了,不過qmail-scanner需要給原來的qmail打一個補丁,稍微麻煩一點,但相對於它提供的功能,這點工作算什麼呢?:)
因此,我的最終選擇是:
qmail-scanner+H+BEDV Server edtion
只所以選擇H+BEDV公司的產品,是因為,呵呵,有上面那個兄對的那個key可以注冊成為正式版本(:。
安裝步驟:
首先,要保證qmail本身正常運行,同時我們要給qmail-queue打一個補丁,所以需要qmail的源代碼。
我在REDHAT7.3完全安裝的機器上測試通過,安裝qmail-scanner的時候有可能會缺少Perl的模塊,查看README。
如果缺少的話,可以用如下命令通過網絡安裝模塊:
#perl -MCPAN -e shell
>install Time::HiRes
或者是直接到這個地方去
下載全部的modules,這個版本是for perl5.6.1的
http://www.perl.com/CPAN/src/stable.tar.gz
然後按說明文件安裝:
#tar zxvf stable.tar.gz
#cd perl-5.6.1
#rm -f config.sh Policy.sh
#sh Configure
#make
#make test
#make install
一切OK
所需要的軟件(包)及獲得地址:
qmail-1.03.tar.gz
http://www.qmail.org/qmailqueue-patch
是使qmail支持QMAILQUEUE參數的一個補丁
http://prdownloads.sourceforge.net/qmail-scanner/qmail-scanner-1.12.tgz
這是qmail-scanner
courier-imap-deliverquota-1.4.2-3.i686.rpm
courier-imap-maildirmake-1.4.2-3.i686.rpm
courier-imap-userdb-1.4.2-3.i686.rpm
libs
tdc++2-2.10.0-2.i686.rpm
maildrop-devel-1.4.0-1.i386.rpm
maildrop-1.4.0-1.i386.rpm
qmail-scanner需要安裝maildrop,而maildrop的rpm包需要以上其它的幾個包,都可以在rpmfind.net找到。
http://www.hbedv.com/files/antivir/release/avlxsrv.tgz
ftp://mail.redhut.net/linux/hbedv.key
這是H+BEDV公司的殺毒產品
#cd qmail-1.03
#patch -p1 < ../qmailqueue.patch
......
有別的patch再打別的patch,但qmailqueue.patch一定要打
#make setup check
安裝設置,保證沒做以下的步驟時可以正常收發,若不能請查看其它安裝文檔,等可以正常收發郵件了再來做下面的步驟。
#tar zxvf avlxsrv.tgz '解壓殺毒軟件包
#cd antivir-2.0.3-server
#install '安裝,把key文件拷到安裝目錄
#antivir --updater '更新病毒庫
#antivir --version '看到了吧,最新版本
#rpm -ivh courier-imap-deliverquota-1.4.2-3.i686.rpm courier-imap-maildirmake-1.4.2-3.i686.rpm courier-imap-userdb-1.4.2-3.i686.rpm libstdc++2-2.10.0-2.i686.rpm maildrop-devel-1.4.0-1.i386.rpm maildrop-1.4.0-1.i386.rpm
安裝qmail-scanner所需的maildrop
#tar zxvf qmail-scanner-1.12.tgz
#cd qmail-scanner-1.12
#./configure --admin admin --domain domain.net --scanners antivir --notify sender --lang en_GB --archive yes --unzip yes
#./configure --admin admin --domain domain.net --scanners antivir --notify sender --lang en_GB --archive yes --unzip yes --install
#/var/qmail/bin/qmail-scanner-queue.pl -r
#/var/qmail/bin/qmail-scanner-queue.pl -g
好了qmail-scanner已經安裝完成了
然後修改qmail-smtp服務的啟動環境變量,加入QMAILQUEUE變量,查看qmail-scanner的README.html查看幫助,我使用的是daemontools控制qmail的服務,所以
#vi /var/qmail/supervise/qmail-smtpd/run
在#!/bin/sh的下一行加入以下兩行:
QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl
export QMAILQUEUE
#svc -d /var/qmail/supervise/qmail-smtpd
#svc -u /var/qmail/supervise/qmail-smtpd
重啟SMTP服務,用這台服務器的一帳號發送一封尼姆達,再收信,OK,收到病毒報告信了嗎?
祝你好運!
下面再簡單地介紹一下AmaVis:
AmaVis也是一個開放源代碼的軟件,跟qmail-scanner差不多,不過需要perl的module更多,./configure的安裝選項有差別,看一下幫助就知道了,很簡單的,使用上則必須替qmail-queue文件,檢查病毒後會立即返回錯誤信息,並使發送不成功,而不是返回一封警告信件。