分類

防堵垃圾郵件

每一個email address 用久了以後,幾乎都有一個共同的困擾,就是每天總有有收不完的那種不請自來的email。但是,更換email address不一定是那麼簡單,而且,往往也不願意就這樣放棄一個使用已久的email address,更慘的是,可能因為換新email address後,因為沒有通知到或其他原因,就這樣跟朋友失聯。

有單位估計,現今在網路上流傳的電子郵件中,有超過45%是屬於垃圾郵件,而據Mircrosft稱,MSN每天約擋下24億封的垃圾郵件。

我們先來簡單說明一下一些關於垃圾郵件的名詞。

SPAM 就是所謂的垃圾郵件,係指未經收件人同意就大量寄發的電子郵件,這種電子郵件大多數為廣告信,而您的email address可能是經由轉信或是討論區在網路上被而遭廣告商收錄而進行買賣。
SPAMMER 就是指專門在網路上,以各種方式蒐集及買賣email address,建立清單來發送大量電子郵件的人。有的SPAMMER會用亂數隨機運算出大量電子郵件發送出去,再透過”取消訂閱”的方式篩選有效的電子郵件。
Blacklists 黑名單,就是用來事先防堵垃圾郵件的一種程式。但有時會造成誤擋。
Open Relay 開放轉發或所謂的匿名轉發,也就是mail server不設限制的替Client轉送郵件。這可以視為mail server的一個漏洞,sendmail 從8.9.x以後預設已經關掉Open Relay。

目前世界上很多國都開始立法,或是已經立法明定傳送這些不請自來的email屬於違法行為,民眾可以據此控告濫發垃圾郵件者。而且,通常都會規定要求寄發廣告郵件必須事先徵求收件人同意,而不是強迫收件人去請求發信者自他的發信名單中剔除。

不過,法律的歸法律,往往還是很多不知道誰發出來的垃圾郵件到處流竄,防堵垃圾郵件也就變成系統管理員該做的一部份工作之一。

Sendmail 的設定檔之一的access就是一個比較消極的防堵方式,如果您事先知道那個IP或主機會寄送垃圾郵件,您就可以把它的IP或domain name加進這一個檔案中,這一個部份的how to請參考站內安裝sendmail說明,不過這個方式有點辛苦,也需要時間蒐集可靠的黑名單。

另一個方式是您直接去參考網路上有一些組織或公司,專門蒐集這些”問題”主機的名單,您可以在您的sendmail裡設定,讓您的MTA直接去比對他們的資料庫裡的黑名單。如果這個SMTP Server的IP存在於在他們的黑名單之中,我們的MTA就自動退信,不再繼續傳送,儘可能的阻擋垃圾郵件遞送到您的使用者信箱之中。

這個部份需要去重建您的sendmail.cf,實作並不難。我們目前打算參考的名單來源有以下三家:

http://www.spamcop.net
http://www.ordb.org
http://www.mail-abuse.org

請在您的sendmail.mc 檔案中加入以下的feature:

FEATURE(`enhdnsbl’, `bl.spamcop.net’, `”Spam blocked see: http://spamcop.net/bl.shtml?“$&{client_addr}’, `t’)dnl
FEATURE(`dnsbl’, `relays.ordb.org\’, `”550 Email rejected due to sending server misconfiguration – see http://www.ordb.org/submit/ “\’)dnl
define(`confBIND_OPTS’, `WorkAroundBrokenAAAA’)dnl
FEATURE(dnsbl, `blackholes.mail-abuse.org’, `Rejected – see http://www.mail-abuse.org/rbl/’)dnl
FEATURE(dnsbl, `dialups.mail-abuse.org’, `Dialup – see http://www.mail-abuse.org/dul/’)dnl
FEATURE(dnsbl, `relays.mail-abuse.org’, `Open spam relay – see http://work-rss.mail-abuse.org/rss/’)dnl
FEATURE(`delay_checks’)dnl

編好sendmail.mc之後,請重建sendmaik.cf。安裝好sendmail.cf之後,重新啟動sendmail就大功告成了。

至於 /etc/mail/access 的部份, 附件為本人長期下來蒐集的一些 SPAM Hosts, 請自行下載解壓縮參考, 亦歡迎提供 SPAM hosts 資料

原2004/04/06發表於 UnixCafe

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>