opendkim 受信が検証されていません

opendkim 受信が検証されていません

Debian Wheezy に postfix 付きの opendkim をインストールしました。送信メールは DKIM 署名を取得しています。smtpd と non-smtpd milter の仕様は同じです。

受信メールは検証されていないようです。メール クライアントに Authentication-Results ヘッダーがありません。opendkim 構成に「AlwaysAddARHeader yes」を追加しましたが、違いはありません。

メール ログでは、メッセージを受信すると、さまざまなエントリの中に opendkim によるエントリが 2 つあります。最初のエントリはサーバーを識別し、「内部ではない」と追加します (Google の場合は妥当なようです)。2 番目のエントリは単に「認証されていません」と表示されます。しかし、認証されていない理由がわかりません。解決策はどこで探せばいいですか?

答え1

,no_miltersコンテンツ フィルターの宛先のオプションにより、コンテンツ フィルターの前後で Milter が 2 回実行されるのが防止されるようです。

オプションを削除することもできます,no_milters。結果は次のようになります。

  • opendkim がメールを検証できるようになりました
  • milterは送信メールに対して2回実行されるため、メールには2つのdkim署名が存在します。

戻る,no_miltersオプションを選択した場合、opendkim は引き続き電子メールに署名できますが、それらを検証する機能は失われます。amavis を少しいじってみると、amavis は opendkim と同じ ID を使用することがわかりました。これは、両者が従う標準であるため、驚くことではありません。amavis は検証後に opendkim が追加したヘッダー (実際にはメッセージの検証は引き続き行われます) を空のヘッダーに置き換えるため、opendkim はメッセージを検証しないように見えます。

したがって、このヘッダーが消えないようにするには、次の 2 つの方法があります。

  1. コンテンツフィルターの後にmilterを実行するが、これは設計上不可能だと思う。
  2. amavisがこのヘッダーを上書きするのを防ぐ

milter が amavis より先に実行されないようにして、後に実行できるようにする方法は見つかりませんでした。ただし、$myauthservid = "amavis.local";50 ユーザー構成ファイルの末尾近くを再定義することで、amavis がそのヘッダーを書き換えるのを防ぐことができます。少なくとも、私はその方法でこの問題を解決しました。

答え2

「認証されていない」という状況は、リモート メール サーバーがメッセージに署名していないだけかもしれません。すべての人が DKIM でメールに署名しているわけではありません。実際、このメカニズムは、本来あるべきほど広く実装されていません。そうは言っても、DKIM を使用するとメールの配信性が大幅に向上しますが、組織にメールを送信するすべての人が DKIM を使用するとは期待しないでください。私の意見では、DKIM はゆっくりと成長しています。

これは興味深いかもしれませんDKIM 導入動向の実験。

また、リモートサーバーがメッセージに署名していて、メールサーバーがそれを無視していることが確実な場合は、次の点を確認することをお勧めします。既知のバグはここにあります。

関連情報