DKIM/ADSPの設定 [Postfix]
CentOSの「Postfix」で送信するメールに「送信ドメイン認証」(DKIM- Domainkeys Identified Mail)を設定する方法です。
前回のSPFに加えて、今回のDKIMにも対応する事で独自ドメインで送信されるメールはGmailなどで迷惑メールになることは、ほとんどなくなります。
前提条件
開発者の為のメール送信サーバー(Postfix)の構築方法 ※SPF対応 |
1. OpenDKIMのインストール
sudo yum install epel-release sudo yum install opendkim
2. 公開鍵、秘密鍵の生成
ドメイン(example.com)、セレクタ名(20191126)は任意。
// フォルダを生成 sudo mkdir /etc/opendkim/keys/example.com // 公開鍵/秘密鍵の生成 // ※20191126.txt(公開鍵)、20191126.private(秘密鍵)が作成される。 sudo opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s 20191126 -D 鍵が作成されるフォルダ -d ドメイン名 -s セレクタ名(任意の名称) // 所有権をopendkimに変更する sudo chown -R opendkim:opendkim /etc/opendkim/keys // 確認 sudo ls -l /etc/opendkim/keys/example.com/
3. DNSの設定
// 公開鍵を表示する sudo cat /etc/opendkim/keys/example.com/20191126.txt
[表示例]
20191126._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3C3kitQBZj9Fc3cYgar8OxreRrtU2OHAqh4c/ddV6McFi83Kg6pkr1b0FySugtpCYXaGHBmdzXJ81jFAVAS6Dp20Mm+ZaKDEM3khs5LRFJ0x4Zf7RPeX095rK7+YN4Ofznd2tm05ri5tncQi2rSvzf4mJ13qilfCV2totWyeRZQIDAQAB" ) ; ----- DKIM key 20191126 for example.com
[DKIMレコード]
セレクタ名及び公開鍵は各自の設定を入力します。
タイプ | TXT |
---|---|
名称 | セレクタ名._domainkey |
TTL | 3600 |
値 | v=DKIM1; k=rsa; p=公開鍵 |
ConoHa以外ではDKIMレコードの値を"v=DKIM1 ..."のようにダブルクォーテーションで囲む必要がある場合があります。
[ADSPレコード]
ADSPレコードでdkim=unknownと指定することにより、電子署名がない(DKIM署名に失敗した)メールも送信できようにします。
タイプ | TXT |
---|---|
名称 | _adsp._domainkey |
TTL | 3600 |
値 | dkim=unknown |
[ConoHaでのDNS設定例]
4. OpenDKIMの設定
[opendkim.conf]
// バックアップ sudo cp /etc/opendkim.conf /etc/opendkim.conf.bk // 設定の編集 sudo vi /etc/opendkim.conf // 以下のように設定する Mode sv # KeyFile /etc/opendkim/keys/default.private KeyTable /etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts
[KeyTable]
// 秘密鍵を登録 sudo vi /etc/opendkim/KeyTable // 末尾に追記する 20191126._domainkey.example.com example.com:20191126:/etc/opendkim/keys/example.com/20191126.private
[SigningTable]
// 署名を行うドメイン設定 sudo vi /etc/opendkim/SigningTable // 末尾に追記する *@example.com 20191126._domainkey.example.com
[TrustedHosts]
// OpenDKIMとPostfixが別環境にある場合はIPアドレスを追加します。 //※同一環境の場合はデフォルト設定のままでOKです。 sudo vi /etc/opendkim/TrustedHosts
5. OpenDKIMの起動/自動起動設定
// OpenDKIMの起動 sudo systemctl start opendkim // OpenDKIMの自動起動設定 sudo systemctl enable opendkim // OpenDKIMのステータス確認 sudo systemctl status opendkim
6. Postfixの設定
[main.cf]
// 設定ファイルの編集 sudo vi /etc/postfix/main.cf // 以下を末尾に追記する # DKIMの設定 smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters milter_default_action = accept
7. Postfixの再起動
sudo service postfix restart
8. 確認作業
Roundcubeなどで独自ドメインからのメールをGmailなどに送信して、受信したメールヘッダの「Authentication-Results」(認証結果)を確認します。
spf=pass、dkim=passがあればOKです。
[メールヘッダの例]
Authentication-Results: ???.com; spf=pass smtp.mailfrom=info@example.com; sender-id=pass header.From=info@example.com; dkim=pass header.i=@example.com; dkim-adsp=pass
※Gmailではsender-id、dkim-adspは表示されません。