環境
RHEL7
やりたいこと
メール送信時にDKIM署名するサーバの構築
手順
①OpenDKIMパッケージインストール
# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # yum -y --enablerepo=rhui-REGION-rhel-server-optional install sendmail-milter # yum install -y opendkim --enablerepo=epel
②OpenDKIM設定ファイル編集
- /etc/opendkim.conf
PidFile /var/run/opendkim/opendkim.pid Mode s Syslog yes SyslogSuccess yes LogWhy yes UserID opendkim:opendkim Socket inet:8891@localhost Umask 002 SendReports no SoftwareHeader yes Canonicalization relaxed/relaxed MinimumKeyBits 1024 KeyTable /etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable OversignHeaders From
- /etc/opendkim/KeyTable
s1._domainkey.sa.example.com sa.example.com:s1:/etc/opendkim/keys/s1.private
- /etc/opendkim/SigningTable
*@sa.example.com s1._domainkey.sa.example.com
★ポイント★
・受信検証しないのでModeはs
・受信検証しないけど、SendReports noで明示的に認証失敗レポート機能無効化
・KeyTableはDNSレコードと鍵ファイルの紐づけ
・SigningTableはFromアドレスとDNSレコードの紐づけ
・利用するドメイン/署名が1個だけの場合は、KeyTable・SigningTableは利用せず、domain・KeyFileに定義すればOK。
・今回は1個だけだが、拡張性を考慮しKeyTable・SigningTableを利用
③鍵ファイル生成
# opendkim-genkey -b 2048 --directory=/etc/opendkim/keys --selector=s1 --domain=sa.example.com # chown opendkim. /etc/opendkim/keys/*
④Postfix設定ファイル編集
参考にしたサイトの通り以下追加
milter_default_action = accept
non_smtpd_milters = $smtpd_milters
smtpd_milters = inet:127.0.0.1:8891
⑤動作確認
OpenDKIMでDKIM-Signatureヘッダ付与時、エンベロープFrom/Fromヘッダどちらをdタグに付与するの?
Fromヘッダのみがマッチする場合
$ echo test | mutt -e 'set use_envelope_from=yes' -e 'set envelope_from_address="hoge@hoge.com"' -e 'my_hdr From: hoge@sa.example.com' 宛先アドレス
→DKIMヘッダ付いた!
ENV Fromのみがマッチする場合
$ echo test | mutt -e 'set use_envelope_from=yes' -e 'set envelope_from_address="hoge@sa.example.com"' -e 'my_hdr From: hoge@hoge.com' 宛先アドレス
→DKIMヘッダ付かず!
結論はFromヘッダを見てる!