DKIM対応¶
インストール¶
- yum/dnfでインストール
dnf install opendkim dnf install opendkim-tools
鍵設定¶
- 鍵ファイルの配置
mkdir /etc/opendkim/keys/ドメイン名 cd /etc/opendkim/keys/ドメイン名 opendkim-genkey -d ドメイン名 chown -R opendkim.opendkim /etc/opendkim/keys chmod 600 default.private chmod 644 default.txt
DNS設定¶
- 内容の表示とコピー
cat default.txt
- セレクタ名の設定
ここでは例として「default」とする。
セレクタ名は任意だが、定期的にローテーションさせてセキュリティを高めるので実際には連番付与するといいかも。 - 公開鍵のDNSレコードの作成
鍵の長さが256文字を超える場合、複数レコードにわける必要がある場合がある。default._domainkey.[ドメイン名]. IN TXT "v=DKIM1; k=rsa; p=公開鍵"
- 署名に対する対応のレコードを作成する。
_adsp._domainkey.[ドメイン名]. IN TXT "dkim=レコード値" ・レコード値の内容 dkim=unknown DKIM署名していないメールも送信する。 dkim=all 送信するメールはすべてDKIM署名をおこなっている。 dkim=discardable DKIM署名がされていなかったり不正な署名のメールはすべて削除してよい
DNS確認¶
- チェックサイト等でレコードの正常性を確認する。
https://dmarcian.com/dkim-inspector/
デーモンの設定作成¶
- テンプレートのコピー
cp /etc/opendkim.conf /etc/opendkim.conf.default
- キーテーブルとソケット部分の変更
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 Socket inet:8891@localhost
- キーテーブルファイルの作成
vi /etc/opendkim/KeyTable -------------------- default._domainkey.ドメイン名 ドメイン名:セレクタ名:/etc/opendkim/keys/ドメイン名/default.private
- 署名テーブルファイルの作成
vi /etc/opendkim/SigningTable -------------------- *@ドメイン名 default._domainkey.ドメイン名
- 信頼するホスト一覧の作成
今回はローカルのみとする。vi /etc/opendkim/TrustedHosts -------------------- 127.0.0.1 ::1
- Postfixとの連携設定
vi /etc/postfix/main.cf -------------------- smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters milter_default_action = accept
自動起動設定¶
- opendkimの起動(自動起動設定含む)とpostfixの設定反映を行う
systemctl enable —now opendkim systemctl restart postfix
動作確認¶
- メール送信時のmaillogに下記のようにopendkimに連携してシグネチャが追加されるログのあること
opendkim[****]: ******: DKIM-Signature field added (s=セレクタ名, d=ドメイン名)
- メール送信時に以下のようなヘッダが追加されていること
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ドメイン名; s=セレクタ名; t=1701130467; 以下署名内容
¶
¶