本篇文章只寫了編譯安裝opendkim並配置加密的方式
現在國內發信,首先收件運營商會檢測你是不是正常的用戶,避免你模仿其他人發垃圾郵件甚至詐騙郵件給用戶,避免用戶受到損失。
這里最基礎的檢測是SPF記錄以及你郵箱的RDNS記錄,DKIM記錄主要是保證收發信的傳輸過程中保證郵件內容不被篡改,目前DKIM記錄國內貌似只有比較大的運營商在用,很多小的運營商沒有用。
國外一些郵箱尤其是Gmail還會檢測你的郵件是否配置了TLS加密,還有DMARC記錄等等這里只介紹DKIM。
那DKIM怎么保證郵件內容不被篡改的?
DKIM 技術通過在每封電子郵件上增加加密的數字標志,然后與合法的互聯網地址數據庫中的記錄進行比較。當收到電子郵件后,只有加密信息與數據庫中記錄匹配的電子郵件,才能夠進入用戶的收件箱。它還能檢查郵件的完整性,避免黑客等未授權者的修改。 DKIM 的基本工作原理同樣是基於傳統的密鑰認證方式,他會產生兩組鑰匙,公鑰(public key)和私鑰(private key),公鑰將會存放在 DNS 中,而私鑰會存放在寄信服務器中。私鑰會自動產生,並依附在郵件頭中,發送到寄信者的服務器里。公鑰則放在DNS服務器上,供自動獲得。收信的服務器,將會收到夾帶在郵件頭中的私鑰和在DNS上自己獲取公鑰,然后進行比對,比較寄信者的域名是否合法,如果不合法,則判定為垃圾郵件。 由於數字簽名是無法仿造的(准確的說是DKIM的加密算法特別特別難,幾乎沒有人可以破解),因此這項技術對於垃圾郵件制造者將是一次致命的打擊,他們很難再像過去一樣,通過盜用發件人姓名、改變附件屬性等小伎倆達到目的。
安裝opendkim
cd /usr/local/src/tar -zxf opendkim-2.10.3.tar.gzcd opendkim-2.10.3./configure --prefix=/usr/local/opendkimmake && make install
# tar zxf sendmail-8.14.5.tar.gz# cd sendmail-8.14.5/libmilter/# ./Build# ./Build install
配置opendkim
AutoRestart YesAutoRestartRate 10/1hCanonicalization relaxed/simpleExternalIgnoreList refile:/etc/opendkim/TrustedHostsInternalHosts refile:/etc/opendkim/TrustedHostsKeyTable refile:/etc/opendkim/KeyTableLogWhy YesMinimumKeyBits 1024Mode svPidFile /var/run/opendkim/opendkim.pidSigningTable refile:/etc/opendkim/SigningTableSocket inet:8891@127.0.0.1Syslog YesSyslogSuccess YesLogWhy YesTemporaryDirectory /var/tmpUMask 022UserID opendkim:opendkimMacroList 192.168.198.100,192.168.198.0/24 #如果涉及轉發郵件功能,這里配置轉發IP或者簽名的IP段,否則轉發的郵件不會被簽名
127.0.0.1
default._domainkey.$domain $domain:default:/etc/opendkim/keys/$domain_name/default.private
*@$domain default._domainkey.$domain
smtpd_milters = inet:127.0.0.1:8891non_smtpd_milters = inet:127.0.0.1:8891milter_protocol = 2milter_default_action = accept
生成秘鑰
opendkim-genkey -D /etc/opendkim/keys/$domain_name/ -d $domain -s default #生成隨機密鑰useradd opendkimchown opendkim.opendkim /etc/opendkim -Rchown opendkim.opendkim /etc/opendkim.conf/etc/init.d/opendkim -Dx /etc/opendkim.conf/etc/init.d/postfix restart
配置DNS TXT記錄
生成的公鑰截圖



主機記錄:default._domainkey ,上圖文中的內容。記錄值:上圖所示()里的內容,記得把換行符刪掉,雙引號不要,分號保留。![]()

DKIM效果檢測
發信測試: swaks 這個工具沒有可以安裝一下,很方便。swaks -f “你的發信地址” -t “收信地址” -s "發信IP"例如: swaks -f 123456@qq.com -t 654321@qq.com -s localhost