[ 最新版本: 4.2.2-0 ] 為 Fedora 11
從 Fedora 7 開始 Fedora 已經支援 milter-greylist。
任何使用 email 的人一定知道什麼是 spam (廣告或垃圾郵件),因為所有使用 email 的人一定常常收到相當多的 spam。 使用 Linux 作業系統作 mail server 的話,一般使用 spamassassin 來過濾這些不受歡迎的 spam。SpamAssassin 是一個相當好的過濾器,但是它很耗 server 的資源,特別是 RAM。如果能減輕這種負擔一定會更理想。現在就有了, 這就叫 Grey Listing。
SpamAssassin 會使用所謂的 whitelist (白名單) 和 blacklist (黑名單) 來過濾 mail server 所收到 的郵件。它缺乏的是第三種名單,就是 greylist (灰名單)。
Grey listing,Evan Harris 所提供的方法, 主要的概念是:spam 所用的 MTA (Mail Transfer Agent) 寄信之後就不管是否遠方的 mail server 有沒有收到它所寄的信。相反的,標準的 MTA 如果它寄信之後發生錯誤,它會繼續的寄這封信一直到遠方的 mail server 收到了這一封信。
所以 grey listing 的方法來過濾 spam 就是:第一次收到郵件就先拒絕這封郵件。等一段時間之後, 如果又收到同樣的郵件就接收這封郵件。看起來很簡單的方法,但是按照測試的結果 grey listing 可以攔截 95% 的 spam。 剩餘的 5% 就給 spamassassin 來處理。
你如果想安裝 milter-greylist 的話,你先確定你已經安裝了 sendmail、sendmail-cf、sendmail-devel、 bison 和 flex。使用的 sendmail、sendmail-cf 和 sendmail-devel 版本必須 >= 8.11 而且支援 milter (mail filter) 的介面。一般來說,Redhat 和 Fedora 所提供的 sendmail 就符合這個條件。
Fedora 11 支援 milter-greylist。在這裡我描寫如何在 Fedora 11 安裝 milter-greylist。
安裝程序:
Fedora 11 的 milter-greylist 需要以下程式,而且先安裝然後才可以安裝 milter-greylist:
安裝之後,你必須編輯 /etc/mail/greylist.conf 按照你的需要。至少以下項目必須修改:
INPUT_MAIL_FILTER(`greylist',`S=local:/var/run/milter-greylist/milter-greylist.sock')
define(`confMILTER_MACROS_CONNECT', `H, j, _, {daemon_name}, {daemon_port}, {if_name}, {if_addr}, {client_addr}')
define(`confMILTER_MACROS_HELO', `{verify}, {cert_subject}')
define(`confMILTER_MACROS_ENVFROM', `i, {auth_authen}')
define(`confMILTER_MACROS_ENVRCPT', `{greylist}')
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
service sendmail restart
這樣,工作就告一段落。從今以後,恭喜你,因為你會注意到你收到的 spam 就減少很多。 同時你也會注意到有病毒之 email 也會減少。
蔡由世神父
2005/02/11
更新:2009/07/15