dk-filterの-Hオプション:
Includes on DomainKey signatures the list of headers that were included in the signature. This makes the signature header larger by explicitly listing the included headers, but this also allows verifying agents to ignore headers that were added in transit.
意訳:
Domainkeyの署名に,署名に含めたヘッダのリストを含めます。明示的に署名したヘッダのリストを追加することで,Domainkeyの署名ヘッダが大きくなりますが,これによって,認証エージェントが通信時に追加になったヘッダを無視できるようになり,署名されたヘッダのみ証明できるようになります。
で,試してみたら,Gmail/Yahooとも有効。(当然,CHECK-AUTH@VERIFIER.PORT25.COM, sa-test@sendmail.net でも問題なし)
-Hオプションを付けていれば,clamav-milterで,--noxheaderオプションを付ける必要はないようだ。
もっとも,送信側が,ヘッダリストを追加しているとは限らないので,clamav-milterの順番はsmtpd_miltersのリストの最後に置かないと,Domainkeyの署名チェックで,常にfailになる。
Postfixのパラメータ設定例
smtpd_milters =
unix:/var/run/dkim-milter/dkim-milter.sock
unix:/var/run/dk-milter/dk-milter.sock
unix:/var/run/dk-milter/dk-milter1.sock
unix:/var/run/sid-milter/sid-milter.sock
unix:/var/run/clamav-milter/clamav.sock
non_smtpd_milters =
unix:/var/run/dkim-milter/dkim-milter.sock
unix:/var/run/dk-milter/dk-milter.sock
unix:/var/run/dk-milter/dk-milter1.sock
unix:/var/run/clamav-milter/clamav.sock
あと,dk-milterの起動スクリプトでまずい点を見つけた。
オプションのチェック処理で,"[" (test)を実行しているのだが,-z(文字列の長さが0か)の後ろに,オプション文字列("-"から始まる)があると,testの演算子として処理されるようだ。
[ ! -z $(eval "echo \$EXTRA_ARGS${NUM}") ]
シェルのクォート展開は考えれば考えるほど混乱するので,処理を分けて見た。
[[ 条件 ]] というのを使えば,クォートの問題が無くなるので,これを使って修正した。
ftp://ftp.aritia.org/pub/patch/dk-milter.txt
そのうち,まじめに直そう。

コメントする