Ubuntu 20.04.3 LTS+PostFix環境でさくっとDKIM対応
動機
- ぶっちゃけメール受信だけならSPFだけでいいけど、クラウドメール勢が多くなってきたからDMARCで協調しないといけなくなった。許すまじGAFAM。まずはDKIMか。
環境
- Ubuntu 20.04.3 LTS
- OpenDKIM: opendkim/focal,now 2.11.0~beta2-1 amd64
- Postfix: postfix/focal-updates,now 3.4.13-0ubuntu1.2 amd6 インストール設定済
DKIMのインストール
apt install opendkim opendkim-tools
DKIMキーの作成
mkdir -p /etc/postfix/dkim
cd /etc/postfix/dkim
opendkim-genkey -t -s yyyyMMdd -d example.com
ln -s yyyyMMdd.private dkim.key
chown -R opendkim:opendkim /etc/postfix/dkim
cat /etc/postfix/dkim/yyyyMMdd.txt #メモ
DNSコンテンツサーバのTXTレコードにDKIM公開鍵を登録
- Bindの場合はメモしたものをそのままTXTレコードに設定可能。
- それ以外の場合はメモしたyyyyMMdd.txtの"v=~~"以降のデータ部分を"とスペースと改行を消して連結させる必要がある。
- テストが完了したならTXTレコードの値からt=y;属性は消してもよい。
- TXTレコードの例
- yyyyMMdd._domainkey.example.com TXT 3600 "v=DKIM; h=sha256; k=rsa; p=(長い文字列)"
opendkimの設定
vi /etc/opendkim/opendkim.conf
#ディレクティブをそれぞれ変更
Domain example.com
KeyFile /etc/postfix/dkim/dkim.key
Selector yyyyMMdd
Socket inet:8892@localhost
#Socket local:/run/opendkim/opendkim
postfixの設定
vi /etc/postfix/main.cf
# ディレクティブをそれぞれ追加
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:127.0.0.1:8892
non_smtpd_milters = $smtpd_milters
各種サーバの再起動
systemctl restart opendkim
systemctl restart postfix
テスト
DKIMがpassになっていたらOK。
留意点
大した情報ではないけど、以下のファイルは
どこかサーバとは別の場所にセットで暗号化して保存しておこう。
- /etc/postfix/dkim/yyyyMMdd.private
- /etc/postfix/dkim/yyyyMMdd.txt
DMARC
ガチでやるとしんどいけど、相手側にメール取り扱いを指示するだけなら
以下のページに従いTXTレコードを追加するだけ。
- https://support.google.com/a/answer/2466563?hl=ja
- TXTレコードの例
- _dmarc.example.com TXT 3600 "v=DMARC1; p=quarantine; sp=quarantine; pct=100; adkim=s; aspf=s;"