本篇文章只寫了編譯安裝opendkim並配置加密的方式算法
如今國內發信,首先收件運營商會檢測你是否是正常的用戶,避免你模仿其餘人發垃圾郵件甚至詐騙郵件給用戶,避免用戶受到損失。數據庫
這裏最基礎的檢測是SPF記錄以及你郵箱的RDNS記錄,DKIM記錄主要是保證收發信的傳輸過程當中保證郵件內容不被篡改,目前DKIM記錄國內貌似只有比較大的運營商在用,不少小的運營商沒有用。vim
國外一些郵箱尤爲是Gmail還會檢測你的郵件是否配置了TLS加密,還有DMARC記錄等等這裏只介紹DKIM。服務器
DKIM 技術經過在每封電子郵件上增長加密的數字標誌,而後與合法的互聯網地址數據庫中的記錄進行比較。當收到電子郵件後,只有加密信息與數據庫中記錄匹配的電子郵件,纔可以進入用戶的收件箱。它還能檢查郵件的完整性,避免黑客等未受權者的修改。 DKIM 的基本工做原理一樣是基於傳統的密鑰認證方式,他會產生兩組鑰匙,公鑰(public key)和私鑰(private key),公鑰將會存放在 DNS 中,而私鑰會存放在寄信服務器中。私鑰會自動產生,並依附在郵件頭中,發送到寄信者的服務器裏。公鑰則放在DNS服務器上,供自動得到。收信的服務器,將會收到夾帶在郵件頭中的私鑰和在DNS上本身獲取公鑰,而後進行比對,比較寄信者的域名是否合法,若是不合法,則斷定爲垃圾郵件。 因爲數字簽名是沒法仿造的(準確的說是DKIM的加密算法特別特別難,幾乎沒有人能夠破解),所以這項技術對於垃圾郵件製造者將是一次致命的打擊,他們很難再像過去同樣,經過盜用發件人姓名、改變附件屬性等小伎倆達到目的。dom
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
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
生成的公鑰截圖工具
主機記錄:default._domainkey ,上圖文中的內容。記錄值:上圖所示()裏的內容,記得把換行符刪掉,雙引號不要,分號保留。![]()
發信測試: swaks 這個工具沒有能夠安裝一下,很方便。swaks -f 「你的發信地址」 -t 「收信地址」 -s "發信IP"例如: swaks -f 123456@qq.com -t 654321@qq.com -s localhost