顯示具有 greylist 標籤的文章。 顯示所有文章
顯示具有 greylist 標籤的文章。 顯示所有文章

2007年1月23日 星期二

Nolisting -- Poor Man's Greylisting

今天從 Slashdot 看到這篇文章介紹一個 anitspam solution 叫 Nolisting。簡單來說就是:
1. Primary MX 故意地不接 SMTP connection , 而根據 RFC 2821 規定,Client connection 會
2. 轉接到 Secondary MX,而這才是真正的 Email server。
3. 根據作者所說,Spammer 用的軟件大部份是 non-RFC compliance ,所以當 primary MX 不接時就不會再寄垃圾郵件到此地址。

但我自己的實際觀察是:
1. Secondary MX 也有垃圾郵件的。這可以由 headers 中看到!! 有Spammer 反而是故意攻擊 secondary mx --- 因為認為這些 secondary mx 的保護一般會較差。
2. Slashdot 內的評論也說某些正常 SMTP 也是 non-RFC compliance。這些 smtp server 便永遠不能寄信給你了。

2007年1月2日 星期二

maRBL

MTA level 的 antispam 方法一般是使用 RBL,但又恐怕會「殺錯」良民,經常跟中國大陸電郵聯絡的都知道很多 ip address 已經入了後多的 RBL,如果在 MTA level 已擋回,正常郵件真的無法進入,使用 spamassassin 只是可以針對 RBL 計分,實際郵件數量是沒有減少的。上文提到的 greylist 也有它的問題。現在就有一種融合兩者好處的方式: maRBL。它對郵件的處理方式是: 只針對 RBL 內的 ip address 做 greylisting,其它不做。
即就算是入了 RBL 的寄件者只要通過 greylisting 仍然可以寄到信給我們。
Greylist 也不需要考慮 smtp cluster 的問題了 (我想興建了 smtp cluster 的 ISP/mail providers 不會對 RBL 不處理吧)


更多資料:
Greylist (my blog)
maRBL

Greylist

上圖顯示我的 server 在 11月中開始啟動 greylisting 後郵件數量的變化,垃圾郵件減少了 2/3。Greylist 的原理很簡單:

1. 除了特定的 whitelist ip address 或 email address,所有 incoming 的 smtp connection 都會通知被告知 : Greylisting in action, please come back in 00:30:00 (時間可以控制!!)
2. 同時會記下 1. sending email address, sending smtp ip address 和 receiving email address
3. 大部份合乎 RFC 821 的 sending side MTA 會於稍後時間 retry 寄信,所以最後也會收到的。收信後也會自動做 whitelist (記下上述第 2 點的 tuples),下次同樣的 tuple 就不需要 Retry!
4. 一般 spammers 的 MTA 是不會 Queue 電郵的,一次試不到就會離開。

Greylist 是一項簡單而有效的阻擋垃圾電郵的方法,但也有缺點:
1. 對一些無法建立 whitelist 的企業,這意味電郵以後不會立即收到。這對一些經常有新客戶電郵查詢的行業未必適合。
2. 上面也說「大部份合乎 RFC 821 的 sending side MTA」,但也有例外的,所以在 greylist 設定檔必須加入 execptional list:
http://cvs.puremagic.com/viewcvs/greylisting/schema/whitelist_ip.txt?rev=1.12
http://www.assistant-soft.com/orf/GreylistIPexcptionList/GreylistIPexcptionList.txt (這個包括了中國大陸的 MTA)
3. 對行 cluster 的 sending side MTA, sending ip address 不一定每一次是相同的,我試過由 Gmail 寄信給我也要一整天才收到。

更多資料:
Google
Greylisting 首頁
milter-greylist (For Sendmail 的)
SQLGrey (For Postfix 的)