首頁 | 郵件資訊 | 技術教程 | 解決方案 | 產品評測 | 郵件人才 | 郵件博客 | 郵件系統論壇 | 軟件下載 | 郵件周刊 | 熱點專題 | 工具
網絡技術 | 操作系統 | 郵件系統 | 客戶端 | 電子郵箱 | 反垃圾郵件 | 郵件安全 | 郵件營銷 | 移動電郵 | 郵件軟件下載 | 電子書下載

郵件網絡安全

系統安全 | 郵件軟件漏洞 | 攻防技術 | 安全基礎 | 病毒公告 | 病毒查殺 | Forefront/TMG/ISA | 防火墻 | 數字簽名 |
首頁 > 郵件網絡安全 > 郵件安全與數字簽名 > 企業開源電子郵件系統安全保障實戰精要: 第 2 部分,Postfix 安全防護實戰及垃圾郵件防范 > 正文

企業開源電子郵件系統安全保障實戰精要: 第 2 部分,Postfix 安全防護實戰及垃圾郵件防范

出處:IBM 作者:李 洋 時間:2013-4-25 0:34:12

Postfix 是一個由 IBM 資助、由 Wietse Venema 負責開發的自由軟件工程產物,它的目的就是為用戶提供除 Qmail 之外的郵件服務器選擇。Postfix 在快速、易于管理和提供盡可能的安全性方面都進行了較好的考慮。Postfix 是基于半駐留、互操作的進程的體系結構,每個進程完成特定的任務,沒有任何特定的進程衍生關系,使整個系統進程得到很好的保護。同時 Postfix 也可以和 Qmail 郵件服務器保持兼容性以滿足用戶的使用習慣。

