我是用freebsd搭postfix,最近常發現一封信Men's@xxx.com.tw(xxx.com.tw是我的domain)寄信給群組人員,但我的user中並沒有Men's這個人,查了mail網際網路標題,似乎指這信來自from p3n88h56.ugto.mx (p3n88h56.ugto.mx [148.214.88.56]),請問一下,這樣在postfix中應如何阻擋呢?用header_check和body_check沒用,因為他會一直換
這是單純的 SPAM 過濾問題,
DNSBL 的使用要小心,
因為誤判的問題還蠻多的,
SPAM 的過濾不是強調可以擋掉全部的垃圾信,
而是如何精準的區分正常信件跟SPAM,
或是說在正常信件跟 SPAM 之間取得令人可接受的平衡點!
小弟在服務單位建置過的 SPAM 是用
MailScanner + Spamassassin + 5個DNSBL + DCC + razor2 + pyzor ,
透過 Mailscanner 對信件的 score 值來決定是否為 SPAM ,
開始上線後經過 3 個月的參數調校,
每個月正常信件總數1萬5000多封,
每月全單位誤判信件都在個位數內...
如果您有使用 DNSBL 在過濾 SPAM ,
透過 Mailscanner 可以調整為信件必須同時存在於 2 種(數目可調整)不同的 DNSBL 才判定為 SPAM,
如果您有使用多個 DNSBL ,
在沒有 mailscanner 的幫助下,
因為沒有 score 的機制,
所以只要存在任一個 DNSBL 的資料庫中就會被判定為 SPAM
DNSBL 用的越多,誤判情形越嚴重,
方法1. 不理它, 垃圾信不可能100%防堵
方法2. 作 DNS 反查, 不符合就拒收; 這樣對方寄信的 IP 和 domain 所用的 IP 不符合, 拒收or丟垃圾信
但是很多公司的 DNS Server 並沒有設定反查, 它們寄過來的信件下場會相同
1.改掉群組帳號的名稱。
2.若改群組帳號名稱,仍進來的話,就在 procmail 的 rule 中加入像:
如果寄給群組帳號的話,則檢查寄信者是否 match 那些群組帳號,
match 則送去群組帳號,不match就 drop 掉。
3.看您的 群組帳號,是公開的?還是只有內部知道?如果是前者,而且是放在網路上的話,只要google查得到的話,那第 2. 不適用,且也永遠會有 spam 往該帳號寄。
4.如果是公開的話,又想避免 spam 發給群組的話,就只好用 majordomo(太老的程式…)或 mailman,或 procmail 的 SmartList 以 moderate 的模式來發送群組信件。
如果就 hinet.net 而言,若信任其 mail server 的話,那就在 access 的檔案中加入 168.95.4 OK 的允許語法。
另外,若是從 Hinet 的動態 IP 就擋掉。
dynamic.hinet.net 550 Mail from Dynamic IP rejected; see http://mywebsite
各 ISP 的作法,應是其 Mail server 擋其他ISP的動態IP直接來寄信,而要求其動態 IP 的 Mail 都透過自己 ISP 的 mail server 再 relay 出去。
這樣即使 hinet 的 mail server 萬一列在 spam 名單之中,也應還是可以直接進來。