2011年6月12日 星期日

Linux 的防毒系統

[原出處已遺忘]


clamav安裝與使用


在安裝之前先新增 clamav 使用者及群組
不然下面會有權限的問題產生
到時還要手動修正
依照官方文件先創 clamav群組與使用者
groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav

註:如果使用 clamd 或 freshclam 並無出現權限錯誤問題
則下面設定權限的部份可以跳過


先設定好讓yum可以抓到dries

安裝clamav:
yum -y install clamav clamav-server clamd

設定開放 clamav的log檔屬性:
clamd log檔預設位置在
cd /var/log/clamav/

clamd的部份:
先創個clamd.log出來
touch clamd.log
把屬性打開
1.chmod 600 clamd.log
2.chown clamav clamd.log (把權限指定給clamav)

設定長駐clamd防毒
/etc/rc.d/init.d/clamd start
chkconfig clamd on
freshclam的部份:
cd /var/log/clamav
touch freshclam.log
chmod 600 freshclam.log
chown clamav freshclam.log

注意!! 有兩個目錄的權限要開放給 clamav 使用者
不然無法下載病毒碼
chown clamav /varclamav
chown clamav:clamav /usr/local/share/clamav

開始更新:
freshclam

每日更新:
vi /etc/crontab
幾分 幾點 * * * root /usr/local/bin/freshclam


手動掃描語法:
◎語法:

clamscan [options] [file/directory/-]

◎常用參數:
-d FILE/DIR, --database=FILE/DIR 指定病毒資料庫位址.

-l FILE, --log=FILE 將掃描結果儲存到FILE這個檔案.

-r, --recursive 遞迴掃描.

--bell 發現病毒的時候發出聲響.

--no-summary 完成掃描後,不顯示摘要訊息.

--remove 移除被病毒感染的檔案.

◎常用範例:
(0) 掃描某一檔案: clamscan file

(1) 掃描目前所在的資料夾: clamscan

(2) 遞迴掃描位於/home資料夾下的所有檔案及資料夾: clamscan -r /home

-----------------------------------------------------------------------------------
ClamAV

English Version

[ 最新版本: 0.93.3 ] 為 Fedora 9

注意:如果你要升級 (不是新的安裝) 至 0.93 版本,因為從 0.93 版本開始 ClamAV 的病毒資料庫已經在用不一樣的格式 (.cld) 所以已經不需要 main.inc 和 daily.inc 子目錄。你必須手動刪除這兩個子目錄如下:

    cd /var/lib/clamav
    rm -fr main.inc
    rm -fr daily.inc 

2008/06/24

今天我注意到 freshclam 更新 ClamAV 病毒碼資料庫時它把檔案 /var/lib/clamav/main.cvd 改名為 /var/lib/clamav/main.cld。在這樣的情形之下你必須改 initscript /var/rc.d/init.d/clamd。更改這列:

    if ! [ -f /var/lib/clamav/main.cvd -o -d /var/lib/clamav/main.inc ]; then ==>
    if ! [ -f /var/lib/clamav/main.cld ]; then 

我從來沒有想過要寫如何安裝 ClamAV 這篇文章因為安裝 ClamAV 是一個很容易的事情。但是為了完整﹝完整電子郵件方案: Sendmail + milter-greylist + ClamAV Anti-Virus + SpamAssassin﹞,我決定乾脆把它寫了。

有人可能會問為什麼在一個 Linux 伺服器安裝一個防毒程式?畢竟沒有病毒會攻擊 Linux。相反的,大家知道病毒只攻擊微軟 Windows 這作業系統。對這問題的答案是:雖然電子郵件伺服器是安裝在 Linux 但是電子郵件的使用者很可能是在使用 Windows。為了保護你的使用者,乾脆也安裝了防毒程式。

我在使用 Fedora 9,所以我要安裝的 ClamAV 是 Fedora 9 的版本。我拿 crash-hat 為 CentOS-5.0 所提供的 source rpm,然後重建我自己的 rpm 包裝為 Fedora 9。

當然你自己也可以這樣做。但是如果你無法或不知道如何從 source rpm 建你需要的 rpm 包裝,請你參考 這裡 。我 提供 我在 Fedora 9 所建的 rpm 包裝。

2008/07/09

crash-hat 很慢提供最新版本的 rpm 包裝,所以我自己使用前一個 .src.rpm 來重建最新版本的 rpm 包裝。我現在也提供為 CentOS 5.2 的 rpm 包裝。你在這裡下載。

因為 Fedora 9 也支援 ClamAV,當然你可以使用 Fedora 9 所提供的 rpm 包裝來安裝或更新。我自己喜歡重建我的 rpm 包裝因為我感覺 Fedora 9 負責 ClamAV 的人更新的很慢。

註:如果你不用 Fedora,你可以在 http://www.clamav.net/download/packages下載你 distribution 的 binary package。

安裝/更新這些檔案:

    rpm   -Uvh   clamav-0.93.3-1.i686.rpm   clamav-milter-0.93.3-1.i686.rpm   clamav-server-0.93.3-1.i686.rpm

註:不要安裝/更新 clamav-db-0.93.3-1.i686.rpm。freshclam 會自動下載所需要的病毒碼。

設定檔案:

    /etc/clamd.conf
    /etc/freshclam.conf
    /etc/sysconfig/clamav-milter

除了你有特別的需要,要不然就不需要修改這些設定檔案的設定內容。都沒有問題的。

現在我們可以啟動 clamav-milter 、 clamd 和 freshclam:

    chkconfig   clamav-milter   on
    chkconfig   clamd   on
    chkconfig   freshclam   on
    service   clamav-milter   start
    service   clamd   start
    service   freshclam   start

因為我們使用一個 milter ﹝clamav-milter﹞,在 /etc/mail/sendmail.mc 的 OSTYPE(`linux')dnl 之後我們需要加:

    INPUT_MAIL_FILTER(`clamav-milter',`S=local:/var/run/clamav/clamav-milter.sock,F=, T=S:4m;R:4m')dnl
    define(`ConfINPUT_MAIL_FILTERS', `clamav-milter')dnl

註:如果你也同時使用 milter-greylist,應該先放 milter-greylist 的設定,然後才放 clamav-milter。這樣的,當一封電子郵件到達,Sendmail 會先呼叫 milter-greylist 然後呼叫 clamav-milter。整個設定如下:

    OSTYPE(`linux')dnl
    INPUT_MAIL_FILTER(`greylist',`S=local:/var/milter-greylist/milter-greylist.sock')
    define(`confMILTER_MACROS_CONNECT', `j, {if_addr}')
    define(`confMILTER_MACROS_HELO', `{verify}, {cert_subject}')
    define(`confMILTER_MACROS_ENVFROM', `i, {auth_authen}')
    INPUT_MAIL_FILTER(`clamav-milter',`S=local:/var/run/clamav/clamav-milter.sock,F=, T=S:4m;R:4m')dnl
    define(`ConfINPUT_MAIL_FILTERS', `clamav-milter')dnl

重新建 sendmail.cf 然後重新啟動 sendmail:

    m4   /etc/mail/sendmail.mc   >   /etc/mail/sendmail.cf
    service   sendmail   restart

現在你的使用者可以享受沒有病毒的電子郵件了。

沒有留言: