本篇全文出自:Ben 的 IT 學習之不歸路網誌




起源:有個客戶要求,要mail防毒,但不要垃圾郵件過濾,大概是為了省錢吧(輕哼....我總有一天等到你),不用mailscanner做做看吧。

作法 :sendmail+clamav-milter

下載:clamav請自行下載最新版
#wget http://freshmeat.net/redir/clamav/29355/url_tgz/clamav-0.94.2.tar.gz

安裝clamav-milter
到 /usr/local/src下編譯,相關需求與編譯方式請參考clamav官網
#cd /usr/local/src
#tar xvf clamav-0.94.2.tar.gz ; cd clamav-0.94.2
# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
安裝必要sendmail 套件
# yum -y sendmail-cf sendmail-devel
開始編譯clamav 並啟用clamav-milter
#./configure --sysconfdir=/etc --enable-milter
#make
#make install
# touch /var/log/freshclam.log
# chmod 600 /var/log/freshclam.log
# chown clamav /var/log/freshclam.log

 設定
編輯/etc/clamd.conf 把Example那一行註解掉
#vi /etc/clamd.conf
#clamd (出現警告訊息別驚慌,只是在抱怨防毒馬太舊,更新完就好了)


設定自動更新
編輯/etc/freshclam.conf把Example那一行註解掉
#vi /etc/freshclam.conf
#freshclam
編輯/etc/crontab 加入以下一行自動更新(N 請自行選擇0-59分鍾的任何一分鍾,建議不要是5的倍數)
N * * * *   root /usr/local/bin/freshclam --quiet

設定sendmail
# vi /etc/mail/sendmail.mc
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
找到這兩行,將前開頭兩行的dnl 去掉
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
將上一行則將 127.0.0.1 改成 0.0.0.0
加入以下兩行
INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')
我們可以使用m4 指令對sendmail.mc 所設定的組態產生sendmail.cf的設定檔。
 #m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
啟動身份認證機制
#/etc/rc.d/init.d/saslauthd start
#chkconfig --level 35 saslauthd on


啟動clamav-milter
建立所需目錄
#mkdir /var/run/clamav ; chown clamav.clamav /var/run/clamav
#/usr/local/sbin/clamav-milter -lo /var/run/clamav/clmilter.sock
重新啟動sendmail
#/etc/rc.d/init.d/sendmail restart

測試結果
有效,如果寄出有病毒的信件會被拒絕,但不符合實務上需求,所以找了一下參數
#killall clamav-milter
#/usr/local/sbin/clamav-milter -lo /var/run/clamav/clmilter.sock --norejec

clamav-milter 常用的啟動參數:

    --postmaster-only:如果沒有使用 --quiet 的參數,發現有毒的信件,發信通知管理員(postmaster)。
    --local:掃瞄由區網送來的信件。
    --outgoing:掃瞄由外面送進來的信件。
    --max-children=50:可啟動掃毒程序數的上限,如果達上限時會停止一分鍾再繼續。
    --noreject:掃瞄到有毒的信件時直接刪除 (discard)。
    --quiet:不發出任何有毒的警示信件,這個選項會讓 --bounce 和 --postmaster-only 失效。

arrow
arrow
    全站熱搜

    正義的胖虎 發表在 痞客邦 留言(0) 人氣()