郵件服務器DNS設置-----MX、SPF、DKIM記錄詳解

郵件服務器的DNS設置

DNS記錄,須要你到你的域名託管商那裏進行設置或者你本身管理DNS服務器。很多域名託管商不支持txt記錄或者不支持DKIM記錄,因此你就沒法使用SPF和DKIM的功能。
DNS的修改,須要48小時以上才能生效。
國內的萬網是不支持DKIM,目前新網是支持SPF和DKIM。

1.MX記錄
郵件的MX記錄最好是指向機器A記錄,儘可能不要直接指向IP地址(不符合規範)。
1.1 添加A記錄
mail.example.com 192.168.1.100
1.2 添加MX記錄
example.com mail.example.com
1.3 測試MX記錄
# host exmple.com
example.com mail is handled by 10 mail.example.com.
#nslookup mail.example.com
Name:mail.example.com
Address:192.168.1.100

2.SPF記錄
SPF是指Sender Policy Framework,是爲了防範垃圾郵件而提出來的一種DNS記錄類型,SPF是一種TXT類型的記錄。SPF記錄的本質,就是向收件人宣告:本域名的郵件從清單上所列IP發出的都是合法郵件,並不是冒充的垃圾郵件。設置好SPF是正確設置郵件發送的域名記錄和STMP的很是重要的一步。
例如:
SPF 記錄指向A主機記錄
example.com.           3600    IN      TXT     "v=spf1 mx mx:mail.example.com ~all"
SPF 記錄指向IP地址
example.com.          3600    IN      TXT     "v=spf1 ip4:192.168.1.100 ~all"

2.1 如何查看SPF
Windows下進入DOS模式後用如下命令:
nslookup -type=txt 域名
Unix操做系統下用:
# dig -t txt 域名

2.2 SPF的簡單說明以下:
v=spf1 表示 spf1 的版本
IP4 表明IPv4進行驗證(IP6表明用IPv6進行驗證), 注意 「ip4:」 和「IP」之間是沒有空格的
~all 表明結束

2.3 SPF記錄例釋
咱們看這條SPF:
yourdomain.com "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不止一個,那麼必需要包含多個
v=spf1 ip4:202.96.88.88 ip4:202.96.88.87 ~all

2.4 測試SPF設置結果
設置好 DNS中的SPF記錄後,發送郵件給本身的gmail,而後查看郵件的源文件,應該能看到相似的郵件頭,其中有pass表示設置成功。
Received-SPF: pass (google.com: domain of test@jefflei.com designates
    202.96.88.87 as permitted sender) client-ip=202.96.88.87;
須要注意的是,服務器的IP如有更改,須要同時修改SPF!!!

2.5 利用SPF記錄防止垃圾郵件
在Unix下能夠安裝配置SpamAssassin之類的插件來防止垃圾郵件和釣魚郵件(Phishing)


3.DKIM記錄
DKIM 技術經過在每封電子郵件上增長加密的數字標誌,而後與合法的互聯網地址數據庫中的記錄進行比較。當收到電子郵件後,只有加密信息與數據庫中記錄匹配的電子郵件,纔可以進入用戶的收件箱。它還能檢查郵件的完整性,避免黑客等未受權者的修改。 DKIM 的基本工做原理一樣是基於傳統的密鑰認證方式,他會產生兩組鑰匙,公鑰(public key)和私鑰(private key),公鑰將會存放在 DNS 中,而私鑰會存放在寄信服務器中。私鑰會自動產生,並依附在郵件頭中,發送到寄信者的服務器裏。公鑰則放在DNS服務器上,供自動得到。收信的服務器,將會收到夾帶在郵件頭中的私鑰和在DNS上本身獲取公鑰,而後進行比對,比較寄信者的域名是否合法,若是不合法,則斷定爲垃圾郵件。 因爲數字簽名是沒法仿造的,所以這項技術對於垃圾郵件製造者將是一次致命的打擊,他們很難再像過去同樣,經過盜用發件人姓名、改變附件屬性等小伎倆達到目的。在此以前,垃圾郵件製造者經過把文本轉換爲圖像等方式逃避郵件過濾,而且使得一度逐漸降低的垃圾郵件數目再度擡頭。
注意:Amavisd-new 只有 2.6.0 及以上版本集成了 DKIM 功能。

3.1 這裏能夠經過iredmail.tips 得到域名的DKIM,也能夠在命令行下輸入
# amavisd-new showkeys
; key#1, domain example.com, /var/lib/dkim/example.com.pem
dkim._domainkey.example.com.    3600 TXT (
  "v=DKIM1; p="
  "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGNVMuQRKqYeySIzqTGTm3xRzF"
  "/ZzhmMnpZkEcVVjFAk+t7E388oFGu/knyh6KBKwpZxHUN5HoOYVjMudqaR2FcSvK"
  "z+joFj8Vh3rXoTLa1zHDyfD7hICzxdEgmQZ8MJM5rjPPrRGZXnPowNYDsd6nDJ86"
  "N38iFYU+jALBYDLBwQIDAQAB")

3.2 把上面記錄添加到ISP的DNS記錄
dkim._domainkey.example.com.   v=DKIM1; p=MIGfMA0....(省略)DLBwQIDAQAB

3.3 添加完DNS記錄後,若是記錄生效,能夠經過運行命令檢測
# amavisd-new testkeys
TESTING: dkim._domainkey.example.com      => pass

檢查DNS設置
下面有幾種方法,能夠幫助你檢測DNS是否設置生效和正常工做:
1.nslookup
#nslookup
Default Server:  unknown
Address:  192.168.1.1
> server 4.2.2.1
Default Server:  vnsc-pri.sys.gtei.net
Address:  4.2.2.1
> set type=mx
> example.com
Server:  vnsc-pri.sys.gtei.net
Address:  4.2.2.1
Non-authoritative answer:
example.com      MX preference = 20, mail exchanger = mail.example.com
> set type=txt
> example.com
Server:  vnsc-pri.sys.gtei.net
Address:  4.2.2.1
Non-authoritative answer:
example.com      text =
        "v=spf1 ip4:192.168.1.100 -all"
> dkim._domainkey.example.com
Server:  vnsc-pri.sys.gtei.net
Address:  4.2.2.1
Non-authoritative answer:
dkim._domainkey.example.com      text =
        "v=DKIM1; p= MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsgZaIvYHAos2jbp3CHW0
AwrTnAEwV1p4EaZP/JuF8t1BETBVg6WJr3YWN5ijCpi9vnw96nmf/u5MgtbLwZ+AzDBkbOY7Jbb/hIO+
mpmmfdJAY3w8KoXLCuQKDysXOys45YtfJEj66s51EHH3W+iXPYw3I/NWHjY3a5/mXnk4XJQIDAQAB"

2.linux dig
MX記錄
# host exmple.com
example.com mail is handled by 10 mail.example.com.

SPF記錄
# dig txt hotmail.com
; <<>> DiG 9.4.2-P2 <<>> txt hotmail.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43130
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;hotmail.com.                   IN      TXT

;; ANSWER SECTION:
hotmail.com.            3600    IN      TXT     "v=spf1 include:spf-a.hotmail.com include:spf-b.hotmail.com include:spf-c.hotmail.com include:spf-d.hotmail.com ~all"

;; Query time: 176 msec
;; SERVER: 64.71.161.8#53(64.71.161.8)
;; WHEN: Sat Dec  5 08:43:51 2009
;; MSG SIZE  rcvd: 157

DKIM記錄linux

#dig txt  dkim._domainkey.example.com數據庫

相關文章
相關標籤/搜索