加入書籤 facebook twiter plurk google Yahoo! My Web
 

Mail Server啟用DKIM示範教學

 

說明:為避免使用自己網域名稱的電子郵件被當成垃圾信件,可以在電子郵件上加入DKIM的設定。

  • 示範設定的環境:
    OS: FreeBSD v10
    Mail Server: postfix v2.11
    網域名稱: twnic-test1029-1.com.tw
  • 參考資料:
    DKIM: http://www.dkim.org/
    OpenDKIM: http://opendkim.org/

設定:

  • 自行架設Mail Server的設定及產生KEY
  1. 安裝OpenDKIM軟件

    使用Port安裝:
    # cd /usr/ports/mail/opendkim/ && make install clean

    使用Package安裝:
    # pkg install mail/opendkim

  2. 修改/etc/rc.conf,加入DKIM

    milteropendkim_enable="YES"       # 跟隨系統啟動
    milteropendkim_uid="postfix"        # 使用者:postfix

  3. 產生DKIM KEY

    # mkdir -p/usr/local/etc/mail/dkim-keys
    # opendkim-genkey -r -D /usr/local/etc/mail/dkim-keys -d twnic-test1029-1.com.tw -s dkimtest1

    會產生兩個檔案:
    /usr/local/etc/mail/dkim-keys/dkimtest1.private
    /usr/local/etc/mail/dkim-keys/dkimtest1.txt

    參數說明:
    -r: 產生出來的KEY,只給Mail使用(KEY會多出"s=email;"的訊息)。
    -D: KEY存放的目錄
    -d: 電子郵件的網域名稱
    -s: 識別的標籤(不指定時,預設為:default)

  4. 修改OpenDKIM的設定檔(/usr/local/etc/mail/opendkim.conf)

    Domain         twnic-test1029-1.com.tw
    KeyFile          /usr/local/etc/mail/dkim-keys/dkimtest.private
    Selector         dkimtest1
    #Socket          inet:8891@localhost
    Socket          local:/tmp/opendkim.sock

    說明:
    Selector: 產生DKIM KEY所設定的識別標籤
    Socket: 這有兩種設法,一種是使用檔案(要注意讀取權限);一種是使用通訊埠(系統會多出一個通訊埠)

  5. 修改Postfix的設定檔(/usr/local/etc/postfix/main.cf)

    #smtpd_milters = inet:127.0.0.1:8891
    smtpd_milters = local:/tmp/opendkim.sock
    non_smtpd_milters = $smtpd_milters
    milter_default_action = accept

    說明:
    smtpd_milters: 有兩種設法,必須對應OpenDKIM的設法。

  6. 測試DKIM KEY是否正確

    # opendkim-testkey -vvv -d twnic-test1029-1.com.tw -s dkimtest1 -k /usr/local/etc/mail/dkim-keys/dkimtest1.private

    說明:
    有出現「key OK」即表示正確。

  7. 重新啟動OpenDKIM及Postfix服務

    # /usr/local/etc/rc.d/milter-opendkim restart
    # /usr/local/etc/rc.d/postfix restart

 

  • 使用郵件代管的設定(以Google Apps為例,產生KEY)
  1. 登入Google Apps管理介面,點選【Google Apps】服務
  2. 點選【Gmail】服務
  3. 點選【驗證電子郵件】項目
  4. 點選【產生新紀錄】
  5. 自行填入一個識別標籤後,按【產生】鈕
  6. 系統會產生出DKIM所需的KEY

 

  • 設定DNS記錄
  1. Copy KEY
    使用OpenDKIM:

    # cat /usr/local/etc/mail/dkim-keys/dkimtest1.txt
    dkimtest1._domainkey IN TXT ( "v=DKIM1; k=rsa; s=email; "
    "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHCgBPEyOMB4qhmNCkj3JTTa
    Cb1GSDkud33M//bWWsep3atmkX
    Zj/L/9z8rFprKonqMWP8kuueHPSaqiA6Nx8jE5M27aY13C2g2jnqmspXuguApOFCbnRyDGhw
    UPKCU/c6tQi66S/V5hX0UgNE18X
    1lhxPncyUWZJgmz/AnFckzQIDAQAB" ) ; ----- DKIM key dkimtest1 for twnic-test1029-1.com.tw

    將上面的訊息分成兩個部份
    第一部分:
    dkimtest1._domainkey
    第二部分:將雙引號裡的資訊組合成一個長字串
    v=DKIM1; k=rsa; s=email; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHCgB
    PEyOMB4qhmNCkj3JTTaCb1GSDkud33M//bWWsep3atmkXZj/L/9z8rFprKonqMWP8kuueH
    PSaqiA6Nx8jE5M27aY13C2g2jnqmspXuguApOFCbnRyDGhwUPKCU/c6tQi66S/V5hX0Ug
    NE18X1lhxPncyUWZJgmz/AnFckzQIDAQAB


    郵件代管:


  2. 登入DNS管理系統,選用【進階模式】,新增一筆DNS TXT記錄
    主機名稱:dkimtest1._domainkey.twnic-test1029-1.com.tw
    設定型態:TXT
    IP/名稱:v=DKIM1; k=rsa; s=email; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHCgB
    PEyOMB4qhmNCkj3JTTaCb1GSDkud33M//bWWsep3atmkXZj/L/9z8rFprKonqMWP8kuueHPSaqiA6
    Nx8jE5M27aY13C2g2jnqmspXuguApOFCbnRyDGhwUPKCU/c6tQi66S/V5hX0UgNE18X1lhxPncyUWZJ
    gmz/AnFckzQIDAQAB


  3. 等待DNS生效

 

  • 寄信測試
  1. 方式一:
    發一封測試信到check-auth@verifier.port25.com信箱,會得下面的回信:

    ==========================================================
    Summary of Results
    ==========================================================
    SPF check:          pass
    DomainKeys check:   neutral
    DKIM check:         pass
    Sender-ID check:    pass
    SpamAssassin check: ham

  2. 方式二:
    發一封信到其它E-mail,檢查Mail Header(信件標頭),會多出「DKIM-Signature」欄位