Поскольку мой webmailer не поддерживает STARTTLS, и я хочу позволить передать для всех в localhost, я хотел бы сделать, чтобы Exim рекламировал ПЛОСКОСТЬ AUTH и ВОШЕЛ В СИСТЕМУ только без TLS, если бы соединение было установлено от localhost.
Так, другими словами, я хотел бы иметь exim для рекламы следующих возможностей в зависимости от соединенного клиента:
Так, чтобы в конце я мог удостовериться, что данные для входа только передаются посредством обратной петли или посредством зашифрованного соединения.
Мое предположение, что корректная строка, чтобы сделать это было бы то, где мы требуем TLS от всех в authenticators
раздел:
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
не будет совпадать ни с одним реальным хостом).