ホーム > カテゴリ > サーバー構築・運用・Linux >

DKIM/ADSPの設定 [Postfix]

CentOSで各種サーバー構築(目次)

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
TTL3600
v=DKIM1; k=rsa; p=公開鍵

ConoHa以外ではDKIMレコードの値を"v=DKIM1 ..."のようにダブルクォーテーションで囲む必要がある場合があります。

[ADSPレコード]

ADSPレコードでdkim=unknownと指定することにより、電子署名がない(DKIM署名に失敗した)メールも送信できようにします。

タイプTXT
名称_adsp._domainkey
TTL3600
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は表示されません。





関連記事



公開日:2019年11月26日 最終更新日:2019年11月30日
記事NO:02805