Postfix安裝配置DKIM加密(opendkim)


本篇文章只寫了編譯安裝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.gz
    cd opendkim-2.10.3
    ./configure --prefix=/usr/local/opendkim
    make  && make install
 
中間發現了這幾個依賴,根據報錯需求安裝
第一個
     錯誤提示:configure: error: no strlcpy/strlcat found
            安裝這個工具:libbsd-0.8.6.tar  
            下載地址: https://libbsd.freedesktop.org/releases/
 
第二個
     錯誤提示:checking for OpenSSL library and includes... configure: error: OpenSSL not found
            實際上openssl 已經安裝 但是缺少工具包
             apt-get install libssl-dev
    
第三個
     錯誤提示:error: milter not found
        下載地址:  ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.14.5.tar.gz    
   這個安裝有點不太一樣,這是安裝過程:  
  # tar zxf sendmail-8.14.5.tar.gz   
  # cd sendmail-8.14.5/libmilter/      
  # ./Build      
  # ./Build install  
 
 
cp /usr/local/opendkim/sbin/* /usr/bin/   #我犯懶了,最好自己一個一個的copy.....
cp /usr/local/opendkim/sbin/opendkim  /etc/init.d/opendkim

 配置opendkim

  以下所有的$domain 換成自己的域
  所有的$domain_name 換成自己的發信郵箱
 
創建以下目錄
mkdir /etc/opendkim/keys/$domain_name  -p
mkdir /var/run/opendkim/ -p
 
 
新增以下文件,並配置,默認都是沒有的,文件位置根據自己的需要來
vim /etc/opendkim.conf
        AutoRestart                         Yes
        AutoRestartRate                 10/1h
        Canonicalization                  relaxed/simple
        ExternalIgnoreList                refile:/etc/opendkim/TrustedHosts
        InternalHosts                       refile:/etc/opendkim/TrustedHosts
        KeyTable                              refile:/etc/opendkim/KeyTable
        LogWhy                               Yes
        MinimumKeyBits                 1024
        Mode                                   sv
        PidFile                                  /var/run/opendkim/opendkim.pid
        SigningTable                         refile:/etc/opendkim/SigningTable
        Socket                                  inet:8891@127.0.0.1
        Syslog                                  Yes
        SyslogSuccess                     Yes
        LogWhy                                Yes
        TemporaryDirectory              /var/tmp
        UMask                                  022
        UserID                                  opendkim:opendkim
        MacroList                             192.168.198.100,192.168.198.0/24     #如果涉及轉發郵件功能,這里配置轉發IP或者簽名的IP段,否則轉發的郵件不會被簽名
 
vim  /etc/opendkim/TrustedHosts
127.0.0.1
 
vim /etc/opendkim/KeyTable
default._domainkey.$domain  $domain:default:/etc/opendkim/keys/$domain_name/default.private
 
vim /etc/opendkim/SigningTable
*@$domain default._domainkey.$domain
 
 
vim /etc/postfix/main.cf   #追加以下內容
smtpd_milters               = inet:127.0.0.1:8891
non_smtpd_milters       = inet:127.0.0.1:8891
milter_protocol              = 2
milter_default_action    = accept

 生成秘鑰

opendkim-genkey -D /etc/opendkim/keys/$domain_name/ -d  $domain -s default  #生成隨機密鑰
useradd opendkim
chown opendkim.opendkim /etc/opendkim -R
chown opendkim.opendkim /etc/opendkim.conf
/etc/init.d/opendkim -Dx /etc/opendkim.conf
/etc/init.d/postfix restart 
 

配置DNS TXT記錄

生成的公鑰截圖

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

 


DKIM效果檢測

檢測DKIM配置有沒有成功: http://www.mail-tester.com     #每天每個IP只能測試三次,多了要收費
發信測試: swaks 這個工具沒有可以安裝一下,很方便。
  swaks -f “你的發信地址”   -t “收信地址”  -s "發信IP"    
  例如: swaks -f  123456@qq.com   -t 654321@qq.com  -s localhost  
另外gmail,網易,sina的郵件信頭里也有標識,看到DKIM PASS字樣也證明DKIM配置成功。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM