先添加 clamav 用戶,這個用戶用來掌管整個軟件的運行。 代碼: groupadd clamav useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav 代碼: cp clamav-0.70.tar.gz /usr/src tar zxvf clamav-0.70.tar.gz cd clamav-0.70 ./configure --sysconfdir=
先添加 clamav 用戶,這個用戶用來掌管整個軟件的運行。
代碼:
groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
代碼:
cp clamav-0.70.tar.gz /usr/src
tar zxvf clamav-0.70.tar.gz
cd clamav-0.70
./configure --sysconfdir=/etc --enable-milter --prefix=/usr --datadir=/var/clamav
make
make install
(想更詳細的控制安裝選項請運行 ./configure --help)
下面配置 /etc/clamav.conf
請先將文件中的 Example 這行刪除掉或在其前面加上 # 注釋掉
去掉注釋或更改下面行的值
LogFile /var/log/clamd.log
LogFileMaxSize 2M
PidFile /var/clamav/clamd.pid
DatabaseDirectory /usr/local/share/clamav
LocalSocket /var/clamav/clamd.sock
StreamSaveToDisk
ScanMail
ScanArchive
ArchiveMaxFiles 1000
MaxThreads 200
MaxDirectoryRecursion 15
User clamav
這樣 clamav 就基本可以工作了。
建立目錄
代碼:
mkdir /var/clamav
chown clamav:clamav /var/clamav
接下來要
下載病毒資料庫
首先編輯 /etc/freshclam.conf 文件
去掉次行注釋並修改為 UpdateLogFile /var/log/clam-update.log
在 DatabaseMirror database.clamav
.net 行下面在加入幾個地址,更多鏡像地址請參考文檔 clamav.pdf
DatabaseMirror clamav.inet6.fr
DatabaseMirror clamav.netopia.pt
DatabaseMirror clamav.sonic.net
這樣該文件就可以了。若升級數據庫時無法連接就注釋掉DatabaseMirror database.clamav.net 行,留下剩下的行.
下面生成/var/log/clam-update.log 文件
touch /var/log/clam-update.log
chmod 600 /var/log/clam-update.log
chown clamav /var/log/clam-update.log
運行數據庫的更新
freshclam -d -c 2 (-d 選項為該命令以 daemon 方式運行 -c 2 這個選項的意思是每天檢查2次數據庫更新)
freshclam --quiet --s
tdout 手動更新數據庫
更新結束後請到 /usr/src/clamav-0.70/test 目錄下檢查數據庫裡所認知的病毒數量
執行
clamscan test1
給果可能於下面顯示的不同
代碼:
test1: ClamAV-Test-Signature FOUND
----------- SCAN SUMMARY -----------
Known viruses: 20670
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 Mb
I/O buffer size: 131072 bytes
Time: 2.301 sec (0 m 0 s)
設置 sendmail.mc 文件
需要增加如下代碼:
代碼:
dnl ## milter clmilter
INPUT_MAIL_FILTER(`clmilter', `S=local:/home/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')
然後生成 sendmail.cf 文件
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
現在啟動郵件過濾系統:
代碼:
clamd
clamav-milter -Nnqlo --max-children=30 /home/clamav/clmilter.sock
freshclam -d -c 2
service sendmail restart
測試過濾帶病毒的郵件
發送病毒郵件後你會在sendmail的Log(一般在/var/log/maillog)中看見如下提示:
Apr 1 13:36:01 linux sendmail[1429]: i315ZxnL001429: from=<
[email protected]>, size=41535, class=0, nrcpts=1,
msgid=<
[email protected]>, proto=ESMTP, daemon=Daemon0, relay=linux.abc.gov.cn [127.0.0.1]
Apr 1 13:36:01 linux sendmail[1429]: i315ZxnL001429: Milter: data, discard
病毒郵件被系統 discard 了, 同時在 /var/log/clamd.conf 中也記錄了病毒類型
這種情況下發病毒郵件的人在沒有被提醒的情況下被系統將其發出的郵件給丟棄了, 收件人不會得到病毒郵件也不會被提醒有人試圖給你發送病毒郵件!
若啟動 clamav-milter 時用的參數只有 -lo 的話,則系統會警告發送病毒郵件的人,告訴他發送失敗,sendmail 同時向郵件的接收者發送一封信,告訴他那個人試圖發送病毒郵件給自己。
具體參數詳解:
-n 在掃描郵件時不加入 clamav的版本號
-N 當用戶發送帶病毒的郵件時不警告他,而是立刻丟棄。但收件人會得到提示。
-q 安靜方式, 不發出任何信息 (包括在日志中也不做過多提示,遇到病毒時也只有 Milter : discard 一句話)
-o 對從系統向外發的郵件做過濾
-l 對發到系統的郵件做過濾
建議用戶做成啟動腳本
/etc/rc3.d/S91clamav 內容如下:
代碼:
/usr/bin/freshclam -d -c 2
/usr/sbin/clamd
/usr/sbin/clamav-milter -NnHqlo --quar
antine-dir=/var/clamav/quarantine --max-children=30 /var/clamav/clmilter.sock
chmod 777 /etc/rc3.d/S91clamav