查看單個文章
舊 2006-12-20, 10:38 PM   #1
Chin-Wei 帥哥
長老會員
 
Chin-Wei 的頭像
榮譽勳章
UID - 114112
在線等級: 級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時
註冊日期: 2007-02-18
文章: 3448
精華: 0
現金: 1674 金幣
資產: 32804 金幣
預設 ClamAV安裝與使用說明-讓你的郵件主機也具有防毒能力

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檔案存放的地點。
__________________
思考,正是從一個錯誤,跳進另外一個錯誤。
Chin-Wei 目前離線  
送花文章: 5387, 收花文章: 1361 篇, 收花: 5457 次
回覆時引用此帖