Exim4 требуют TLS для всех хостов, но localhost

Поскольку мой webmailer не поддерживает STARTTLS, и я хочу позволить передать для всех в localhost, я хотел бы сделать, чтобы Exim рекламировал ПЛОСКОСТЬ AUTH и ВОШЕЛ В СИСТЕМУ только без TLS, если бы соединение было установлено от localhost.

Так, другими словами, я хотел бы иметь exim для рекламы следующих возможностей в зависимости от соединенного клиента:

  • localhost (перед TLS):
    • ПЛОСКОСТЬ AUTH
    • ВХОД В СИСТЕМУ AUTH
    • STARTTLS
  • любой другой хост (перед TLS):
    • STARTTLS
  • любой другой хост (после TLS):
    • ПЛОСКОСТЬ AUTH
    • ВХОД В СИСТЕМУ AUTH

Так, чтобы в конце я мог удостовериться, что данные для входа только передаются посредством обратной петли или посредством зашифрованного соединения.

Мое предположение, что корректная строка, чтобы сделать это было бы то, где мы требуем TLS от всех в authenticators раздел:

plain:
  public_name = PLAIN
  server_advertise_condition = ${if !eq{$tls_cipher}{}{yes}{no} }
  # ...

Но я не могу найти способ проверить, какой клиент в настоящее время соединяется. Мое лучшее предположение $host (который, кажется, используется в некоторых примерах конфигурации), всегда не определено.

Какие-либо идеи, как я мог заставить это работать?

4
задан 6 August 2014 в 00:56
1 ответ

Настройка 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 не будет совпадать ни с одним реальным хостом).

.
3
ответ дан 3 December 2019 в 03:42

Теги

Похожие вопросы