DKIM-Signatureを表示したい

メールのヘッダーにDKIM-Signatureを表示したい。
なので、opendkimの周囲をおさらいすることにした。

先ずはGeminiさんに相談する。
だって何が何だか判らないのだもの、仕方が無いんだ。
opendkimは一度設定するだけで、backgroundで動かすものだとは思ってもいなかったんだよ。
最初に結果を書く。
opendkim.confはこんな感じになった。

SyslogFacilityは元々mailだったけれど、local5に変更。
MacroListのdaemon ORIGINATINGはdaemon:ORIGINATING(コロンで繋ぐ)とエラーになる。
ここ(コロン挟んだ)はAIさんも間違えたよ。だから失敗しても大丈夫。

これで/etc/syslog.confに設定しておけば独立したログが取れる筈。

取れていないんだけれどね……何故に?

postfix/main.ctに追加したのはここ。(だけだったと思う)

postfix/master.cfに追加したのはsubmissionの2行。

これだと未だ動かない。
何故かlogに出ないので、対応も取れないんだわ。

Google AIさんに尋ねたところ、この様な対応策を出してくれた。

  1. opendkim.confにMacroList daemon ORIGINATINGが無かった。
    なので、postfixからの起動指示を受け取れない。
  2. ownerが違っていた。
    sudo chown -R _postfix:_postfix /opt/local/var/db/opendkim
    sudo chown -R _postfix:_postfix /opt/local/var/db/opendkim/*
    以下はownerが_postfixでないとopendkimが中身を読めない
  3. SigningTableが空だった。
    k-in.co.jp default._domainkey.k-in.co.jp
    が必要

他にもあったかも。

1番目は、master.cfのmilter_macro_daemon_name=ORIGINATINGに対応している。
postfixがopendkimを呼び出す時にORIGINATINGを送り、opendkimがそれを受けるとDKIM-Signatureを出力するらしい。
2番目は、opendkim.confの設定UserID _postfixが絡んでいる。
つまり、opendkimは_user _postfixで動いているのだ。だから当然である。
3番目は、SigningTableが空だったから何か入れないといけない。
答えはAIさんが示してくれた通りである。

opendkimの中身はこんな風。

default.privateは秘密鍵。
default.txtは公開鍵。
TrustedHostsは「署名を許可する送信元(信頼するホスト/IP)」 を指定するファイル。

SigningTableは「どのメールアドレスに、どの鍵(KeyTableの鍵)を使って署名するか」 を結びつけるルールファイル。

keytableは「使用する秘密鍵の置き場と情報のリスト」 を定義するファイル。

ここまでしてopendkimを再起動。

今まで立ち上がらなかったopendkimがopendkim.sockを作り、postfixと通信できる様になった。

と云うことで、結果、出ましたっ!

未だ、ログは出ない。
ここでAIさんに聞いた。(全部聞いちゃう)

syslog.confは
1.タブ区切りじゃ無いと動かない
2.プライオリティを指定しないと動かない
3.再起動しないと反映されない

のだそうです。
そして、sudo killall -HUP syslogdなんて方法もあるのね。(意味は判らないが、これで良いらしい)
序でに詳しく教えて貰った。

なぜ今回の local5.* はタブじゃないとダメなのか?
理由は、MacPortsという「外部環境」から、macOSの「内部システム(syslogd)」へ、独自に定義したログ(local5)を橋渡ししているからです。
Apple純正ではないカスタムファシリティ(local5)を追記する場合、syslogdの解釈パーサー(文字を読み取るプログラム)が古いBSD伝統の厳格なモードで動作してしまい、スペースが含まれた瞬間に「不正な構文」として処理をスキップしてしまう性質があります。
また、MacPorts側のインストーラー(install.*)がタブ区切りで設定を生成していたのも、歴史的に「タブで書くのが一番確実に動く(安全牌)」というUNIXの鉄則を忠実に守っているためです。

色々やってみたけれど、syslogからの移動(と言うよりsyslogに出てこない)は少々手強いので、放置することにした。

次はOpenDMARKに挑戦するか。
と思ったところで、MacPortsにはOpenDMARKもOpenSPFのなかったのでした。
ちゃんちゃん。(笑)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)