電子郵件發送容易被判為垃圾信件的處理,使用 SPF 驗證電子郵件
DNS Sender Policy Freamwork(SPF)
近日由 15 家國際企業所組成的 DMARC.org 打算要共同推動防堵釣魚郵件的機制,DMARC(Domain-based Message Authentication, Reporting & Conformance)主要只是希望推動每個 DNS 的 SPF 或是 DKIM 的設置,來防止寄件者被冒用的問題,但目前並無強制規定一定要使用 SPF 或 DKIM,而過內郵件伺服器有開啟檢查機制的更是少數,此標準協定是否能夠見效,有待觀察。
DNS SPF 的運作機制就是在DNS伺服器中加入 txt 的紀錄,此txt紀錄者這個網域名稱能的所有郵件伺服器,相反地,只有這些紀錄中的郵件伺服器可以寄送該網域名稱的郵件,所以能夠提供一個冒用的檢查方法。
SPF主要的功能是讓收信端郵件伺服器根據來信中寄件者網域資料主動去向寄信端所屬的DNS伺服器核對其SPF紀錄。收釁端郵件伺服器再依照比對結果做接收與否的決定。
寄件者原則架構是一種用於協助防止電子郵件詐騙的記錄。它可讓您在單一簡易 TXT 記錄中指定用來傳送郵件的所有 IP 位址,並且告知接收伺服器只允許您所列出的外寄伺服器。
雖然SPF不能完全保證別人盜用你的寄件者身份,主要還是依賴收件端郵件伺服器的設定,但有此設定,可提高避免您的郵件伺服器寄出的郵件被誤判為垃圾信件
SPF 記錄中的參數請參照下面的解說
SPF 記錄中的參數請參照下面的解說:
1. a:比對 dns 中的 a 紀錄,若沒有指定哪個網域名,則以目前的的網域為主。
2. mx:比對 dns 中的 mx 紀錄,若沒有指定哪個網域名,則以目前的網域為主。
3. ptr:比對 dns 中的 ptr 紀錄,若沒有指定哪個網域名,則以目前的網域為主。
4. ~all:參數若比對失敗,信件仍能寄進來,但該信件標題會加註 'SPF-Failure' ,並置於垃圾信件資料夾中。
其中的 v=spf1 是表示 spf 所使用的版本
其中的符號 + – 之外還有 ~ 跟? 分別的意思為
“+“:Pass 代表允許,為預設的屬性
“–“:Fail 代表拒絕,-all 表示除了有條列出來的主機允許其他都拒絕,標式為 Hard Fail 不會接受該信件
“~“:SoftFail 代表拒絕,~all 表示除了有條列出來的主機允許其他都拒絕,標式為 Soft Fail 還是接收了該信件
“?“:Neutral 代表可能還有其他網域,收件主機還是會接收該信件
假設你的網域名稱為 domain.com的範例說明
你單位的 mail 主機有 123.123.123.123 跟 456.456.456.456 這時你的 spf 可以設定為
“v=spf1 ipv4:123.123.123.123 ipv4:456.456.456.456 -all" 表示只允許這兩個IP可以用這個網域來送出信件
“v=spf1 a:domain.com a:domain.com -all“
假設你的使用一個 class-C 且都會透過這個網域名稱發出信件,那麼可以用
“v=spf1 ipv4:123.123.123.123/24 -all“
“v=spf1 a:domain.com/24 -all“
如果沒有保握,或者實際情形還是可能有其他主機透過這個網域送出信件,那麼保守一點,使用「~all」 而不要 -all
參考更多資訊:
http://www.zytrax.com/books/dns/ch9/spf.html
http://dkimcore.org/tools/keycheck.html