◎前言
架設郵件伺服器很簡單,但是要讓信箱不要充滿不請自來的廣告信件及病毒郵件很困難.
這也是近年來網管人員頭痛的問題.
阻擋病毒和廣告郵件也可以很容易,很節省經費..^^
此系統可以將郵件內容含附加檔案進行分析掃描,判斷出是否屬於已知病毒感染或是廣告郵件,
並針對信件屬性進行不同處理(包含郵件主旨標示或刪除)。
◎原理
sendmail程式負責送信,收到郵件遞送要求時,會豪不猶豫地把郵件透過已身子程序遞送給本機
或遠端使用者,只有在遞送失敗狀況下,才會暫存郵件,等待再次遞送。
一般郵件系統收發郵件過程示意圖:
MailScanner系統透過把原有的sendmail遞送程式停止,只啟動mta子程序,
將所收到的郵件檔案先暫存在另外一個資料夾(mqueue.in).
等到ClamAV及SpamAssassin進行完成病毒及廣告信件檢查後,MailScanner進行郵件後續加工動作
(如將郵件主旨增加{spam}或{virus}樣式,或刪除).
最後將處理過的郵件檔案放回至原先sendmail的郵件遞送資料夾,
把遞送功能交還給sendmail,回到最初sendmail程式處理程序完成郵件送收。
MailSacnner系統郵件處理過程示意圖:
◎安裝前的檢查
請確認目前的 sendmail 程式能夠正常收發郵件.
◎安裝
MailScanner路徑:/usr/ports/mail/MailScanner/
建立基本的設定檔:
安裝完會產生 mailscanner 和 mta 兩個程序.
ClamAV安裝路徑:/usr/ports/security/clamav/
安裝後會產生以下三個程序:
此三個程序,對於mailscanner來說,只需要執行 clamav-freshclam.sh 更新病毒碼.
SpamAssassin安裝路徑:/usr/ports/mail/p5-Mail-SpamAssassin/
MailScanner-mrtg安裝路徑:/usr/ports/MailScanner-mrtg/
◎程式設定修改: 所有設定檔範例
mta.sh:/usr/local/etc/rc.d/mta.sh 設定檔範例
將原先預設的exim變更為sendmail.
mailscanner.conf:/usr/local/etc/MailScanner/MailScanner.conf 設定檔範例
修改啟動clamav
修改啟動spamassassin
新增一個空檔案/usr/local/etc/MailScanner/rules/bounce.rules
補充說明:
由於系統訊息回報顯示為英文,所以我新增/usr/local/share/MailScanner/reports/tw 中文部分.
若有興趣的把檔案下載放過去吧  | MailScanner需要的資料夾:
/var/spool/下,新增 MailScanner 及 mqueue.in 存放相關郵件.
/var/spool/MailScanner/下,新增incoming及quarantine資料夾.
rc.conf:/etc/rc.conf
補上更新病毒碼的設定.並取消sendmail啟動.
mailscanner-mrtg:/usr/local/etc/mailscanner-mrtg/mailscanner.cfg 設定檔範例
與一般mrtg相同,設定自己想要抓取的資料. 額外說明:
若是您想要變更MRTG的WorkDir路徑,請務必用*預設值*執行過一次後.
才把產生的mailscanner-mrtg資料夾搬移進行更名,才變cfg設定檔路徑.
不然會有錯誤訊息喔. | SpamAssassin: /usr/local/etc/mail/spamassassin/local.cf 設定檔範例
請參閱:
http://www.yrex.com/spam/spamconfig.php
http://ccca.nctu.edu.tw/~hlb/tavi/PostfixSpamAssassin
◎程式啟動:
1.停止現有sendmail執行.
kilall sendmail
2.啟動mta收信程式 (/usr/local/etc/rc.d/mta.sh)
/usr/local/etc/rc.d/mta.sh start
3.啟動MailScanner程式 (/usr/local/etc/rc.d/mailscanner.sh)
/usr/local/etc/rc.d/mailscanner.sh start
4.啟動clamav更新病毒碼程式 (/usr/local/etc/rc.d/clamav-freshclamav.sh)
/usr/local/etc/rc.d/clamav-freshclamav.sh
其餘兩個clamav程式不用執行 注意:
執行測試時,請注意/var/mail/mail.log 紀錄,可以透過此紀錄檢查您的設定是否正確.
萬一您想要改回原先的sendmail程式.可以直接把MailScanner和MTA停掉.
啟動原先的sendmail程式,並且把mqueue.in的檔案搬移到mqueue即可.
MailScanner與原先的procmail不相違背.只是郵件會先透過MailScanner處理過後
才進入 procmail 處理程序 | ◎成果展示:
http://mail.mlc.edu.tw/ mailscanner-mrtg 圖.
http://ohaha.ks.edu.tw/mailscanner-mrtg/
outlook express 的收取狀況:絕大多數的不請自來的電子信件和病毒信都被標明了^^
補充說明:
按照系統預設的狀況,某些使用者訂閱的電子報也會因為含有IFrame框架,而被標示為virus或spam.
此部份請依照自己定義狀況,把白名單加上.不建議把IFrame檢查取消.
| ◎資料來源: clamd(8) MailScanner(8) MailScanner.conf(5)
|