與 Qmail 相比,Postfix 最被人稱道的地方就在于其配置文件的可讀性很高。Postfix 的主配置文件是 /etc/postfix/main.cf。雖然該配置文件的內容比較多,但其中大部分內容都是注釋(“#”號開頭的行),真正需要自行定義的參數并不多。然而,為了對其進行安全配置,還是需要針對某些選項進行細心的設置。

在 main.cf 文件中,參數都是以類似變量的設置方法來設置的,這些參數的使用主要包含兩部分的內容:

(1)定義和聲明變量:例如 definename = good-better-best。等號左邊是變量的名稱,等號右邊是變量的值。

(2)引用變量:可以在變量的前面加上符號“$”來引用該變量,如:myname = $ definename(相當于 definename = good-better-best)。

需要注意的是:等號兩邊需要有空格字符。此外,如果變量有兩個以上的設置值,就必須用逗號“,”或者空格符“ ”將它們分開。

在熟悉了上述變量的定義和引用方法后,下面詳細介紹如何安全、高效地配置 Postfix 服務器的相關選項。

設置 Postfix 服務監聽的網絡接口

默認情況下,inet_interfaces 參數的值被設置為 localhost,這表明只能在本地郵件主機上寄信。如果郵件主機上有多個網絡接口,而又不想使全部的網絡接口都開放 Postfix 服務,就可以用主機名指定需要開放的網絡接口。不過,通常是將所有的網絡接口都開放,以便接收從任何網絡接口來的郵件,即將 inet_interfaces 參數的值設置為“all”,如下所示:

inet_interfaces = all

安全設置可接收郵件的主機名稱或域名

mydestination 參數非常重要,因為只有當發來的郵件的收件人地址與該參數值相匹配時,Postfix 才會將該郵件接收下來。通過該選項的設置可以過濾掉許多沒有經過認證和授權的郵件,從而節省服務器的存儲空間,以及節省用戶的郵件處理時間。舉一個簡單的例子,用戶可以將該參數值設置為如下:

 accept_domain = test.net 
 mydestination = $accept_domain 

這就表明無論來信的收件人地址是 [email protected](其中 X 表示某用戶在 test.net 域中的郵件賬戶名),Postfix 都會接收這些郵件。而除此之外的郵件,Postfix 都不會接受。

安全設置可轉發郵件的網絡(IP 設置)

有關安全設置可轉發郵件的網絡可以使用 mynetworks 參數來設置。可將該參數值設置為所信任的某臺主機的 IP 地址,也可設置為所信任的某個 IP 子網或多個 IP 子網(采用“,”或者“ ”分隔)。

比如,用戶可以將 mynetworks 參數值設置為 172.168.96.0/24,則表示這臺郵件主機只轉發子網 172.168.96.0/24 中的客戶端所發來的郵件,而拒絕為其他子網轉發郵件:

 mynetworks = 172.168.96.0/24 

除了 mynetworks 參數外,還有一個用于控制網絡郵件轉發的參數是 mynetworks-style,它主要用來設置可轉發郵件網絡的方式。通常有以下三種方式:

  • class:在這種方式下,Postfix 會自動根據郵件主機的 IP 地址得知它所在的 IP 網絡類型(即 A 類、B 類或是 C 類),從而開放的它所在的 IP 網段。
  • subnet:這是 postfix 的默認值,Postfix 會根據郵件主機的網絡接口上所設置的 IP 地址、子網掩碼來得知所要開放的 IP 網段。
  • host:在這種方式下,Postfix 只會開放本機。

通常,用戶一般不需要設置 mynetworks-style 參數,而直接設置 mynetworks 參數。如果這兩個參數都進行了設置,那么 mynetworks 參數的設置有效。

設置可轉發郵件的網絡(域名設置)

上面介紹的 mynetworks 參數是針對郵件來源的 IP 來設置的,而 relay_domains 參數則是針對郵件來源的域名或主機名來設置的,其實從原理上來說是一致的,不過是區分了 IP 地址和域名而已,不過,relay_domains 還需要依賴 DNS 這個基礎設施。

例如,用戶可以將 relay_domains 參數值設置為 test.net,則表示任何由域 test.net 發來的郵件都會被認為是信任的,Postfix 會自動對這些郵件進行轉發,如下所示:

 relay_domains = test.net 

那么,要使它能在實際網絡中更好地轉發郵件,還必須進行相應的 DNS 設置。那么,需要在該網絡的 DNS 服務器上定義了一個主區域 test.net,并在該區域配置文件中定義了以下記錄:

 // 定義郵件服務器的 IP 地址
 patterson.test.net. IN  A  172.168.96.254 
 // 定義郵件服務器的別名
 mail.test.net. IN CNAME  patterson.test.net. 
 // 定義優先級別
 test.net. IN MX  10 mail.test.net. 

上述記錄只對郵件服務器進行了定義,還有諸如 SOA、NS 等的定義,在這里就不再贅述。

Postfix 使用 SMTP 安全認證

如同前面所述的 Qmail 服務器面臨的郵件轉發的問題,在 Postfix 服務器中同樣也存在。為了避免這種情況的出現,Postfix 默認不會對外開放轉發功能,而僅對本機(localhost)開放轉發功能。但是,在實際應用中,必須在 Postfix 主配置文件中通過設置 mynetworks、relay_domains 參數來開放一些所信任的網段或網域,否則該郵件服務器幾乎沒有什么用處。在開放了這些所信任的網段或網域后,還可以通過設置 SMTP 認證,對要求轉發郵件的客戶端進行用戶身份(用戶賬戶名與密碼)驗證。只有通過了驗證,才能接收該用戶寄來的郵件并幫助轉發。同樣,Postfix 中目前比較常用的 SMTP 認證機制是通過 Cyrus SASL 包來實現的。

默認情況下,Postfix 并沒有啟用 SMTP 認證機制。要讓 Postfix 啟用 SMTP 認證,就必須對 Postfix 的主配置文件 /etc/postfix/main.cf 進行修改。用戶需要在 main.cf 文件中添加如下有關 SMTP 認證的設置部分:

 smtpd_sasl_auth_enable = yes 
 smtpd_sasl_local_domain = ''
 smtpd_recipient_restrictions = permit_mynetworks 
 permit_sasl_authenticated, reject_unauth_destination 
 broken_sasl_auth_clients=yes 
 smtpd_client_restrictions = permit_sasl_authenticated 
 smtpd_sasl_security_options = noanonymous 

其中,每個選項的具體含義如下:

(1)smtpd_sasl_auth_enable:指定是否要啟用 SASL 作為 SMTP 認證方式。默認不啟用,這里必須將它啟用,所以要將該參數值設置為 yes。

(2)smtpd_sasl_local_domain:如果采用 Cyrus-SASL 版進行認證,那么這里不做設置。

(3)smtpd_recipient_restrictions:表示通過收件人地址對客戶端發來的郵件進行過濾。通常有以下幾種限制規則:

  • permit_mynetworks:表示只要是收件人地址位于 mynetworks 參數中指定的網段就可以被轉發郵件。
  • permit_sasl_authenticated:表示允許轉發通過 SASL 認證的郵件。
  • reject_unauth_destination:表示拒絕轉發含未信任的目標地址的郵件。

(4)broken_sasl_auth_clients:表示是否兼容非標準的 SMTP 認證。有一些 Microsoft 的 SMTP 客戶端采用非標準的 SMTP 認證協議,只需將該參數設置為 yes 就可解決這類不兼容問題。

(5)smtpd_client_restrictions:表示限制可以向 Postfix 發起 SMTP 連接的客戶端。如果要禁止未經過認證的客戶端向 Postfix 發起 SMTP 連接,則可將該參數值設置為 permit_sasl_authenticated。

(6)smtpd_sasl_security_options:用來限制某些登錄的方式。如果將該參數值設置為 noanonymous,則表示禁止采用匿名登錄方式。

在完成上述設置后,必須使用命令 /etc/init.d/postfix reload 重新載入配置文件,或使用命令 /etc/init.d/postfix restart 重新啟動 Postfix 服務,以使該配置生效。當然,這兩個命令的具體使用需要根據不同的 Linux 版本來選用。

此外,由于當 Postfix 要使用 SMTP 認證時,會讀取 /usr/lib/sasl2/smtpd.conf 文件中的內容,以確定所采用的認證方式,因此如果要使用 saslauthd 這個守護進程來進行密碼認證,就必須確保 /usr/lib/sasl2/smtpd.conf 文件中的內容為:

 pwcheck_method: saslauthd 


實戰電子垃圾郵件防范

防治垃圾郵件的主流策略和技術

電子郵件的廉價和操作簡便在給人們帶來巨大便利的同時,也誘使有些人將它作為大量散發自己信息的工具,最終導致了互聯網世界中垃圾郵件的泛濫。垃圾郵件問題已經極大地消耗了網絡資源,并給人們帶來了極大的不便。據中國互聯網協會(ISC)反垃圾郵件狀況調查顯示,中國郵件用戶平均每人每天收到郵件 17 封,占收到郵件總數的 70% 以上。

目前,垃圾電子郵件已成為人們最頭疼的問題之一。在 Linux 操作系統平臺中,反擊和過濾垃圾電子郵件是一件很重要的工作。下面介紹一些在 Linux 中廣泛使用的防垃圾郵件技術。

SMTP 用戶認證技術

目前常見并十分有效的方法是,在郵件傳送代理 MTA 上對來自本地網絡以外的互聯網的發信用戶進行 SMTP 認證,僅允許通過認證的用戶進行遠程轉發。這樣既能夠有效避免郵件傳送代理服務器為垃圾郵件發送者所利用,又為出差在外或在家工作的員工提供了便利。如果不采取 SMTP 認證,那么在不犧牲安全的前提下,設立面向互聯網的 Web 郵件網關也是可行的。此外,如果 SMTP 服務和 POP3 服務集成在同一服務器上,在用戶試圖發信之前對其進行 POP3 訪問驗證(POP before SMTP)就是一種更加安全的方法,但在應用的時候要考慮到當前支持這種認證方式的郵件客戶端程序還不多。

逆向 DNS 解析

無論哪一種認證,其目的都是避免郵件傳送代理服務器被垃圾郵件發送者所利用,但對于發送到本地的垃圾郵件仍然無可奈何。要解決這個問題,最簡單有效的方法是對發送者的 IP 地址進行逆向名字解析。通過 DNS 查詢來判斷發送者的 IP 與其聲稱的名字是否一致,例如,其聲稱的名字為 mx.hotmail.com,而其連接地址為 20.200.200.200,與其 DNS 記錄不符,則予以拒收。這種方法可以有效過濾掉來自動態 IP 的垃圾郵件,對于某些使用動態域名的發送者,也可以根據實際情況進行屏蔽。但是上面這種方法對于借助 Open Relay 的垃圾郵件依然無效。對此,更進一步的技術是假設合法的用戶只使用本域具有合法互聯網名稱的郵件傳送代理服務器發送電子郵件。例如,若發件人的郵件地址為 [email protected],則其使用的郵件傳送代理服務器的 Internet 名字應具有 yahoo.com 的后綴。這種限制并不符合 SMTP 協議,但在多數情況下是切實有效的。需要指出的是,逆向名字解析要進行大量的 DNS 查詢。

實時黑名單過濾

以上介紹的防范措施對使用自身合法域名的垃圾郵件仍然無效。對此比較有效的方法就是使用黑名單服務了。黑名單服務是基于用戶投訴和采樣積累而建立的、由域名或 IP 組成的數據庫,最著名的是 RBL、DCC 和 Razor 等,這些數據庫保存了頻繁發送垃圾郵件的主機名字或 IP 地址,供 MTA 進行實時查詢以決定是否拒收相應的郵件。但是,目前各種黑名單數據庫難以保證其正確性和及時性。例如,北美的 RBL 和 DCC 包含了我國大量的主機名字和 IP 地址,其中有些是早期的 Open Relay 造成的,有些則是由于誤報造成的。但這些問題遲遲得不到糾正,在一定程度上阻礙了我國與北美地區的郵件聯系,也妨礙了我國的用戶使用這些黑名單服務。

白名單過濾

白名單過濾是相對于上述的黑名單過濾來說的。其建立的數據庫的內容和黑名單的一樣,但其性質是:庫中存在的都是合法的,不應該被阻斷。同樣,該過濾方法存在的缺點與黑名單類似,也是更新和維護難以達到實時,一些正常的、不為系統白名單所收集的郵件有可能被阻斷。從應用的角度來說,在小范圍內使用白名單是比較成功的。

內容過濾

即使使用了前面諸多環節中的技術,仍然會有相當一部分垃圾郵件漏網。對此情況,目前最有效的方法是基于郵件標題或正文的內容過濾。其中比較簡單的方法是,結合內容掃描引擎,根據垃圾郵件的常用標題語、垃圾郵件受益者的姓名、電話號碼、Web 地址等信息進行過濾。更加復雜但同時更具智能性的方法是,基于貝葉斯(Bayes)概率理論的統計方法所進行的內容過濾,該算法最早由 Paul Graham 提出(http://www.paulgraham.com/spam.html),并使用他自己設計的 Arc 語言實現。這種方法的理論基礎是通過對大量垃圾郵件中常見關鍵詞進行分析后得出其分布的統計模型,并由此推算目標郵件是垃圾郵件的可能性。這種方法具有一定的自適應、自學習能力,目前已經得到了廣泛的應用。最有名的垃圾郵件內容過濾是 SpamAssassin(將在后面詳細介紹),其使用 Perl 語言實現,集成了以上兩種過濾方法,可以與當前各種主流的 MTA 集成使用。內容過濾是以上所有各種方法中耗費計算資源最多的,在郵件流量較大的場合,需要配合高性能服務器使用。另外,當前也有很多學者將人工神經網絡、支持向量機、Winnow 算法等及其學習的方法引入到內容過濾垃圾郵件的研究中來,并且取得了很好的效果。

配置 Sendmail 防范垃圾郵件

Sendmail 是 Red Hat Linux 以及大多數類 UNIX 操作系統的郵件傳送代理,因此它是目前配置最廣泛的郵件服務器。下面以 Red Hat Enterprise Linux 6 使用的 Sendmail 為例,介紹應對垃圾郵件的幾種具體方法。其他開源郵件服務器防范垃圾郵件的配置,也可以參考本節的介紹進行配置。

關閉 Sendmail 的 Relay 功能

所謂 Relay 就是指別人能使用提供該功能的 SMTP 郵件服務器給任何人發信,這樣別有用心的垃圾發送者就可以使用這臺郵件服務器大量發送垃圾郵件,而最后別人投訴的不是垃圾發送者,而是這臺服務器,因此必須關閉 Relay 這項功能。其方法就是,到 Linux 服務器的 /etc/mail 目錄編輯 access 文件,去掉“*relay”之類的設置,只留“localhost relay”和“127.0.0.1 relay”兩條即可。最后特別注意,修改 access 文件后還要使用命令使修改生效:

 #makemap hash access.db < access 

在 Sendmail 中添加 RBL 功能

RBL(Realtime Blackhole List)是實時黑名單。國外有一些機構提供 RBL 服務,常用的 RBL 服務器地址有 relays.ordb.org、dnsbl.njabl.org、bl.spamcop.net、sbl.spamhaus.org、dun.dnsrbl. net 和 dnsbl.sorbs.net。查詢和刪除 RBL 中的 IP 地址可以到 http://openrbl.org/ 和 http://ordb.org。RBL 將收集到的專發垃圾郵件的 IP 地址加入他們的黑名單,只要在 Sendmail 中加入 RBL 認證功能,就會使郵件服務器在每次收信時都自動到 RBL 服務器上去查實,如果信件來源于黑名單,則 Sendmail 會拒收郵件,從而使用戶少受垃圾郵件之苦。在 Sendmail 中添加 RBL 認證,需要對 sendmail.mc 添加以下內容:

 FEATURE(`dnsbl',`relays.ordb.org',` ″ Email blocked using ORDB.org - see ″')

最后執行“m4 sendmail.mc>sendmail.cf”和“service sendmail restart”兩條命令,使有關 Sendmail 的修改生效。

服務器使用 SpamAssasin 防治垃圾郵件

SpamAssasin 是一個郵件過濾器,它部署在郵件服務器端,可以使用一系列的機制來確認垃圾郵件,這些機制包括:文本分析、Bayesian (貝葉斯判決規則)過濾、DNS 數據塊列表,以及合作性的過濾數據庫。SpamAssasin 并不能刪除垃圾郵件,但它卻可以阻止垃圾郵件。究其原因,主要在于它有如下一些特性:

  • 適用范圍廣:SpamAssasin 使用大量的本地和網絡的測試來確認垃圾郵件特征。這使得垃圾郵件制造者在明確其制造的信息的可工作性時增加了難度。
  • 自由軟件,應用廣泛:與其它流行的開源軟件一樣,愛好者可以廣泛的應用和修改、發布,應用前景很好。
  • 易于擴展:SpamAssasin 將反垃圾測試和配置信息存儲在純文本中,這使得配置和增加新的規則相當容易。
  • 靈活性:SpamAssasin 將其邏輯封裝在一個設計精良的、抽象化的 API 中,因此它可被集成到電子郵件數據流中的任何地方。SpamAssasin 可被用于多種電子郵件系統中,其中包括:Procmail、Sendmail、Postfix、Qmail 等。
  • 易于配置:SpamAssasin 幾乎不需要用戶的配置。用戶不必用郵件帳戶或郵件列表的成員資格詳細信息來不斷地更新 SpamAssasin 配置。一旦分類,站點和用戶規則就可以被運用于垃圾郵件。而且規則可以適用于郵件服務器,并且在以后又可以使用用戶自己的郵件用戶代理應用程序。

SpamAssasin 包括 spamd 守護進程和 spamc 客戶端。雖然它包括 SpamAssasin 實用工具,但 SpamAssasin 文檔建議使用 spamc 而非 SpamAssasin 來過濾郵件,因為 spamc 比 SpamAssasin 加載得更快。當 SpamAssasin 單獨工作時,spamc 調用 spamd。spamd 守護進程派生子進程 ; 當 spamd 運行時,ps 除了顯示 spamd 父進程外還顯示幾個 spamd 子進程:

 # ps -ef | grep spam 
 root 4254 1 0 14:17 ? 00:00:02 /usr/bin/spamd -d -c -m5 -H -r ... 
 root 4256 4254 0 14:17 ? 00:00:00 spamd child 
 root 4257 4254 0 14:17 ? 00:00:00 spamd child 
 root 4689 4662 0 16:48 pts/1 00:00:00 grep --color=auto spam 

spamc 實用工具是一個過濾器:它從標準輸入讀取每個電子郵件,發送電子郵件到 spamd 進行處理,并把修改后的電子郵件寫入到標準輸出。spamd 守護進程使用多種技術來識別垃圾郵件:

  • Headeranalysis(標題分析):檢查疑似垃圾郵件的標題,有些垃圾郵件被人采用某種技巧處理后,可能會被誤認為是合法的電子郵件。
  • Text analysis(文本分析):檢查電子郵件正文中的垃圾郵件特征。
  • Blacklists(黑名單):檢查名單,看看發件人是否在現有垃圾郵件發送者列表中。
  • Database(數據庫):檢查針對 Vipul ’ s Razor(razor.sourceforge.net)的郵件簽名,它是一個垃圾郵件跟蹤數據庫。

可以設置郵件服務器上的 SpamAssassin,以使它處理傳遞到本地系統的所有電子郵件,然后再發送到用戶。另外,每個用戶可以從他們的郵件客戶端運行 SpamAssassin。無論哪種方式,本地系統必須運行 spamd,并且必須通過這個守護進程使用 spamc 過濾每封電子郵件。

安裝 SpamAssasin

可以在網站上 http://spamassassin.apache.org/downloads.cgi 下載 SpamAssasin 的最新版本進行安裝,目前其最新版本為 3.3.2,具體的安裝步驟如下所示:

(1)解壓縮軟件包

 #tar xzvf Mail-SpamAssassin-3.3.2.tar.gz 

(2)進入目錄進行安裝

 #./configure 
 #make & make install 

配置與啟動 SpamAssasin

就像大多數 Linux 應用程序一樣,SpamAssasin 需要對配置文件的編輯。這個配置文件的路徑是:/etc/mail/spamassassin/local.cf。

SpamAssassin 在許多位置可查找配置文件,詳細信息請參閱 SpamAssassin 手冊。最容易使用的配置文件是 /etc/mail/spamassassin/local.cf,可以編輯這個文件來全局配置 SpamAssassin。用戶可以覆蓋這些全局選項并在 ~/.spamassassin/user_prefs 文件中添加自己的選項。可以把本節討論的選項放在這些文件中的任何一個。

例如,可以配置 SpamAssassin 來重寫評級為垃圾郵件的郵件主題行。配置文件中的 rewrite_header 關鍵字可控制這種行為。跟隨這個關鍵字的 Subject 字告訴 SpamAssassin 重寫主題行。從以下行刪除 # 就可以啟用這種行為:

 # rewrite_header Subject *****SPAM***** 

required_score 關鍵字指定:SpamAssassin 認為它是垃圾郵件之前一封電子郵件必須獲得的最低得分。默認值是 5.00。設置此關鍵字到一個更高的數值,就能使 SpamAssassin 把較少的電子郵件標記為垃圾郵件。

 required_score 5.00 

有時標記為垃圾郵件地址的郵件并不是垃圾郵件,或者來自該地址的郵件并不應該標記為垃圾郵件。使用 whitelist_from 關鍵字可指定不應該被視為垃圾郵件的地址,blacklist_from 用于指定應始終標記為垃圾郵件的地址:

 whitelist_from [email protected] 
 blacklist_from *@spammer.net 

可以在 whitelist_from 和 blacklist_from 行上指定多個地址,并用空格隔開。每個地址可以包含通配符。使用 whitelist_from *@example.com 將從 example.com 域發送電子郵件的每個人列入白名單。可以使用多個 whitelist_from 和 blacklist_from 行。

下面給出了一個配置該文件的示例:

 # How many hits before a message is considered spam. 
 required_score 7.5 
 # Change the subject of suspected spam 
 rewrite_header subject [SPAM] 
 # Encapsulate spam in an attachment (0=no, 1=yes, 2=safe) 
 report_safe 1 
 # Enable the Bayes system 
 use_bayes 1 
 # Enable Bayes auto-learning 
 bayes_auto_learn 1 
 # Enable or disable network checks 
 skip_rbl_checks 0 
 use_razor2 1 
 use_dcc 1 
 use_pyzor 1 
 # Mail using languages used in these country codes will not be marked 
 # as being possibly spam in a foreign language. 
 ok_languages all 
 # Mail using locales used in these country codes will not be marked 
 # as being possibly spam in a foreign language. 
 ok_locales all 

其中,主要包括如下幾個重點項需要進行設置:

  • required_score(評價閾值):設定該閾值通常情況下需要根據管理員的長期經驗。閾值越低,就會有更少的郵件通過,因而將正常郵件誤報為垃圾郵件的概率越高;閾值越高,則有可能將更多的垃圾郵件漏報為正常郵件,通常的默認值為 5。
  • Rewrite header Subjects(重寫消息主題):通過這個選項,用戶可以配置 SpamAssassin 用你選擇的任何對象來編輯電子郵件的主題行。默認值設置為:[SPAM]。
  • bayes_auto_learn(使用自動學習):SpamAssassin 可以通過分析具有一定評價的消息,去自動化地整理其 Bayes(貝葉斯)數據庫,這個評價強烈地顯示了消息是垃圾還是非垃圾消息。
  • Enable or disable network checks(使用網絡檢查和檢驗):選擇是否使用將消息檢查和(Checksum)與已知的垃圾郵件相比較的服務:這些服務有:Vipul's Razor 2.x、 DCC、 Pyzor 等,不過只有當每種服務的客戶端軟件安裝時這些服務才能正常工作。( 即通過 use_razor2, use_dcc, use_pyzor 進行 )。另外,該選項中還包括了 Enable RBL Checks(啟用 RBL 檢查),即選擇 SpamAssassin 是否應使用 RBLS(DNS 黑名單)。這有助于檢測難于檢測的垃圾信息,但需要消耗一些時間、網絡帶寬以及一個可用的 DNS 服務器。
  • Languages(語言):最后兩種配置是關于語言的,第一個是哪些語言應檢查,默認選項是檢查所有的語言,建議不要修改。

在成功配置好 SpamAssassin 后,需要啟動 SpamAssassin 應用程序。要想運行 SpamAssassin,必須以根用戶身份運行如下的命令:

 #/etc/rc.d/init.d/spamassassin start 

配置與 sendmail 協同工作

現在 SpamAssassin 已經啟動并正常運行,現在需要設置它與郵件傳輸代理(Mail Delivery Agent)一起工作。本節介紹它與 Sendmail 協同工作的設置,因為 Sendmail 是在 Linux 環境中應用最廣泛的郵件傳輸代理。

用戶需要編輯 /etc/mail/spamassassin/spamc.cf 文件,并增加如下內容:

:0fw 
 /usr/bin/spamc 

現在 Sendmail 被設置為使用 SpamAssassin 來評價和過濾進入的垃圾郵件。

運行 SpamAssasin

隨著 spamd 的運行,向 spamc 發送一個字符串可以查看其工作原理:

 $ echo "hi there" | spamc 
 X-Spam-Checker-Version: SpamAssassin 3.3.2-r929478 (2010-03-31) on sobell.com 
 X-Spam-Flag: YES 
 X-Spam-Level: ****** 
 X-Spam-Status: Yes, score=6.9 required=5.0 tests=EMPTY_MESSAGE,MISSING_DATE, 
 MISSING_HEADERS,MISSING_MID,MISSING_SUBJECT,NO_HEADERS_MESSAGE,NO_RECEIVED, 
 NO_RELAYS autolearn=no version=3.3.2-r929478 
 X-Spam-Report: 
 * -0.0 NO_RELAYS Informational: message was not relayed via SMTP 
 * 1.2 MISSING_HEADERS Missing To: header 
 * 0.1 MISSING_MID Missing Message-Id: header 
 * 1.8 MISSING_SUBJECT Missing Subject: header 
 * 2.3 EMPTY_MESSAGE Message appears to have no textual parts and no 
 * Subject: text 
 * -0.0 NO_RECEIVED Informational: message has no Received headers 
 * 1.4 MISSING_DATE Missing Date: header 
 * 0.0 NO_HEADERS_MESSAGE Message appears to be missing most RFC-822 
 * headers 
 hi there 
 Subject: [SPAM] 
 X-Spam-Prev-Subject: (nonexistent) 

它首先會顯示 Yes,即認定該郵件是垃圾郵件。SpamAssassin 使用評級系統,給一封電子郵件分配一個匹配命中數。如果該電子郵件收到的命中數超過所需的數量(默認為 5.0),SpamAssassin 則把它標記為垃圾郵件。字符串失敗的原因是多方面的,都會在此狀態行上列舉。

以下列表是由 SpamAssassin 處理的一封真實垃圾郵件。它收到了 24.5 個命中,這幾乎肯定是垃圾郵件。

 X-Spam-Status: Yes, hits=24.5 required=5.0 
 tests=DATE_IN_FUTURE_06_12,INVALID_DATE_TZ_ABSURD, 
 MSGID_OE_SPAM_4ZERO,MSGID_OUTLOOK_TIME, 
 MSGID_SPAMSIGN_ZEROES,RCVD_IN_DSBL,RCVD_IN_NJABL, 
 RCVD_IN_UNCONFIRMED_DSBL,REMOVE_PAGE,VACATION_SCAM, 
 X_NJABL_OPEN_PROXY 
 version=2.55 

 X-Spam-Level: ************************ 
 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) 
 X-Spam-Report: This mail is probably spam. The original message has been attached 
 along with this report, so you can recognize or block similar unwanted 
 mail in future. See http://spamassassin.org/tag/ for more details. 
 Content preview: Paradise SEX Island Awaits! Tropical 1 week vacations 
 where anything goes! We have lots of WOMEN, SEX, ALCOHOL, ETC! Every 
 man's dream awaits on this island of pleasure. [...] 
 Content analysis details: (24.50 points, 5 required) 
 MSGID_SPAMSIGN_ZEROES (4.3 points) Message-Id generated by spam tool (zeroes variant) 
 INVALID_DATE_TZ_ABSURD (4.3 points) Invalid Date: header (timezone does not exist) 
 MSGID_OE_SPAM_4ZERO (3.5 points) Message-Id generated by spam tool (4-zeroes variant) 
 VACATION_SCAM (1.9 points) BODY: Vacation Offers 
 REMOVE_PAGE (0.3 points) URI: URL of page called "remove"
 MSGID_OUTLOOK_TIME (4.4 points) Message-Id is fake (in Outlook Express format) 
 DATE_IN_FUTURE_06_12 (1.3 points) Date: is 6 to 12 hours after Received: date 
 RCVD_IN_NJABL (0.9 points) RBL: Received via a relay in dnsbl.njabl.org 
 [RBL check: found 94.99.190.200.dnsbl.njabl.org.] 
 RCVD_IN_UNCONFIRMED_DSBL (0.5 points) RBL: Received via a relay in unconfirmed.dsbl.org 
 [RBL check: found 94.99.190.200.unconfirmed.dsbl.org.] 
 X_NJABL_OPEN_PROXY (0.5 points) RBL: NJABL: sender is proxy/relay/formmail/spam-source 
 RCVD_IN_DSBL (2.6 points) RBL: Received via a relay in list.dsbl.org 
 [RBL check: found 211.157.63.200.list.dsbl.org.] 
 X-Spam-Flag: YES 
 Subject: [SPAM] re: statement 

垃圾郵件黑名單

通常情況下,垃圾郵件發送者都會借助某些域和用戶會發送垃圾信息。幸運的是,SpamAssassin 有一個對付已知垃圾郵件制造者的手段。設置黑名單是很簡單的事情。用戶可以向配置文件 etc/mail/spamassain/local.cf 添加黑名單。黑名單的書寫方式如下所示:

 blacklist_from [email protected] 
 blacklist_from *@sampledomain.com 
 blacklist_from *@sampledomain.com 
 blacklist_from *@sampledomain.com 

上面的內容相當明顯地向讀者展示了如何配置黑名單。用戶既可以配置具體的電子郵件地址(如 [email protected]),也可以配置整個域(如 *@sampledomain.com)。另外,為了使用最新的網絡上共享的垃圾郵件過濾信息,還可以從 http://www.sa-blacklist.stearns.org/sa-blacklist/sa-blacklist.current下載最新的黑名單。不過,這個列表相當龐大,且有可能不會非常適合用戶的需要,因此在下載此列表并添加到用戶的黑名單時還需要進行細致的過濾和篩選。


總結

本文詳細介紹了 Postfix 的安全防護實戰,以及如何進行企業垃圾郵件防范。至此為止,本系列的 2 篇文章從介紹企業電子郵件面臨的安全威脅、原理出發,通過大量的配置和實戰示例,詳細講述了企業如何對 3 種主流的開源電子郵件系統進行安全加固和配置,以及如何應用 SpamAssassin 進行垃圾郵件防范和治理,希望廣大讀者能從中受益,并應用到日常的信息安全工作和系統管理工作中。


參考資料

學習


 

關于作者

李洋,博士,現任某大型金融公司信息安全顧問,多年來一直從事信息安全方面的研發和管理工作,具有豐富的互聯網、電信網和金融行業信息安全管理、咨詢和研發經驗。目前關注開源系統安全、云安全、虛擬化安全等。

相關文章 熱門文章
  • Win8系統Metro應用切換方法
  • Exchange 2013部署系列之(十)信息權限保護RMS和Exchange 2013的整合
  • Exchange 2013部署系列之(九) POP、IMAP設置及OWA IIS重定向
  • Exchange 2013部署系列之(八) 郵箱、通訊組創建及規劃
  • Exchange 2013部署系列之(七) 配置SSL多域名證書
  • Exchange Server 2013申請證書
  • Exchange 2013部署之配置郵件流和客戶端訪問(六)
  • Exchange 2013部署之NLB負載均衡(五)
  • Exchange 2013部署之DAG配置(四)
  • Exchange 2013部署之分角色部署(三)
  • Exchange 2013部署之先決條件(二)
  • Exchange 2013部署之系統要求(一)
  • 郵箱密碼破解EmailCrack使用
  • 電子郵件安全漏洞大曝光--流行客戶端軟件之痛
  • Webmail安全問題莫忽視
  • 破解電子郵件
  • 用MailSpy攔截局域網郵件
  • 您的電子郵件簽名了嗎?
  • 加密你的電子郵件系統
  • 建立高可擴展的web郵件系統
  • 偷窺Hotmail用戶郵件三部
  • Webmail攻防實戰
  • 電子郵箱及IE安全設置指南
  • 郵件存儲備份五種考慮
  • 自由廣告區
     
    最新軟件下載
  • Exchange Server 2013 Cumulative upd...
  • Acronis Disk Director 10
  • WinWebMail Server 3.8.5.1 標準版
  • WinWebMail Server 3.8.5.1 企業版
  • ORF Fusion 5.0 反垃圾郵件軟件正式版
  • MDaemon Server 簡體中文版
  • Exchange Server 2010 Service Pack 3
  • WinWebMail Server 3.8.3.3 標準版本
  • WinWebMail Server 3.8.3.3 &nbs...
  • WinWebMail Server 3.8.2.1 標準版
  • WinWebMail Server 3.8.2.1 企業版
  • Acronis Disk Director Server 10 正式..
  • 今日郵件技術文章
  • Win8系統Metro應用切換方法
  • Exchange 2013部署系列之(十)信息權限...
  • Exchange 2013部署系列之(九) POP、IM...
  • Exchange 2013部署系列之(八) 郵箱、通..
  • Exchange 2013部署系列之(七) 配置SSL...
  • Exchange Server 2013申請證書
  • Exchange 2013部署之配置郵件流和客戶...
  • Exchange 2013部署之NLB負載均衡(五)
  • Exchange 2013部署之DAG配置(四)
  • Exchange 2013部署之分角色部署(三)
  • Exchange 2013部署之先決條件(二)
  • Exchange 2013部署之系統要求(一)
  • 最新專題
  • Windows Server 2012技術專題
  • Windows 8 技術專題
  • Exchange Server 2013技術專題
  • Exchange 2003升級到Exchange 2010
  • 鳥哥的Linux私房菜之Mail服務器
  • Exchange Server 2010技術專題
  • Windows 7 技術專題
  • Sendmail 郵件系統配置
  • 組建Exchange 2003郵件系統
  • Windows Server 2008 專題
  • ORF 反垃圾郵件系統
  • Exchange Server 2007 專題
  • 分類導航
    郵件新聞資訊:
    IT業界 | 郵件服務器 | 郵件趣聞 | 移動電郵
    電子郵箱 | 反垃圾郵件|郵件客戶端|網絡安全
    行業數據 | 郵件人物 | 網站公告 | 行業法規
    網絡技術:
    郵件原理 | 網絡協議 | 網絡管理 | 傳輸介質
    線路接入 | 路由接口 | 郵件存儲 | 華為3Com
    CISCO技術 | 網絡與服務器硬件
    操作系統:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系統
    郵件服務器:
    程序與開發 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛郵件系統 | 其它 |
    反垃圾郵件:
    綜述| 客戶端反垃圾郵件|服務器端反垃圾郵件
    郵件客戶端軟件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鳥 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    電子郵箱: 個人郵箱 | 企業郵箱 |Gmail
    移動電子郵件:服務器 | 客戶端 | 技術前沿
    郵件網絡安全:
    軟件漏洞 | 安全知識 | 病毒公告 |防火墻
    攻防技術 | 病毒查殺| ISA | 數字簽名
    郵件營銷:
    Email營銷 | 網絡營銷 | 營銷技巧 |營銷案例
    郵件人才:招聘 | 職場 | 培訓 | 指南 | 職場
    解決方案:
    郵件系統|反垃圾郵件 |安全 |移動電郵 |招標
    產品評測:
    郵件系統 |反垃圾郵件 |郵箱 |安全 |客戶端
    廣告聯系 | 合作聯系 | 關于我們 | 聯系我們
    版權所有:郵件技術資訊網©2003-2016 www.hiskyi.tw, All Rights Reserved
    www.hiskyi.tw Web Team   粵ICP備09060656號
    江苏e球彩中奖金额多少