色々あってSPFは設定してるけど、
DKIMとDMARKも設定してとの話があったのでメモ。
epelのリポジトリを使いインストール。
# yum install opendkim
そして鍵を作るディレクトリを作ります。
# mkdir /etc/opendkim/keys/domain.jp
鍵を作ります。シリアルはわかりやすく日付にしてます。
ついでに所有者も変えておきましょう。
# opendkim-genkey -D /etc/opendkim/keys/domain.jp -d domain.jp -s 20191114
# chown opendkim:opendkim /etc/opendkim/keys/domain.jp -R
鍵が出来たら設定です。キーテーブルを編集します。
# vi /etc/opendkim/KeyTable
下記追記。
20191114._domainkey.domain.jp domain.jp :20191114:/etc/opendkim/keys/domain.jp/20191114.private
署名を追記するドメインを指定します。
# vi /etc/opendkim/SigningTable
下記追記。これはワイルドカードでも、固定メアドも出来ます。
root@domain.jp 20191114._domainkey.domain.jp
*@domain.jp 20191114._domainkey.domain.jp
最後にopendkim自体の設定変更。
# 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
SoftwareHeader no
opendkim起動。ついでにサービス登録。
# service opemdkim start
#chkconfig opendkim on
postfixの設定も変えましょう。
# vi /etc/postfix/main.cf
下記を末端に追記。
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
milter_default_action = accept
postfix再起動しましょう。
これでDKIMが追記されるようになりmaillogにも
“DKIM-Signature field added” て出るようになります。
ここまで来たらあと一歩、DNS の設定をします。
といっても、TXTフィールドを増やすだけです。
DNSに追記する内容を確認しましょう。
# cat /etc/opendkim/keys/domain.jp/20191114.txt
こんな内容が表示されますね?
20191114._domainkey IN TXT ( “v=DKIM1; k=rsa; ”
“p=超長い文字列” ) ; —– DKIM key 20191114 for domain.jp
要は、下記をセットしてやれば良いわけですが、
DNS サーバーにもよるので適当にセットしてあげてください。
20191114._domainkey.domain.jp. IN TXT “v=DKIM1; k=rsa; p=超長い文字列”
このままだとあれなので、ADSPレコードも追加しましょう。
上のキーと合わせて、2行追加することになります。
_adsp._domainkey.domain.jp. IN TXT “dkim=unknown”
あとはDNSを反映させて、digで値が読み出せるか確認しておきましょう。
# dig 20191114._domainkey.domain.jp txt
# dig _adsp._domainkey.domain.jp txt
反映されてたら、メールもチェック、自分のgmailに送ってみましょう。
# echo “DKIMテスト” | mail -s “DKIMテストです。” my@gmail.com
gmailのソース確認すると、dkimの署名とか、dkim=passとか追記されるので
あーちゃんと出来たんだな―ってのがわかります。
ついでに、DMARKも対応しちゃいましょう。
といってもめんどくさいので詳細は企画を確認してもらうとして
とりあえず必要最低限で下記追記。
_dmarc IN TXT “v=DMARC1; p=none; rua=mailto:postmaster@domain.jp; ruf=mailto:postmaster@domain.jp”
ここで、ruaはDMARCの「集計レポート」の送信先、
rufは「認証失敗レポート」の送信先となります。
そして、DNS反映させておわり。
DKIMにしてもDMARCにしても、下手すると送受信できなくなるので
気をつけて設定しましょう。お疲れさまでした。