歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

為Linux各種應用服務器配置Clamav防毒工具

很少的病毒能夠在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病毒掃描器。

Copyright © Linux教程網 All Rights Reserved