很少的病毒能夠在linux的運行和繁衍。而且,由於目前客戶端計算機都使用的是Windows,所以病毒制造者們更願意去寫Windows下的病毒。但是還有很多的原因能致使您使用一些病毒掃描程序的,比如:
"掃描在您計算機上的Windows設備
"掃描在本地網絡中的Windows計算機
"掃描您即將要傳送給別人的文件
"掃描您將要發送給別人的電子郵件
Clamav是一個UNIX下開源(GPL)殺毒軟件包,這個軟件最主要目的是集成在郵件服務器裡,查殺郵件附件中的病毒。軟件中包含主要一個靈活可升級的多線程後台程序,一個命令行掃描程序,一個自動升級程序,軟件運行基於隨Clam Anti使用編輯器修改rus軟件包同時發布的共享庫文件。你也可以在你的軟件中使用這些共享庫文件,最重要的是,病毒庫升級的很快很及時。 主要特征:
命令行掃描程序
高效,多線程後台運行
支持sendmail的milter接口
支持數字簽名的病毒庫升級程序
支持病毒掃描C語言庫
支持按訪問掃描(Linux FreeBSD Solaris)
病毒庫每天多次升級(可以查殺的總病毒數量見主頁)
內置支持RAR(2.0),Zip,Gzip,Bzip2,Tar,MS OLE2,MS Cabinet files,MS CHM(壓縮的HTML),MS SZDD壓縮格式
內置支持mbox,Maildir和原始郵件文件格式
內置支持UPX,FSG,和Petite壓縮的PE可執行文件
一、Clamav 基本安裝
1 首先檢查Zlib庫
Clamav需要zlib庫 1.22 以上,zlib是個支持gzip文件格式的函數庫,它使得gz文件的存取就猶如開檔關檔一樣地容易,您可以很容易地為您的程序加入gz檔的支持。使用#rpm -qa|grep zlib 命令查看。
2 建立用戶和用戶組的命令:
# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav
3 下載安裝軟件
#wget http://www.hacker-soft.net/tools/Assessment/clamav-0.91.2.tar.gz # tar -zxvf clamav-0.91.2.tar.gz # cd clamav-0.91.2 # ./configure --sysconfdir=/etc # make # su -c "make install"
完成安裝。Clamav配置文件如表-1 。
4 修改配置文件
使用編輯器修改 /etc/clamd.conf
在 Example 前面加 #
使用編輯器修改 /etc/freshclam.conf
在 Example 前面加 #
把 Checks 從 "24" 改為 "4"
這樣是每4小時更新一次病毒碼。
在 DatabaseMirror database.clamav.net 行下面在加入幾個地址,更多鏡像地址請參考文檔 clamav.pdf
DatabaseMirror clamav.inet6.fr DatabaseMirror clamav.netopia.pt DatabaseMirror clamav.sonic.net
5 設置clamav隨服務器開機自動啟動
使用編輯器修改 /etc/rc.d/rc.local
加入下面二行:
/usr/local/bin/freshclam
/usr/local/bin/clamd
6 測試
clamdscan -文件及目錄的掃毒
# clamdscan -v /usr/share/doc/clamav*
# clamdscan -v /home/<user>
說明:ClamAV只會去掃描對於ClamAV可以讀取的文件。如果您想掃描所有文件,在命令前加上 sudo參數。
其他具體參數詳解:
-n 在掃描郵件時不加入 clamav的版本號
-N 當用戶發送帶病毒的郵件時不警告他,而是立刻丟棄。但收件人會得到提示。
-q 安靜方式, 不發出任何信息 (包括在日志中也不做過多提示,遇到病毒時也只有 Milter : discard 一句話)
-o 對從系統向外發的郵件做過濾
-l 對發到系統的郵件做過濾
這裡是一些clamav些例子
"掃描所有用戶的主目錄就使用 clamscan -r /home
"掃描您計算機上的所有文件並且顯示所有的文件的掃描結果,就使用 clamscan -r /
"掃描您計算機上的所有文件並且顯示有問題的文件的掃描結果, 就使用 clamscan -r -bell -i /
使用clamav刪除病毒文件
在掃描的時候,您可以添加'--remove'參數,圖 1是工作界面。
圖 1使用clamav刪除病毒文件
7升級clamav的病毒庫
自動定時更新病毒碼,防毒程序最重要的工作之一就是更新病毒碼,否則防毒軟件功能無法防止最新的病毒。根據一般的建議企業最好每四個小時至六個小時更新一次,
以一般命令啟動 freshclam -l /var/log/clamav/freshclam.log
以守護進程的方式(以下設定每天更新6次)
freshclam -d -c 6 -l /var/log/clamav.freshclam.log 6
8 定時運行clamav
at 命令可計劃在特定的時間執行某項任務,且僅執行一次。可采用兩種方法使用 at 命令。第一個是直接鍵入 at 和希望命令運行的時間(可以選擇指定日期)。例如:
$ at 17:20
echo It's 17:20!
job 1 at Tue Apr 11 17:20:00 2006
輸入了 at 命令後,它將等待您輸入要在指定時間運行的命令。可以輸入任意多的命令,這些命令將作為 Shellscript 執行。要終止輸入,請使用 end-of-file 命令(通常為 Control-D)。 您所鍵入的命令將在調用 at 命令的環境副本中執行。這意味著,將記錄您的活動 PATH、庫和其他環境設置,並用於執行您生成的腳本。通常會在命令完成時將結果通過電子郵件發送給您。指定時間時,可以使用標准時間格式(如前面的示例中所示),也可以使用其他各種縮寫技術。如果指定了時間,則將使用該時間的下一個匹配項。例如,如果當前時間是 17:00,而您指定的時間是 17:20,命令將在 20 分鐘後執行。如果指定 09:00,則命令將在第二天的上午 9 點執行。
通常可以使用以下特殊的替換項:
midnight--12:00 a.m./00:00
noon--12:00 p.m.
now--立即執行
還可以使用 today 和 tomorrow。一些環境(BSD 和 Linux)還可能支持通過加上表示分、時、天、周、月和年的數值來增加指定值的時間的選項。例如,可以使用以下命令來指定某個作業在一周後的當前時間運行:
$ at now + 1 week
如果您希望重新計劃作業在上次執行之後的一段時間執行,則可以使用這種指定方式。例如,您可能在運行一個運行時間長達數小時的報告,但又希望在一周後再次運行次報告。
本文使用後者運行'at'命令來使clamscan和freshclam定時運行,比如
at 6:30 tomorrow at>clamscan -i /home/user > mail [email protected] at> <CTRL-D> job 3 at 2008-04-28 03:30
二 、郵件服務器防毒設置
這裡以postfix郵件服務器為例。安裝 Postfix, 並將 Postfix 設定成 郵件服務器網關。
yum install postfix service sendmail stop chkconfig sendmail off
使用編輯器修改
/etc/postfix/main.cf myhostname = mail.domain.com mydomain = domain.com myorigin = $mydomain inet_interfaces = all mydestination = $mydomain, localhost.$mydomain, localhost local_recipient_maps = (空白) networks_style = host relay_domains = domain.com transport_maps = hash:/etc/postfix/transport append_at_myorigin = no
使用編輯器修改
/etc/postfix/transport domain.com smtp:[192.168.1.1] postmap /etc/postfix/transport service postfix start
使用編輯器修改 /etc/ld.so.conf,加入幾行
/usr/local/lib
ldconfig
MailScanner簡介和工作流程
MailScanner這是掃描程序可以和你的郵件服務器溝通,能對郵件的內容,如主旨,寄件者,附件,本文做處理,有兩個選擇MailScanner,AMaVis,但是MailScanner有webmin的模塊,及mrtg的統計圖表,因此可以簡化管理而安裝也比軟容易,但其實兩個程序都是以perl為程序主題語言,因此有一些模塊需要安裝, MailScanner已經在套件中內含了perl模塊。
MailScanner工作流程如下:
在執行MailScanner之後, MailScanner重復執行的工作如下:
1.收集由Incoming queue來的郵件
2.檢查郵件是否可以spam,並且如果需要標記它
3.選擇性的移除簡單的純文字的郵件到 outgoing queue並觸發使其被傳送
4.解壓縮出含有MIME結構的所有的郵件及附件
5.掃描病毒
6.掃描文件名合乎使用者設定的規則
7.掃描所有攻擊性的e-mail client 程序,如Outlook 或 Eudora
8.移除被感染或危檢的附件到一個隔離區(quarantine area),如果你有設定
9.取代感染或危險的附件使用你指定的文字內容來解釋,准備送給使用者
10.加入一個短的訊息在原始文件的前面
11.移動安全及不受感染的郵件到outgoing queue
12.重建修改的郵件到outgoing queue
13.刪除在incoming queue中的郵件
14.觸發傳送outgoing queue中的郵件
15.通知本地的postmaster, 和郵件傳送者,一個感染或是危險的郵件發現
16.如果可能,不受感染的原始附件送它們到原始收件人,並使用一個通知說明發生了什麼事 圖 2 MailScanner是工作流程圖。
圖 2 MailScanner是工作流程圖。
下載安裝MailScanner
#wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.70.7-1.rpm.tar.gz tar zxf MailScanner-4.70.7-1.rpm.tar.gz cd MailScanner-4.70.7-1 ./install.sh
MailScanner 配置文件如表-2 。
使用編輯器修改
/etc/MailScanner/MailScanner.conf Run As User = postfix Run As Group = postfix Incoming Queue Dir = /var/spool/postfix/hold Outgoing Queue Dir = /var/spool/postfix/incoming MTA = postfix Virus Scanning = yes Virus Scanners = clamav Use SpamAssassin = yes SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin Sign Clean Message = no (不在信尾加注 "This message has been scanned...") mkdir /var/spool/MailScanner/spamassassin chown postfix:postfix /var/spool/MailScanner/*
使用編輯器修改 /etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
使用編輯器修改
/etc/postfix/header_checks /^Received:/ HOLD service postfix stop service MailScanner start
設置webmail 的防毒功能,這裡采用OpenWebmail來作為外掛的WEBMAIL郵件服務器,它與postfix和Sendmail無縫連接,支持中文語言包,具有自動回信、自動刪除垃圾郵件等功能。
#編輯 openwebmail.conf 修改為:
enable_viruscheck yes viruscheck_pipe /usr/local/bin/clamdscan --mbox --disable-summary --stdout - viruscheck_source_allowed all
三、設置Web服務器防毒設置
mod_clamav 是一個Apache服務器的一個防毒插件,它可以調用clavam的病毒庫。
mod_clamav下載安裝方法:
#wget http://software.othello.ch/mod_clamav/mod_clamav-0.22.tar.gz #gunzip mod_clamav-0.22.tar.gz;tar mod_clamav-0.22.tar ;cd mod_clamav-0.22 # ./configure --with-apache=/usr/local/apache2 # make # make install
四、設置FTP服務器防毒設置
mod_clamav同樣支持ProFTPD 服務器,安裝配置如下:
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.1.tar.gz tar xzvf proftpd-1.3.1.tar.gz cp mod_clamav-0.7/mod_clamav.* proftpd-1.3.1/contrib
打一個補丁:
# cd proftpd-1.3.1
#patch -p1 < ../mod_clamav-0.7/proftpd.patch
編譯文件
#./configure --with-modules=mod_clamav #make #make install
使用編輯器修改proftpd 配置文件:
/usr/local/etc/proftpd.conf PassivePorts 60000 65000 IdentLookups off UseReverseDNS off AllowStoreRestart on AuthPAM off RequireValidShell off DefaultRoot ~/ftp User nobody Group nobody #啟用防毒功能 <IfModule mod_clamav.c> ClamAV on ClamLocalSocket /tmp/clamd.socket </IfModule> #啟動 clamd, clamd 的執行身份必須是 root權限 (mod_clamav 0.7 需要 clamd) clamd #啟動 proftpd服務器 proftpd
五、配置Samab文件 服務器防毒功能
安裝samba-3.0.21c.tar.gz
#wget samba-3.0.21c.tar.gz
# cd .. /usr/src/
#tar zxvf samba-3.0.21c.tar.gz
#tar jxvf samba3-vscan-0.4.0-snapshot1.tar
# mv samba3-vscan-0.4.0-snapshot /usr/src/samba-3.0.21rc2/examples/VFS
# cd samba-3.0.21c/source/
# ./configure && make headers
# make && make install samba被默認安裝到/usr/local/samba
2 安裝編譯samba-vscan
# cd .. /usr/src/samba-3.0.21rc2/examples/VFS/samba3-vscan-0.4.0-snapshot
# ./configure && make
3 .修改配置文件
復制vscan的配置文件, VSCAN可以結合多種殺毒軟件起用,如symantec, Kaspersky, trend等這裡用的是clamav,因此,只需要把clamav中的vscan-clamav.conf復制到/etc/就去就行了。
# cd /share1/src/samba-3.0.21c/examples/VFS/samba3-vscan-0.4.0-snapshot1
# cp /clamav lamav/vscan-clamav.conf /etc/
修改一些配置,使其與 clamd.conf的一些設置匹配
使用編輯器修改 /etc/vscan-clamav.conf
在Example 前面加上#號注釋掉此行把clamd socket name ,設為
clamd socket name = /tmp/clamd.socket (相同clamd.conf中的 LocalSocket /tmp/clamd.socket)
把infected file action = delete
修改infected file action = nothing
則表示對感染的文件不處理,是infected file action = delete 則刪除感染的文件。
5.修改 smb.conf
在 [global] 區段中,加入兩行
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/vscan-clamav.conf
完成修改,重新啟動 samba
/etc/rc.d/rc.samba restart
啟動clamav
/usr/local/sbin/clamd --config-file=/etc/clamd.conf
總結:到此為止本章以Clamav 防毒工具及其相關工具為Web服務器、郵件服務器、smaba服務器、FTP服務器配置了防病毒工具。筆者對Linux平台下病毒的防范總結出以下幾條建議,僅供參考:
● 日常操作盡量不要使用root權限進行;
● 不要在重要的服務器上運行一些來歷不明的可執行程序或腳本;
● 對於連接到互聯網的Linux服務器,要定期檢測Linux病毒,檢查蠕蟲和木馬是否存在;
● 對於提供Samba文件服務的Linux服務器,最好部署一款可以同時查殺Windows和Linux病毒的軟件,並定期升級病毒代碼庫;;
● 對於提供郵件服務的Linux服務器,最好配合使用一個E-mail病毒掃描器。