字體:  

在 CentOS 6.x 版設定 Postfix+SPF+OpenDKIM 電子郵件驗證

mywheat 發表於: 2014-5-28 09:46 來源: ADJ網路控股集團


架 Mail Server 首先要搞定不讓自己寄出去的信被當作 Spam,參考 Google的電子郵件驗證中說的,要可以被 驗證和識別,通常就是 Domain 要發佈 SPF 跟簽署 DKIM(DomainKeys Identified Mail) 。

如何在 DNS Server 設定 SPF 提高郵件正確送達...請參考這篇說明:
http://dz.adj.idv.tw/thread-136297-1-1.html

(1) 設定 DKIM:
下載安裝
64 bit:
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

32 bit:
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

# yum install opendkim

(2) 做DKIM key (修改紅色部分)
# export domain=adj.com.tw
# mkdir /etc/opendkim/keys/$domain
# cd /etc/opendkim/keys/$domain
# opendkim-genkey -d $domain -s default
# chown -R opendkim:opendkim /etc/opendkim/keys/$domain
# echo "default._domainkey.$domain $domain:default:/etc/opendkim/keys/$domain/default.private" >> /etc/opendkim/KeyTable
# echo "*@$domain default._domainkey.$domain" >> /etc/opendkim/SigningTable

(3) 把DKIM key加到DNS設定:

請自行再 DNS設定那邊加上底下這段.
假設DNS Zone檔在 /var/named/chroot/var/named/Zone-adj.com.tw
請執行(修改紅色部分)
# cat /etc/opendkim/keys/$domain/default.txt >> /var/named/chroot/var/named/Zone-adj.com.tw

(4) 改 openDKIM設定 (改紅色部分)
vi /etc/opendkim.conf

a. Mode 改成
Mode sv

b. Domain adj.com.tw

c. 去掉所有變數的#, 但在KeyFile設定前加上#

d. 再把
SigningTable /etc/opendkim/SigningTable
改成
SigningTable refile:/etc/opendkim/SigningTable

(5) 設定 Postfix
vi /etc/postfix/main.cf (add following)
加上下面幾行
# opendkim setup
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
milter_default_action = accept

(6) 啟動opendkim
# service opendkim restart
# service postfix restart
# chkconfig opendkim on

PS: 第一次啟動如果出現 Generating default DKIM keys: hostname: Unknown host
可以在 /etc/hosts 上面補上(紅色這段)
127.0.0.1   adj.com.tw localhost localhost.localdomain localhost4 localhost4.localdomain4

(7) 測試 opendkim
到 http://dkimvalidator.com/ 找到測試信箱,
底下的紅色信箱要依現況做更改, -r 指的是寄件者信箱

# mail -v -s "test subject" -r sales@adj.com.tw uEHs4uENY06XsS@dkimvalidator.com

( 寄封信到網站顯示的信箱, 然後押view result)

 如果看到
Validating Signature

result = pass
Details:

那就是設定OK囉.

也可以看看log 有沒有錯誤
# tailf /var/log/maillog

這樣就大功告成啦~~