您好,登錄后才能下訂單哦!
郵件安全中的SPF是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
什么是SPF
就是Sender Policy Framework。SPF可以防止別人偽造你來發郵件,是一個反偽造性郵件的解決方案。當你定義了你的domain name的SPF記錄之后,接收郵件方會根據你的SPF記錄來確定連接過來的IP地址是否被包含在SPF記錄里面,如果在,則認為是一封正確的郵件,否則 則認為是一封偽造的郵件。
下面為SPF的詳細介紹,
一 句型
在一條SPF記錄中,按照排列的先后順序,對所給出的機制進行驗證.如果在SPF記錄中,沒有機制或修改符,默認結果是中性(Neutral);如果域沒有SPF記錄,結果是:”無”(None);如果在DNS解析期間,有一個臨時錯誤,會報”臨時錯誤”(TempError)(以前的規劃中稱作”錯誤”(error));如果SPF記錄句型錯誤,比如寫法錯誤或者使用了未知句型,會報”永久錯誤”(PermError)(以前稱作”unknown”)
1 機制
1.1 機制表示
1.1.1 all
這個機制總是匹配的,通常用在記錄的結尾.例:
“v=spf1 mx –all” 允許所有該域的MX郵件服務器發送郵件,禁止所有其他的.
“v=spf1 –all” 該域根本不能發送郵件
“v=spf1 +all” 任何服務器都可以發送郵件
1.1.2 ip4
“v=spf1 ip4:192.168.0.1/16 –all” 允許192.168.0.1到192.168.255.255的服務器發送郵件
“v=spf1 ip4:192.168.0.1 –all” 允許192.168.0.1發送郵件,與“v=spf1 ip4:192.168.0.1/32 –all”同意
1.1.3 ip6
單個IP,于ip4不同,/128為默認前綴 例:
"v=spf1 ip6:1080::8:800:200C:417A/96 -all"
允許1080::8:800:0000:0000 和 1080::8:800:FFFF:FFFF之間的主機發送
"v=spf1 ip6:1080::8:800:68.0.3.1/96 -all"
允許 1080::8:800:0000:0000 和1080::8:800:FFFF:FFFF之間的主機發送
1.1.4 a
例:假設當前域為example.com
"v=spf1 a -all" 當前域被使用
"v=spf1 a:example.com -all"當前域被使用
Equivalent if the current-domain is example.com.
"v=spf1 a:mailers.example.com -all" 指定mailers.example.com的主機IP可以外發郵件
"v=spf1 a/24 a:offsite.example.com/24 -all" 如果example.com解析到192.0.2.1,那么全部的C類地址192.0.2.0/24將作為可外發 郵件的IP地址;同樣,如果offsite.example.com有多個A記錄地址,每一個IP地址也會被擴展到CIDR子網,作為可外發郵件IP地址.
1.1.5 mx
所有域的MX記錄對應的A記錄,按照MX記錄的優先級進行驗證.如果發送IP在這些記錄中,則機制匹配.如果域未指定,默認為當前域.
A記錄需要精確匹配發送郵件的IP地址.如果有CIDR前綴,則需要逐個對應IP地址驗證.
例:
v=spf1 mx mx:deferrals.domain.com -all"
Perhaps a domain sends mail through its MX servers plus another set of servers whose job is to retry mail for deferring domains.
也許一個域可以通過他的MX服務器發送郵件,而另外也可以通過deferrals.domain.com的MX服務器發送郵件.
"v=spf1 mx/24 mx:offsite.domain.com/24 -all"
也許一個域的MX服務器在一個IP接收郵件,而用臨近的另一IP發送郵件.
1.1.7 prt
發送IP的PTR記錄至少有一個和給定域相匹配.盡量避免使用這種機制,因耗費大量的DNS查詢
例子:
"v=spf1 ptr -all"
"v=spf1 ptr:otherdomain.com -all"
1.1.8 exists
對被提供的域進行A記錄查詢,如果有結果,則匹配.如果結果是”-“,會被當作127.0.0.2對待.
在下面的例子中,發件IP地址為1.2.3.4,當前域為example.com
"v=spf1 exists:example.net -all"
如果example.net不能解析,結果失敗.如果可以解析.機制匹配.
1.1.10 include
句型:include:<domain>
指定的域被查詢后匹配.如果查詢無匹配或者有錯誤,接著開始下一個機制處理.警告:如果指定域不是合法有效的SPF記錄,返回”永久性錯誤”結果.某些郵件接收者會基于此錯誤,拒絕接受郵件.
例:
在下面的例子中,發信IP是1.2.3.4,當前域是example.com
“v=spf1 include:example.net –all”
如果example.net沒有SPF記錄,結果是”永久錯誤”(PermError)
假設example.net的SPF記錄是”v=spf1 a –all”
查詢exapmle.net的A記錄,如果匹配1.2.3.4,結果是”通過”(Pass);如果不匹配,,則include整體匹配失敗,后面的-all將不再驗證,最后總的結果還是”失敗”(Fail).
這個機制會涉及信任關系,可能會有越權行為,可能被人假冒.因此可以設置為中性,在include前加上標識符?
“v=spf1 ?include:example.net –all”
該機制一般不宜選擇.
1.2 標識符
作為機制的前綴,表明機制的狀態.機制的默認標識符為”+”
"+" Pass (通過)
"-" Fail (失敗)
"~" SoftFail (軟失敗)
"?" Neutral (中性)
2修改符
在一個SPF記錄中,每個修改符只能使用一次,不能重復使用.未知修改符將會在驗證時忽略。
1.2.1 redirect
句型: redirect=<domain>
將會用指定域代替當前域
在下面的例子里:當前域為example.com,發信IP是1.2.3.4
“v=spf1 redirect=example.net”
如果example.net沒有SPF記錄,返回”unknown”的錯誤
假設example.net的SPF記錄是”v=spf1 a –all”
查詢example.net的A記錄,如果匹配1.2.3.4,則”通過”(Pass);如果不匹配,該行為失敗,接著開始執行-all機制.
1.2.2 exp
句型: exp=<domain>
提供解釋性的語句.如果SMTP接收者拒絕一個信息,它可以包含一個返回給發信者的解釋信息.SPF記錄里可以包含一個解釋字符串給發送者,告之相關的錯誤信息或需要訪問的幫助頁面等.
二 處理過程
三 錯誤代碼
驗證SPF記錄的結果只能有如下幾在種:
結果 | 解釋 | 可做行為 |
Pass | SPF記錄指定,主機被允許發送 | 接受 |
Fail | SPF記錄指定,主機不被允許發送 | 拒絕 |
SoftFail | SPF記錄指定,主機不被允許發送,但可以再發送 | 接受但做標記 |
Neutral | SPF記錄詳盡,但不能確認其有效性 | 接受 |
None | 無SPF記錄或SPF記錄驗證無結果 | 接受 |
PermError | 永久錯誤(例如不正確的格式記錄) | 未指明 |
TempError | 臨時錯誤發生 | 接受或拒絕 |
設置SPF記錄
SPF記錄類似類似這樣:
v=spf1 a mx mx:mail.jefflei.com ip4:202.96.88.88 ~all
這條SPF記錄具體的說明了允許發送 @yourdomain.com 的IP地址是:
a (這個a是指 yourdomain.com 解析出來的IP地址,若沒有配置應取消)
mx (yourdomain.com 對應的mx,即 mail.yourdomain.com的A記錄所對應的ip)
mx:mail.jefflei.com (如果沒有配置過mail.jefflei.com這條MX記錄也應取消)
ip4:202.96.88.88 (直接就是 202.152.186.85 這個IP地址)
其他還有些語法如下:
- Fail, 表示沒有其他任何匹配發生
~ 代表軟失敗,通常用于測試中
? 代表忽略
如果外發的ip不止一個,那么必須要包含多個
可以通過這個網站的向導自動生成SPF記錄:http://www.openspf.org/ ,Godaddy域名解析面板的TXT記錄也提供了設置SPF記錄的向導,設置很方便。
檢測SPF記錄設置是否正確
發信到 check-auth@verifier.port25.com ,如果收到的信息是 :SPF check: pass 就說明設置成功了。
查看域名的SPF記錄
Windows下,開始菜單—>運行—>輸入cmd ,然后回車,在命令行下輸入:
nslookup -type=txt 域名
就可以看到域名設置的TXT記錄了。
Unix操作系統下用:
dig -t txt 域名
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。