yum list installed | grep dkim
インストールされていない場合は
yum install -y epel-release
yum install -y opendkim
opendkim-genkey -D /etc/opendkim/keys -d example.com -s 20190318
オプションの説明は次の通り
opendkim-genkey -D /etc/opendkim/keys -d <サイト名> -s <セレクタ名(ファイル名。指定しないときはdefault)>
作成後に鍵ができているか確認します
ls -la /etc/opendkim/keys
-rw------- 1 root root 1679 1月 1 12:59 default.private
-rw------- 1 root root 498 1月 1 12:59 default.txt
できています。 default.privateが秘密鍵 、default.txt が公開鍵です。
chown -R opendkim:opendkim /etc/opendkim/keys/*
↑ これを行わないとメール送信時に
「can't load key from /etc/opendkim/keys/default.private: Permission denied」
エラーとなります。
DNSサーバに登録するのは次の2レコードです。
・DKIM公開鍵
・ADSPレコード
公開鍵の中身を表示
cat /etc/opendkim/keys/default.txt
DKIM公開鍵の登録
Title | Type |
---|---|
サブドメイン | default._domainkey |
対象 | TXT |
値 | p=MIIBIjANBgkqh.................................... |
でお使いのDNSサーバに登録します。
ADSPレコードには all , unknown , discardable のどれかを指定します。
設定値の説明は次の通り
unknown | DKIM署名していないメールも送信している |
all | 送信するメールはすべてDKIM署名している |
discardable | DKIM署名されていないメール・不正な内容のDKIM署名がされているメールが届いたら、すべて破棄してよい |
ADSPレコードの登録
Title | Type |
---|---|
サブドメイン | _adsp._domainkey. |
対象 | TXT |
値 | dkim=unknown |
でお使いのDNSサーバに登録します。
dig default._domainkey.<YOUR-SERVER.NAME> TXT
設定ファイルのバックアップ
cp /etc/opendkim.conf /etc/opendkim.conf.original
opendkim.conf を編集します
vi /etc/opendkim.conf
Mode v
↓
Mode sv
KeyFile /etc/opendkim/keys/default.private
↓
#KeyFile /etc/opendkim/keys/default.private
# KeyTable /etc/opendkim/KeyTable
↓
KeyTable refile:/etc/opendkim/KeyTable
# SigningTable refile:/etc/opendkim/SigningTable
↓
SigningTable refile:/etc/opendkim/SigningTable
# ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
↓
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
# InternalHosts refile:/etc/opendkim/TrustedHosts
↓
InternalHosts refile:/etc/opendkim/TrustedHosts
vi /etc/opendkim/KeyTable
次のようなフォーマットでファイルの最後に追記します
<DKIMレコード(サーバ)名> <ドメイン名>:<セレクタ名>:<秘密鍵ファイル>
YOURSERVER.COM はお使いのドメイン名に読み替えてください
セレクタが default の場合
default._domainkey.YOURSERVER.COM YOURSERVER.COM:default:/etc/opendkim/keys/default.private
vi /etc/opendkim/SigningTable
ファイルの最後の追記します
YOURSERVER.COM はお使いのドメイン名に読み替えてください
*@YOURSERVER.COM default._domainkey.YOURSERVER.COM
サーバをリスタートした時の自動起動の設定
chkconfig opendkim on
opendkimの起動
systemctl enable opendkim
service opendkim start
起動の確認
netstat -lntp | grep opendkim
systemctl status opendkim
vi /etc/postfix/main.cf
最終行に以下を追記
# dkim
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
postfixの再起動
service postfix check
service postfix reload
postconf | grep smtpd_milters