ClamAV安裝與使用說明
適用系統: 因為是使用 tarball 安裝,只要是 Linux 應該都行。
簡介: ClamAV 是在 Linux 上很有名的一套掃毒軟體,只要透過 sendmail 的 milter(mail filter) 機制,就可以把 sendmail 和 ClamAV 綁在一起。當其他 Mail Server 與你自己的 sendmail 建立 SMTP Session 時(就是收信的時候),senamail 會呼叫 ClamAV 來進行掃毒,並視需要進行退信或丟棄該信件。
註:你也可以使用 YUM 來安裝,會方便很多,但這就像 windows 的 "Next"。當凸鎚的時候,你知道怎麼解決嗎?
1.至ClamAV官網下載source code。
http://www.clamav.net/ -> Download -> stable
2.為了安裝clamav-milter,必須要先下載sendmail的source code(看server上裝的是哪一個版本,就下載哪個版本),然後編譯與安裝libmilter。
http://www.sendmail.org/ftp/
cd ./sendmail-8.13.x/libmilter
./Build
make install
3.建立所需的使用者、群組,與設定檔、LOG檔所在目錄
useradd clamav (記得把shell改成/sbin/nologin)
mkdir /etc/clamav
mkdir /var/log/clamav
mkdir /var/run/clamav
chown clamav.clamav /etc/clamav
chown clamav.clamav /var/log/clamav
chown clamav.clamav /var/run/clamav
chmod 700 /etc/clamav
chmod 700 /var/log/clamav
chmod 700 /var/run/clamav
4.編譯與安裝clamav與clamav-milter
cd ./clamav-0.88.7
./configure --sysconfdir=/etc/clamav --enable-milter --disable-zlib-vcheck
make
make install
5.修改clamav的設定檔(/etc/clamav/clamd.conf)
#Example
LogFile /var/log/clamav/clamd.log
LogFileMaxSize 200M
LogTime
PidFile /var/run/clamav/clamd.pid
TemporaryDirectory /tmp
DatabaseDirectory /usr/local/share/clamav
LocalSocket /var/run/clamav/clamd
User clamav
AllowSupplementaryGroups
6.修改freshclam的設定檔(/etc/clamav/freshclam.conf)
#Example
DatabaseDirectory /usr/local/share/clamav
UpdateLogFile /var/log/clamav/freshclam.log
PidFile /var/run/clamav/freshclam.pid
DatabaseOwner clamav
AllowSupplementaryGroups
DatabaseMirror db.tw.clamav.net
7.修改sendmail.mc,讓sendmail使用clamav-milter
在OSTYPE之後,MAILER之前加入:
INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock,F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')dnl
要記得重新啟動sendmail。
8.啟動clamd、freshclam、clamav-milter
clamd
-->chown clamav.clamav /var/log/clamav/clamd.log
(不然clamav-milter會無法啟動)
freshclam -d(daemon模式)
clamav-milter --noreject --local --outgoing --max-children=50 --quiet local:/var/run/clamav/clmilter.sock --pidfile=/var/run/clamav/clmilter.pid
要記得重新啟動sendmail。
9.開機後自動啟用clamav,須修改/etc/rc.local
/usr/local/sbin/clamd
chown clamav.clamav /var/log/clamav/clamd.log
/usr/local/bin/freshclam -d
/usr/local/sbin/clamav-milter --noreject --local --outgoing --max-children=50 --quiet local:/var/run/clamav/clmilter.sock --pidfile=/var/run/clamav/clmilter.pid
註:
freshclam -d:daemon模式
若是沒有將clamd.log的權限改為clamav使用者可以存取,則clamav-milter會無法啟動。
10.在/etc/logrotate.d/clamav(自己新增這個檔案)
/var/log/clamav/freshclam.log /var/log/clamav/clamd.log {
missingok
create 644 clamav clamav
postrotate
/bin/kill -HUP `cat /var/run/clamav/clamd.pid 2> /dev/null` 2> /dev/null
|| true
/bin/kill -HUP `cat /var/run/clamav/freshclam.pid 2> /dev/null` 2> /dev/null
|| true
endscript
}
============================================================
clamav-milter 常用的啟動參數:
--postmaster-only:如果沒有使用 --quiet 的參數,發現有毒的信件,發信通知管理員(postmaster)。
--local:掃瞄由區網送來的信件。
--outgoing:掃瞄由外面送進來的信件。
--max-children=50:可啟動掃毒程序數的上限,如果達上限時會停止一分鐘再繼續。
--noreject:掃瞄到有毒的信件時直接刪除 (discard)。
--quiet:不發出任何警示信件,這個選項會讓 --bounce 和 --postmaster-only 失效。
--pidfile=FILE:指定pid檔案存放的地點。