私のウェブメールはSTARTTLSをサポートしておらず、ローカルホストの全員のリレーを有効にしたいので、ローカルホストから接続が確立された場合、EximにTLSなしでのみAUTHPLAINとLOGINをアドバタイズさせたいと思います。
つまり、接続されているクライアントに応じて、次の可能性を宣伝するためのeximが必要です。
最終的に、ログイン情報がループバックまたは暗号化された接続を介してのみ送信されるようにすることができます。
これを行うための正しい行は、authenticators
セクションの全員にTLSを要求する場所だと思います。
plain:
public_name = PLAIN
server_advertise_condition = ${if !eq{$tls_cipher}{}{yes}{no} }
# ...
しかし、現在接続されているクライアントを確認する方法が見つかりません。私の最善の推測$Host
(一部の構成例で使用されているようです)は常に未定義です。
これを機能させる方法はありますか?
auth_advertise_hosts
は次のように設定する必要があります。
. . . . . .
daemon_smtp_ports = 25 : 465 : 587
tls_advertise_hosts = *
tls_on_connect_ports = 465 : 587
auth_advertise_hosts = localhost : ${if eq{$tls_cipher}{}{nope}{*}}
. . . . . .
送信者がTLSを使用する場合、auth_advertise_hosts
はlocalhost : *
に展開されます。それ以外の場合、auth_advertise_hosts
はlocalhost : nope
に展開されます。ローカルホストはとにかく認証するように招待されますが、他のホストはTLSが使用されている場合にのみ認証されます(パターンnope
は実際のホストと一致しないため)。