DNS中的SPF Text
在DNS中設定SPF紀錄,主要的目的就是避免別人冒用你的網域名稱寄信。寄件者原則架構是一種用於協助防止電子郵件詐騙的記錄。它可讓您在單一簡易 TXT 記錄中指定用來傳送郵件的所有 IP 位址,並且告知接收伺服器只允許您所列出的外寄伺服器。
由於同一個網域名稱可能透過多台的 mail server 或是ISP寄信,所以只靠反解的方式很薄弱。因此就有網域驗證的觀念出來了。包括 domain key 和 SPF 這兩大類,都必須在網域名稱的DNS記錄中加入一筆記錄。
透過 SPF (或是 Sender ID) 可以宣告這個網域名稱的信件可能透過哪幾個 IP或網址寄出,其他的就是非法的。
下面是 TXT 記錄的範例,其中包含每個部分的定義。
TXT 的格式
v=spf1 +a +mx ip4:(您可能也會從 IP 傳送的任何伺服器) include:spf.messaging.microsoft.com ~all
V=spf1 這是所使用的 SPF 版本。
MX 這表示您也會從 MX 記錄上所列的所有項目傳送。
a 表示您也會從網域目前IP傳送。
IP4 這代表您也允許的任何伺服器 IP (如果您已加入 FOPE SPF 記錄而且只透過 FOPE 傳送,就不需要列出 FOPE 伺服器)。
Include 該標記告訴伺服器,有哪些協力廠商組織被授權代表該網域發送電子郵件。
all all 具有三個可用的參數:
-:告訴伺服器,SPF 記錄中未列出的位址沒有被授權發送電子郵件並應被拒絕;標示為 Hard Fail。
~:表示未列出的電子郵件將被標記為不安全郵件或垃圾郵件,但仍會被接受;但標示為 Soft Fail。
?:指出還有其他可能傳送自網域的伺服器。
外部DNS 的Text裡加入設定
v=spf1 +a +mx ip4:192.0.2.0 ip4:192.0.2.1 include:examplesender.email ~all
若要查詢設定是否成功
至cmd下
C:\>nslookup
> server 168.95.1.1 <--轉換到hinet的DNS做查詢
預設伺服器: dns.hinet.net
Address: 168.95.1.1
> set type=txt
> xxx.com
伺服器: dns.hinet.net
Address: 168.95.1.1
xxx.com text =
"v=spf1 ip4=192.0.2.0 ip4=192.0.2.1 include:examplesender.email -all"
或是線上驗證
要確保 SPF 記錄有效,需要注意如下幾點
- 每個網域不能關聯多條 SPF 記錄。
- 記錄必須以all部分結束,或包含一個redirect:部分(表示該 SPF 記錄由另一個網域託管)。
- SPF 記錄不能包含大寫字母。
參考資料:
http://technet.microsoft.com/zh-tw/library/ff714972.aspx
Sender ID Framework SPF Record Wizard
Good Job