如何設置DNS的SPF記錄
Introduction
SPF的完整意思為 "Sender Policy Framework"。翻譯過來就是發送方策略框架,是一項跟 DNS 相關的技術,它的內容寫在 DNS 的 txt 類型記錄里面,關於更詳細的信息請參考 RFC4408: http://www.ietf.org/rfc/rfc4408.txt
SPF 的原理是使用電子郵件的頭部信息中的 'Return Path' 或 'Mail From' 這兩個郵件頭里的域名來結合真正提供這個郵件的服務商 DNS 里面的記錄去驗證發送郵件服務器是否是冒充行為。
SPF 的官方網站是: http://www.openspf.org/
How it works
當信件發送到一個 MTA 后,這個 MTA 會檢查郵件的郵件頭,然后進行 DNS 查詢,如果認為這個域的 IP 地址不是所定義的那就證明他是一個假冒的,這時候就會把郵件退回去。
How to check SPF record
如何查詢某個域名是否開啟SPF,可以使用以下命令:
# dig -t txt 域名(不加www)
只需要去查詢 TXT 類型的 DNS 記錄即可。
SPF variables
v=spf1 / 表示 spf1 的版本
- Fail, 表示沒有其他任何匹配發生
~ 代表軟失敗,通常用於測試中
? 代表忽略
IP4 代表IPv4進行驗證
IP6 代表IPv6進行驗證
all 代表結束
舉例說明:
* 163 的 SPF 記錄:
163.com. 18000 IN TXT "v=spf1 ip4:220.181.12.0/22 ip4:202.108.5.64/26 ip4:202.108.5.128/25 -all"
如果不符合以上發信地址,但是發件人卻是 'xxx@163.com',那么這樣的郵件一定是假冒的。郵件應該一律退回。
sohu.com 的 SPF 記錄:
sohu.com. 600 IN TXT "v=spf1 ip4:61.135.130.0/23 ip4:61.135.132.0/23 ip4:61.135.134.0/23 ip4:61.135.145.0/23 ip4:61.135.150.0/23 ip4:220.181.26.0/24 ip4:222.28.152.128/25 ip4:218.206.87.0/25 ip4:221.236.12.128 ip4:203.184.141.0/24 ip4:61.152.234.0/24 ~all"