電子郵件最大的問題之一始終是它很容易受到欺騙,郵件客戶端和站群伺服器信任使用者提供的用於識別發件人的輸入。垃圾郵件傳送者經常濫用這一特性來傳送電子郵件,讓人誤以為是它來自一個信譽良好的來源。因此需要一個站群解決方案來確保郵件只被合法傳送方接受,以減少垃圾郵件傳送的數量,並使垃圾郵件傳送者難以把自己的電子郵件偽裝成來自一個聲譽良好的域的郵件。
SPF 站群解決方案
這就是 SPF(即傳送方策略框架)的用處所在。透過該方法,域的所有者可以使用特殊的 DNS 記錄來指定哪些站群伺服器應代表域傳送電子郵件。接收電子郵件站群伺服器將檢查電子郵件所來自的域的 SPF 記錄;如果傳送站群伺服器與任何記錄不匹配,則電子郵件將被丟棄,如果匹配,則將被髮送。如果域名沒有 SPF 記錄,有些站群伺服器可能會傳送郵件,有些站群伺服器會將其標記為垃圾郵件,而另一些站群伺服器可能根據其配置將其丟棄。
現在已經建立了 SPF 的工作原理,讓看看如何為一個特定的域建立一個 SPF 記錄。 SPF 記錄是一個特殊格式的 TXT 記錄,它指定了可以和不能為域傳送郵件的任何站群伺服器的詳細資訊。下面是一個使用 SPF 記錄的簡單示例,例如.com:
example.com. 60 IN TXT “v=spf1 -all”
為了顯示 DNS 的 TXT 記錄是針對 SPF 的,該記錄以 “v=spf1” 開頭。這之後是規則,在哪裡可以傳送電子郵件,並且不能用空格分隔傳送電子郵件。在本例中,只有一個規則是 “-all”,它告訴讀取記錄的郵件站群伺服器,不應該向該域傳送郵件。
瞭解 SPF 規則
與其他任何事情一樣,規則需要以一種特定的方式進行格式化才能被理解。
以下是選項列表:
all:表示可以與任何域匹配。
a:表示可以與其 DNS A 或 AAAA 記錄與傳送 IP 匹配的任何域匹配。
MX:表示可以與其 DNS MX 記錄與傳送 IP 匹配的任何域匹配。
PTR:表示記錄中的域是否與傳送方的域匹配
EXISTS:表示如果域名解析為任何地址,則存在匹配項。
INCLUDE:表示引用另一個域 SPF 記錄並匹配與該記錄的設定相匹配的任何域。
IP4:表示可以與匹配特定的 IPv4 地址或 CIDR 表示法中指定的地址範圍,例如 IP4:xxx.xxx.xxx/xx 。
IP6:表示可以與與上述類似的特定 IPv6 地址或範圍匹配。
還有一些修飾符規定了如何處理這些匹配項。
+:收到的與此規則匹配的郵件應透過;這是預設操作,因此+是可選的。
–:收到的符合此規則的郵件應被拒絕。
~:收到的符合此規則的郵件應該透過,但要標記。
?:收到的符合此規則的郵件應該沒有策略集(將被處理為沒有 SPF 的域)。
在實際使用中,唯一可能使用的修飾符是–。
現在讓來看一個簡單的 SPF 記錄示例,它可以作為大多數域的基礎。
v=spf1 a mx -all
在這種情況下,規則允許接收來自站群伺服器的電子郵件,其中域的 A 或 AAAA 記錄與傳送站群伺服器的 IP 匹配,或者傳送郵件的站群伺服器位於域的 MX 記錄中。在所有其他情況下,電子郵件都會被拒絕。站群伺服器也傳送電子郵件,如狀態和監視電子郵件,如果發現被拒絕,也可以在 SPF 記錄中單獨指定它們的 IP,以確保它們被送達。例如:
v=spf1 a mx ip:192.168.1.23 -all
這差不多就是它的全部功能——對於最初看起來很混亂的東西來說,這相當簡單。使用者應該能夠把需要的 SPF 記錄放在域名上,並避免任何垃圾郵件。有興趣的朋友可以參考閱讀 怎樣搭建一個 Linux 郵件站群伺服器。