什么是SPF,SPF技術(shù)淺析
作者:域名頻道來源:域名頻道發(fā)布時(shí)間:2010-10-12瀏覽:
什么是SPF記錄?
這里的SPF是指Sender Policy Framework。翻譯過來就是發(fā)信者策略架構(gòu),比較拗口,通常都直接稱為SPF。在域名管理系統(tǒng)中對域名做一條以SPF格式為準(zhǔn)的txt記錄即為SPF記錄。
這里的SPF是指Sender Policy Framework。翻譯過來就是發(fā)信者策略架構(gòu),比較拗口,通常都直接稱為SPF。在域名管理系統(tǒng)中對域名做一條以SPF格式為準(zhǔn)的txt記錄即為SPF記錄。
SPF記錄有什么用?
SPF是為了防范垃圾郵件而提出來的一種DNS記錄類型,它是一種TXT類型的記錄,它用于登記某個(gè)域名擁有的用來外發(fā)郵件的所有IP地址。例如: dig TXT domain.com
domain.com. 27970 IN TXT "v=spf1 ip4:218.16.118.186 -all"
按照SPF的格式在DNS記錄中增加一條TXT類型的記錄,將提高該域名的信譽(yù)度,同時(shí)可以防止垃圾郵件偽造該域的發(fā)件人發(fā)送垃圾郵件。
SPF是跟DNS相關(guān)的一項(xiàng)技術(shù),它的內(nèi)容寫在DNS的txt類型的記錄里面。mx記錄的作用是給寄信者指明某個(gè)域名的郵件服務(wù)器有哪些。SPF的作用跟mx相反,它向收信者表明,哪些郵件服務(wù)器是經(jīng)過某個(gè)域名認(rèn)可會(huì)發(fā)送郵件的。
由定義可以看出,SPF的作用主要是反垃圾郵件,主要針對那些發(fā)信人偽造域名的垃圾郵件。
SPF是為了防范垃圾郵件而提出來的一種DNS記錄類型,它是一種TXT類型的記錄,它用于登記某個(gè)域名擁有的用來外發(fā)郵件的所有IP地址。例如: dig TXT domain.com
domain.com. 27970 IN TXT "v=spf1 ip4:218.16.118.186 -all"
按照SPF的格式在DNS記錄中增加一條TXT類型的記錄,將提高該域名的信譽(yù)度,同時(shí)可以防止垃圾郵件偽造該域的發(fā)件人發(fā)送垃圾郵件。
SPF是跟DNS相關(guān)的一項(xiàng)技術(shù),它的內(nèi)容寫在DNS的txt類型的記錄里面。mx記錄的作用是給寄信者指明某個(gè)域名的郵件
由定義可以看出,SPF的作用主要是反垃圾郵件,主要針對那些發(fā)信人偽造域名的垃圾郵件。
如何查詢SPF記錄?
當(dāng)前市場上很多郵件系統(tǒng)和供應(yīng)商都已經(jīng)開始支持SPF,比如163.com,那么該如何得到163.com的SPF值呢?在CMD環(huán)境中,鍵入:
nslookup
set type=txt
163.com
就會(huì)得到以下的結(jié)果:
163.com text =
"v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"
163.com nameserver = ns3.nease.net
163.com nameserver = ns.nease.net
ns.nease.net internet address = 202.106.185.75
ns3.nease.net internet address = 220.181.28.3
其中: "v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"就是163.com的SPF值。
這個(gè)數(shù)據(jù)中說明了163.com有效合法服務(wù)器都有哪些!
當(dāng)前市場上很多郵件系統(tǒng)和供應(yīng)商都已經(jīng)開始支持SPF,比如163.com,那么該如何得到163.com的SPF值呢?在CMD環(huán)境中,鍵入:
nslookup
set type=txt
163.com
就會(huì)得到以下的結(jié)果:
163.com text =
"v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"
163.com nameserver = ns3.nease.net
163.com nameserver = ns.nease.net
ns.nease.net internet address = 202.106.185.75
ns3.nease.net internet address = 220.181.28.3
其中: "v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"就是163.com的SPF值。
這個(gè)數(shù)據(jù)中說明了163.com有效合法
如何設(shè)置SPF記錄?
進(jìn)入域名解析創(chuàng)建一條TXT記錄填寫正確的SPF數(shù)據(jù)就可以生效了。
格式如下:
v=spf1 [[pre] type [ext] ] ... [mod]
每個(gè)參數(shù)的含義如下表所示: 參數(shù) 描述
v=spf1 SPF 的版本。如果使用 Sender ID 的話,這個(gè)字段就應(yīng)該是 v=spf2
pre 定義匹配時(shí)的返回值。
可能的返回值包括: 返回值 描述
+ 缺省值。在測試完成的時(shí)候表示通過。
- 表示測試失敗。這個(gè)值通常是 -all,表示沒有其他任何匹配發(fā)生。
~ 表示軟失敗,通常表示測試沒有完成。
? 表示不置可否。這個(gè)值也通常在測試沒有完成的時(shí)候使用。
type 定義使用的確認(rèn)測試的類型。
可能的值包括: 候選值 描述
include 包含一個(gè)給定的域名的測試
以 include:domain 的形式書寫。
all 終止測試序列。
比如,如果選項(xiàng)是 -all,那么到達(dá)這條記錄也就意味著測試失敗了。但是如果無法確定,可以使用 "?all"來表示,這樣,測試將被接受。
ip4 使用 IPv4 進(jìn)行驗(yàn)證。
這個(gè)可以以 ip4:ipv4 或 ip4:ipv4/cidr 的形式使用。建議使用這個(gè)參數(shù),以減少域名服務(wù)器的負(fù)荷。
ip6 使用 IPv6 進(jìn)行驗(yàn)證。
a 使用一個(gè)域名進(jìn)行驗(yàn)證。
這將引起對域名服務(wù)器進(jìn)行一次 A RR 查詢。
可以按照 a:domain, a:domain/cidr 或 a/cidr 的形式來使用。
mx 使用 DNS MX RR 進(jìn)行驗(yàn)證。
MX RR 定義了收信的 MTA,這可能和發(fā)信的 MTA 是不同的,這種情況基于 mx 的測試將會(huì)失敗。
可以用 mx:domain, mx:domain/cidr 或 mx/cidr 這些形式進(jìn)行 mx 驗(yàn)證。
ptr 使用域名服務(wù)器的 PTR RR 進(jìn)行驗(yàn)證。
這時(shí),SPF 使用 PTR RR 和反向圖進(jìn)行查詢。如果返回的主機(jī)名位于同一個(gè)域名之內(nèi),就驗(yàn)證通過了。
這個(gè)參數(shù)的寫法是 ptr:domain
exist 驗(yàn)證域名的存在性。
可以寫成 exist:domain 的形式。
ext 定義對 type 的可選擴(kuò)展。如果沒有這個(gè)字段,那么僅使用單個(gè)記錄進(jìn)行問詢。
mod 這是最后的類型指示,作為記錄的一個(gè)修正值。
修正值 描述
redirect 重定向查詢,使用給出的域名的 SPF 記錄。
以 redirect=domain 的方式使用。
exp 這條記錄必須是最后一條,允許給出一條定制的失敗消息。
IN TXT "v=spf1 mx -all exp=getlost.example.com"
getlost IN TXT "You are not authorized to send mail for the domain"
進(jìn)入域名解析創(chuàng)建一條TXT記錄填寫正確的SPF數(shù)據(jù)就可以生效了。
格式如下:
v=spf1 [[pre] type [ext] ] ... [mod]
每個(gè)參數(shù)的含義如下表所示: 參數(shù) 描述
v=spf1 SPF 的版本。如果使用 Sender ID 的話,這個(gè)字段就應(yīng)該是 v=spf2
pre 定義匹配時(shí)的返回值。
可能的返回值包括: 返回值 描述
+ 缺省值。在測試完成的時(shí)候表示通過。
- 表示測試失敗。這個(gè)值通常是 -all,表示沒有其他任何匹配發(fā)生。
~ 表示軟失敗,通常表示測試沒有完成。
? 表示不置可否。這個(gè)值也通常在測試沒有完成的時(shí)候使用。
type 定義使用的確認(rèn)測試的類型。
可能的值包括: 候選值 描述
include 包含一個(gè)給定的域名的測試
以 include:domain 的形式書寫。
all 終止測試序列。
比如,如果選項(xiàng)是 -all,那么到達(dá)這條記錄也就意味著測試失敗了。但是如果無法確定,可以使用 "?all"來表示,這樣,測試將被接受。
ip4 使用 IPv4 進(jìn)行驗(yàn)證。
這個(gè)可以以 ip4:ipv4 或 ip4:ipv4/cidr 的形式使用。建議使用這個(gè)參數(shù),以減少域名
ip6 使用 IPv6 進(jìn)行驗(yàn)證。
a 使用一個(gè)域名進(jìn)行驗(yàn)證。
這將引起對域名
可以按照 a:domain, a:domain/cidr 或 a/cidr 的形式來使用。
mx 使用 DNS MX RR 進(jìn)行驗(yàn)證。
MX RR 定義了收信的 MTA,這可能和發(fā)信的 MTA 是不同的,這種情況基于 mx 的測試將會(huì)失敗。
可以用 mx:domain, mx:domain/cidr 或 mx/cidr 這些形式進(jìn)行 mx 驗(yàn)證。
ptr 使用域名
這時(shí),SPF 使用 PTR RR 和反向圖進(jìn)行查詢。如果返回的主機(jī)名位于同一個(gè)域名之內(nèi),就驗(yàn)證通過了。
這個(gè)參數(shù)的寫法是 ptr:domain
exist 驗(yàn)證域名的存在性。
可以寫成 exist:domain 的形式。
ext 定義對 type 的可選擴(kuò)展。如果沒有這個(gè)字段,那么僅使用單個(gè)記錄進(jìn)行問詢。
mod 這是最后的類型指示,作為記錄的一個(gè)修正值。
修正值 描述
redirect 重定向查詢,使用給出的域名的 SPF 記錄。
以 redirect=domain 的方式使用。
exp 這條記錄必須是最后一條,允許給出一條定制的失敗消息。
IN TXT "v=spf1 mx -all exp=getlost.example.com"
getlost IN TXT "You are not authorized to send mail for the domain"