分享

Sendmail + MailScanner + ClamAV 安裝實錄...

 农夫子oice 2007-04-28

Sendmail + MailScanner + ClamAV 安裝實錄

電子郵件已成為電腦病毒散播的捷逕, 而廣告信亦是網際網路最頭痛的問題; 微軟創辦人比爾蓋茲甚至成立了一個部門, 專門替他從每天超過四百萬封的信件中, 剔除絕大多數的垃圾信...
MailScanner 是著名的郵件掃毒、防止廣告信的自由軟體, 它可支援多種防毒軟體與 MTA (參見: MailScanner@FSF), 以下是在 Linux 系統裝設 MailScanner 的步驟:

安裝環境: Fedora Core 1 (使用 Sendmail)

【安裝】

Step 1. 安裝 MailScanner

官方網站: http://www.sng.ecs./mailscanner/

下載 Stable → Version xxx for RedHat and Mandrake Linux (and other RPM-based Linux distributions)

安裝後, 修改 /etc/MailScanner/MailScanner.conf:

Max Children = 5 設定 MailScanner 啟動時, 最多產生幾個子程序 (processing)
預設值 = 5 (主記憶體只有 64MB 時, 建議設定為 1)
Virus Scanning = yes 開啟病毒掃瞄功能
預設值 = yes
Virus Scanners = clamav 指定病毒掃瞄套件
可一次指定多個掃毒套件, 以空白字元分隔即可
預設值 = none
Use SpamAssassin = yes 設定是否使用 SpamAssassin 套件來偵測廣告信件
必須先安裝 SpamAssassin 套件才可正常使用
預設值 = no

Step 2. 安裝 Clam AntiVirus

官方網站: http://www./

安裝前須建立 clamav 帳號:

#useradd -M clamav

安裝後, 修改以下檔案:

/usr/local/etc/clamd.conf

/usr/local/freshclam.conf

將 Example 加上井字號註解掉 → #Example

執行 /usr/local/bin/freshclam 測試是否能正常運作

Step 3. 重新啟動 MailScanner

#service MailScanner stop

#chkconfig sendmail off (以後就由 MailScanner 啟動 sendmail, 所以要禁止 sendmail service 於開機時自動啟用)

#killall sendmail (有時候 sendmail process 會殘存在記憶體中, 在此將它一舉消滅)

#service MailScanner start

※從此以後, 由 MailScanner 負責啟動 MTA (Sendmail), 所以取消 Sendmail 服務, 由 MailScanner 取代

【防毒機制測試】

http://www./anti_virus_test_file.htm 下載病毒檔, 透過剛剛裝上 MailScanner 的 Mail Server 進行病毒郵件發送測試, 成功的話會收到 Mail Server 攔截病毒郵件的通知郵件. (亦可 tail -f /var/log/maillog 監視 mail log 訊息)

【讓 Spamassassin 學習辨別垃圾郵件】

Spamassassin 的 Spam 分數可以由“學習”的方式來調整, 最好的方式是分別建立 blacklist (黑名單, 垃圾郵件) 和 whitelist (白名單, 非垃圾郵件) 的信箱:

#useradd -M blacklist

#useradd -M whitelist

以後如果收到垃圾信的話, 就把信 "以附加檔案方式轉寄" 給自己 Server 上的 blacklist 信箱; 如果是被 Spamassassin 誤判為垃圾信的郵件, 就把它轉寄給 whitelist. 也就是說, 讓這兩個信箱收集可以給 Spamassassin 學習的範本. 學習的指令如下:

學習黑名單:

#sa-learn -D --showdots --spam --mbox /var/mail/blacklist

學習白名單:

#sa-learn -D --showdots --ham --mbox /var/mail/whitelist

學習完成後, 即可將 blacklist 與 whitelist 信箱清空:

#true > /var/mail/blacklist; true > /var/mail/whitelist

讓系統每小時自動學習黑/白名單: 於 /etc/cron.hourly 建立一個可執行的 shell 檔, 內容為:

#!/bin/sh

if [ -s /var/spool/mail/blacklist ]; then

sa-learn --no-sync --spam --mbox /var/spool/mail/blacklist > /dev/null 2>&1
true > /var/spool/mail/blacklist

fi

if [ -s /var/spool/mail/whitelist ]; then

sa-learn --no-sync --ham --mbox /var/spool/mail/whitelist > /dev/null 2>&1
true > /var/spool/mail/whitelist

fi

sa-learn --sync > /dev/null 2>&1

【參考資料】

Posted by Jamyy at 2005年01月23日 22:53

Trackback Pings

TrackBack URL for this entry:
http://cha./cgi-bin/mt/mt-tb.cgi/40

Comments

謝謝你這篇心得

對我自己架postfix+spamassassin 幫助很大

再次感謝

Posted by: Kane at 2006年10月27日 11:34

大大您好
假如之前User寄垃圾信給系統學習時
已經直接轉寄原垃圾信給伺服器
而不是以附加檔案的方式寄給伺服器
是否會有影響
會無法學習
還是會讓User被系統認為寄信者(User)為垃圾信的寄件者
會有影響嗎
如果會有問題,請問一下我該如何補救呢

Posted by: akong at 2007年04月18日 18:10

老實說我也不太清楚會不會影響學習效果
不過寄件者是內部 user, 應該不至於會被判為 spammer
如果要讓系統重新學習, 只要執行 sa-learn --clear 就行了

Posted by: Jamyy at 2007年04月18日 20:59

from:  http://cha./blog/archives/2005/01/sendmail_mailsc.html#more

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多