No edit summary |
No edit summary |
||
Line 34: | Line 34: | ||
<source lang="prolog"> | <source lang="prolog"> | ||
postfix/cleanup[8164]: milter-hold: END-OF-MESSAGE from localhost[127.0.0.1]: milter triggers HOLD action; from=<test1@ms.com.tw> to=<test2@ms.com.tw> proto=ESMTP helo=<ms.com.tw> | postfix/cleanup[8164]: milter-hold: END-OF-MESSAGE from localhost[127.0.0.1]: milter triggers HOLD action; from=<test1@ms.com.tw> to=<test2@ms.com.tw> proto=ESMTP helo=<ms.com.tw> | ||
</source> | |||
===丟棄中毒信件=== | |||
這些被 ClamAV milter 掃出有毒的信件,預設並非真的刪除,而是置入 [http://www.postfix.org/QSHAPE_README.html#hold_queue hold queue]。過一段時間,必須去清除這些堆積在 queue 的信件。執行這個指令,可以清除它們: | |||
<source lang="bash"> | |||
postsuper -d ALL | |||
</source> | |||
若是希望 ClamAV milter 一掃到病毒,就直接丟棄這些信件,請在 <TT>/usr/local/etc/clamav-milter.conf</TT> 加入以下設定: | |||
<ref>修改 <TT>clamav-milter.conf</TT> 之後,須重新啟動: /usr/local/etc/rc.d/clamav-milter restart</ref> | |||
<source lang="xorg_conf"> | |||
# 刪除中毒的信件 (預設 Quarantine --> 改為 Blackhole) | |||
OnInfected Blackhole | |||
</source> | </source> | ||
<references /> | <references /> |
Latest revision as of 23:55, 24 September 2011
在 Postfix 早期的版本,Postfix 必須透過介面程式 (例如 MailScanner 或 amavisd-new 等) 才能與 ClamAV 溝通。 所以在網路上搜尋 "Postfix + ClamAV" 的結果,都會列出要你安裝 MailScanner 或 amavisd-new。 其實在 Postfix 2.3 之後 (目前 stable 版本為 2.8.5),Postfix 支援 Sendmail 8 Milter protocol,不須介面程式,即可直接和 ClamAV 溝通。
設定方法
在 FreeBSD 環境下,使用 ports 標準安裝 mail/postfix 和 security/clamav 之後, 在 /usr/local/etc/postfix/main.cf 內容加上:
smtpd_milters = unix:/var/run/clamav/clmilter.sock
即可在 Postfix 使用 ClamAV milter。 [1] [2]
比較 Sendmail 的方法
比較一下 Sendmail 的設定方法,若要使用 ClamAV milter 須在 .mc 檔案內加入:
MAIL_FILTER(`clmilter', `S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')dnl
如何測試
如何測試 ClamAV milter 有無作用?寄一封 local 的測試信,內容為純文字: [3]
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
看一下 /var/log/maillog 可看到:
postfix/cleanup[8164]: milter-hold: END-OF-MESSAGE from localhost[127.0.0.1]: milter triggers HOLD action; from=<test1@ms.com.tw> to=<test2@ms.com.tw> proto=ESMTP helo=<ms.com.tw>
丟棄中毒信件
這些被 ClamAV milter 掃出有毒的信件,預設並非真的刪除,而是置入 hold queue。過一段時間,必須去清除這些堆積在 queue 的信件。執行這個指令,可以清除它們:
postsuper -d ALL
若是希望 ClamAV milter 一掃到病毒,就直接丟棄這些信件,請在 /usr/local/etc/clamav-milter.conf 加入以下設定: [4]
# 刪除中毒的信件 (預設 Quarantine --> 改為 Blackhole)
OnInfected Blackhole
- ↑ 請查詢一下 clmilter.sock 的權限,必要時將 Postfix 加入 group 內。
- ↑ 其他非 BSD 的 unix 系統,檔案可能在其他位置,例如 /var/run/clamav-milter/clamav.sock 或 /var/run/clamav/clamav-milter 等。
- ↑ 請從 local 寄測試信。若由其他主機寄信,可能一開始就被這寄信主機攔截,根本收不到這一封測試信。請參考 Anti-Malware Testfile。
- ↑ 修改 clamav-milter.conf 之後,須重新啟動: /usr/local/etc/rc.d/clamav-milter restart