Networking

使用 geoip 過濾器阻止垃圾郵件?

  • November 14, 2014

我們正在尋找一種能夠通過使用 geoip 進行過濾來根據地理位置阻止垃圾郵件的方法。

背景:我們在美國以外很少有任何電子郵件通信,因此我們希望阻止美國以外的所有傳入電子郵件,除了可能一兩個國家。

經過一番Google搜尋後,我發現了一些可能有效(或無效)的解決方案,但我想知道其他系統管理員目前正在做什麼,或者他們會推薦什麼作為解決方案。

這是我到目前為止發現的:

使用 PowerDNS 及其 GeoIP 後端,可以使用 geoip 進行過濾。通常這個後端用於幫助分配負載作為一種負載平衡,但我不明白為什麼它也不能用來殺死垃圾郵件?

可能使用 Maxmind lite 國家數據庫和一些腳本來完成類似的工作。

理想情況下,我正在尋找一種解決方案,它可以處理體面的負載並很好地擴展……不是我們所有人!;)

在此先感謝您的幫助!:-)

還有用於 Linux 的 netfilter/iptables的geoip 更新檔。如果是 Linux,您可以使用它為您的電子郵件伺服器阻止 25。通過這個 iptables 更新檔,您可以將 Linux 用作電子郵件伺服器的防火牆。最好的部分是它是免費的:-)

從這篇關於 SNARE 的研究論文中,我提出了這個建議:

對於火腿來說,90% 的消息傳播了大約 4,000 公里或更短的距離。另一方面,對於垃圾郵件,只有 28% 的郵件保持在此範圍內。

我個人的觀察反映了你的看法,並註意到即使在 2014 年的現在,地理位置仍然是垃圾郵件的一個很好的預測指標。正如其他人指出的那樣,GeoIP 位置(國家或距離)並不是阻止連接的足夠可靠的基礎。但是,將 GeoIP 距離與有關連接的其他一些數據(例如 FCrDNS、HELO 主機名有效性、發送方作業系統(通過 p0f)和 SPF)結合起來提供了 99.99% 的可靠基礎(例如,0.01% 的機會FP) 用於在 DATA 階段之前拒絕 80% 的連接。

與一些 SMTP 測試(例如 zen.spamhaus.org 中的 DNSBL 列表)具有非常低的 FP 率不同,上述測試都不是拒絕連接的充分基礎。這是屬於該類別的另一種模式——信封發件人使用者與信封收件人*使用者匹配。*我注意到大約 30% 的垃圾郵件遵循這種模式:從:matt@spammer-controlled-domain.tld 到:matt@my-domain.com。它在垃圾郵件中比在有效郵件流中更頻繁地**發生。**另一種垃圾郵件發送者模式是來自域的不匹配的信封和標頭。

通過啟發式地對這些“出現垃圾郵件”的特徵進行評分,可以組裝一個極其可靠的過濾系統的基礎。SpamAssassin 已經做了(或可以做)我所描述的大部分內容。但是您還要求提供一種能夠處理足夠負載和良好擴展的解決方案。雖然 SpamAssassin 很棒,但我在 3.4 版本說明中的任何地方都沒有看到“大大減少了資源消耗”。

我在第一段中列出的所有測試都發生在 SMTP DATA 之前。結合這些早期測試為在沒有任何誤報的 SMTP DATA 之前拒絕垃圾郵件連接形成了充分的基礎。在 SMTP 數據之前拒絕連接可以避免傳輸郵件的頻寬成本以及基於內容的過濾器(SpamAssassin、dspam、標頭驗證、DKIM、URIBL、防病毒、DMARC 等)的較重 CPU 和網路負載。的連接。每個連接做更少的工作可以更好地擴展。

對於在 SMTP DATA 處不確定的較小郵件子集,允許繼續進行連接,並且我使用來自內容過濾器的結果對郵件進行評分。

為了完成我所描述的所有內容,我對一個名為 Haraka 的基於 node.js 的 SMTP 伺服器進行了一些修改。它的擴展性非常非常好。我編寫了一個名為 Karma 的自定義外掛,它可以進行啟發式評分,並將所有加權分數放入一個配置文件中。要了解 karma 的工作原理,請查看karma.ini 配置文件。我得到了“比 gmail 更好”的過濾結果。

查看 FCrDNS、helo.checks 和 data.headers 執行的測試。他們可能會為您提供額外的過濾構想。如果您對通過廉價(數據前)測試可靠地檢測垃圾郵件有進一步的想法,我很想听聽他們的意見。

引用自:https://serverfault.com/questions/17067