|
| ||||||||
|
巻き戻し中。
|
|
2017-10-15(日) DKIM [長年日記]
_ 先週から
2年ぶりにやる気になって設定していたDKIM、ようやくまとまった。
とりあえずopendkim突っ込んで、uekusa.jpとuekusa-com.comだけ署名。*1
これに伴ってsendmail.cfもmcに
INPUT_MAIL_FILTER(`dkim-filter', `S=_YOUR_SOCKET_SPEC_, F=T, T=R:2m')
define(`confINPUT_MAIL_FILTERS', `dkim-filter, clamav-milter')dnl
を追加して作成。
(したのをdiff取って人力patchでcf書き換え(;^ω^))
なお、milterの設定は書かれた順番どおりに流れるので、cfで
O InputMailFilters=dkim-filter, spamassassin, clamilter
という順番になっていないと、受信時にDKIM検証する前にspamassassinやClamAVがヘッダとか書き換えて検証エラーにしかならない。
*1 というか、それ以外のドメイン送信許可してないし、SPFでも捨てて良いことにしてるw
_ Fromが
各サーバのアラート通知など、smartrelayで受け付けていると署名ができない。
仕方が無いので、内部サーバのメール鯖向けはsubmission/587でMUA動作にして、[アドレス]@[ドメイン名]にした。
問題はメール鯖自身のrootなどが送ってくるメール。
どうやっても[ユーザ名]@[ホスト名].[ドメイン名]となってしまい、署名とマッチしない。
sendmailのMASQUERADE使って、エンベロープごと書き換えも試したけど、そもそも書き換える時点で署名とマッチしなくなる。*1
仕方が無いので、[ユーザ名]@[ホスト名].[ドメイン名]もちゃんと署名するように、opendkim-SigningTable*2を
*@[ホスト名].[ドメイン名] default._domainkey.[ホスト名].[ドメイン名]
*@[ドメイン名] default._domainkey.[ドメイン名]
とかして、opendkim-KeyTableを
default._domainkey.[ホスト名].[ドメイン名] [ホスト名].[ドメイン名]:default:/var/db/opendkim/hogehoge.private
default._domainkey.[ドメイン名] [ドメイン名]:default:/var/db/opendkim/hogehoge.private
にした上で、DNSレコードには「_domainkey」「_adsp._domainkey」「default._domainkey」を
ホスト名無し(ドメイン名のみ)とホスト名付きの両方を登録して完了。
_ 署名できると
完全に検証可能な署名が全部のメールに付与できれば、DKIMレコード的には「署名が無いヤツは削除してもいいよ」フラグが立てられる。
現在のところ「_adsp._domainkey」は「unknown」として緩くしてあるが、いずれ「all」か「discardable」にすることも可能だ。
ただし、会社のメールもそうだけど「DKIMで署名してるってヘッダに表示してるのに、経路の何処かに署名した要素を書き換えて検証台無しにする糞アプライアンスかスキャナがいやがる」と台無しである。。。orz
Tweets by RC31E | |||||||||
| |||||||||
|