将之前處理過關于SPF比較有代表性的問題分享給大家。
環境描述如下:
公司AD域名為contoso.com,公網SMTP域名也為contoso.com。使用的郵件伺服器為Exchange 2013 CU10,并使用Exchange Edge邊緣伺服器來實作垃圾郵件過濾。為了防止其他郵件系統仿冒域名contoso.com給其他域名發送郵件。在公網DNS解析區域contoso.com中添加了SPF記錄,記錄内容為: v=spf1 MX A ip4:1.1.1.1 include:spf.contoso.com ~all。
問題現象:
2016年某天,IT人員收到一封發件人為[email protected]的垃圾郵件,Exchange管理者查詢本地組織中不存在[email protected]這個郵件位址,很顯然這個位址[email protected]是仿冒位址。通過檢視郵件頭發現發送仿冒郵件的公網IP為2.2.2.2,這個IP不是本組織的公網IP。為什麼添加了SPF和啟用了Exchange Send ID後仍然能夠收到仿冒郵件?(關于SPF和Send ID可以參考我的前次部落格内容:
問題分析過程:
在我之前寫的部落格中已經對SPF做過講解,如果要阻止仿冒郵件可以使用SPF記錄來實作,但是必須具備一定的條件。于是乎我進行了如下的檢查。
1、驗證域名contoso.com的SPF記錄添加是否存在問題,并且通過第三方網站去模拟仿冒郵件的過程,均是正常的。
2、檢查目前Exchange組織的Send ID功能是否啟用,經過檢查已經啟用。
3、檢查Exchange邊緣伺服器的Send ID功能是否正常工作,通過指令Test-SenderId -IPAddress 3.3.3.3 -PurportedResponsibleDomain 163.com ,傳回的結果是正常。當我使用Test-SenderId -IPAddress 1.1.1.1 -PurportedResponsibleDomain contoso.com 傳回的結果是找不到SPF記錄。
4、于是我懷疑是Exchange邊緣伺服器的DNS解析問題,檢查邊緣伺服器的DNS發現,邊緣伺服器使用的DNS為内部AD的IP,而内部contoso.com解析區域中沒有添加SPF記錄。是以會出現當邊緣伺服器接收到郵件後,通過DNS去查找contoso.com的SPF清單時無法找到,進而不能阻止仿冒域名contoso.com的郵件。
那麼問題原因找到,我們有兩種解決方法:1)、将邊緣伺服器的DNS更改為公網DNS。2)、在内部DNS解析區域contoso.com添加和公網一緻的SPF記錄。
本文轉自 jialt 51CTO部落格,原文連結:http://blog.51cto.com/jialt/1775999