いくつかのさまざまな受信者サーバーとのTLSのネゴシエーションに失敗しているsendmailを実行しているCentOS5.xサーバーがあります。調べています。
それまでの間、TLSハンドシェイクエラーが発生した場合でも、sendmailが標準の暗号化されていない配信方法を使用するためにフォールバックすることはないことに気づきました。これは正常な動作ですか?
ドメインに明示的に要求した場合にのみ、このロジックが適切に機能することを期待します。たとえば、/ etc/mail/accessにTLS_SRVオプションを追加したとします。この場合、私はしません。本質的に、Sendmailは「便宜的なTLS」のみを実行しています。
これまでに出会ったすべての情報は、この問題が予期された動作であり、ハードコーディングされていることを示唆しています…
http://www.sendmail.org/m4/starttls.html#disable_starttls :
デフォルトでは、可能な限りSTARTTLSが使用されます。ただし、STARTTLSを適切に実装していない壊れたMTAがいくつかあります。これらのMTAに送信(またはMTAから受信)できるようにするには、アクセスマップと連携するルールセットtry_tls(srv_features)を使用できます。アクセスマップのエントリは、Try_TLS(Srv_Features)でタグ付けされ、接続システムのホスト名またはIPアドレスを参照する必要があります。
アクセスデータベースが使用されていない場合、$ {verify}の値がSOFTWAREである場合を除き、インバウンドとアウトバウンドの両方で接続が許可されます。この場合、接続は許可されません。
これらの宣伝文句は両方とも、反対側がTLSをサポートしていると主張する場合、try_tls機能がTLSをスキップするための唯一のオプションであることを示唆しています。これはオプションであることは理解していますが、アウトバウンドドメインで問題が発生した場合はいつでも手動で例外を作成する必要があるため、面倒です。
Sendmailをフォールバックする他の方法はありますか?
このスレッド によると、フォールバック機能tls_failures
は このパッチで実装 でした。どうやらこれは、TLSハンドシェイクが一定回数失敗した後、自動的にプレーンテキストを使用します。
注:このパッチは8.16に統合されています(少なくともスナップショットとして利用可能)
この投稿の時点では、8.16はまだ リリース済み ではないため、今のところ/etc/mail/access
または/etc/mail/access_db
を Seth推奨 として使用する必要があります。 .db
を使用してmakemap hash /etc/mail/access < /etc/mail/access
を再構築してください
tls_failures
をグローバルに使用することによるセキュリティリスクについて。そもそもこれが opportunistic TLS であることを考えると、この新しいオプションの使用を控えることは、受信者のメールサーバーが一時的に再構成され、後で修正されるいくつかの本当にフリンジな場合にのみ役立つと思います。
特定のホストのTLSを無効にすることができます。例えば:
# Try_TLS:gmail.com NO
また、 http://www.sendmail.org/m4/starttls.html
デフォルトでは、可能な限りSTARTTLSが使用されます。ただし、STARTTLSを適切に実装していない壊れたMTAがいくつかあります。これらのMTAに送信(またはMTAから受信)できるようにするには、アクセスマップと連携するルールセットtry_tls(srv_features)を使用できます。アクセスマップのエントリは、Try_TLS(Srv_Features)でタグ付けされ、接続システムのホスト名またはIPアドレスを参照する必要があります。タグだけを使用して、デフォルトのケースを指定できます。たとえば、アクセスマップの次のエントリ:
Try_TLS:broken.server NO
Srv_Features:my.domain v
Srv_Features: V
は、broken.server(またはそのドメイン内の任意のホスト)に送信するときにSTARTTLSをオフにし、my.domain内のホストに対してのみTLSハンドシェイク中にクライアント証明書を要求します。 Srv_FeaturesのRHSの有効なエントリは、「Sendmailインストールおよび操作ガイド」にリストされています。