Как заставить STARTTLS в eximʻe?

Я учусь настраивать почтовый сервер. Я получил работу с postfix, теперь пробую ту же конфигурацию с Exim. Как я могу заставить клиента использовать только STARTTLS-соединение для исходящего SMTP-соединения? Я выполнил инструкции в этом вопросе.

Требовать STARTTLS для отправки электронной почты в exim

Моя конфигурация теперь выглядит следующим образом:

MAIN_TLS_ENABLE = yes
MAIN_TLS_CERTIFICATE = /etc/ssl/certs/ssl-cert-snakeoil.pem
MAIN_TLS_PRIVATEKEY = /etc/ssl/private/ssl-cert-snakeoil.key

.ifdef MAIN_TLS_ENABLE
# Defines what hosts to 'advertise' STARTTLS functionality to. The
# default, *, will advertise to all hosts that connect with EHLO.
.ifndef MAIN_TLS_ADVERTISE_HOSTS
MAIN_TLS_ADVERTISE_HOSTS = *
.endif
tls_advertise_hosts = MAIN_TLS_ADVERTISE_HOSTS

auth_advertise_hosts = ${if eq{$tls_in_cipher}{}{}{*}}

Перезапуск Exim, без ошибок. Затем я провел несколько тестов в http://checktls.com/

TestSender прошел успешно, я мог отправлять электронную почту в защищенном режиме. Но TestSenderAssureTLS не удалось, веб-сайт мог договориться о незашифрованном сообщении.

Что мне не хватает?

Когда я создаю учетную запись в Thunderbird, он автоматически обнаруживает незащищенный канал SMTP, а не канал STARTTLS. Настройка учетной записи и отправка электронной почты завершены успешно. Однако, когда я устанавливаю SMTP-диалог из оболочки компьютера в сети, аутентификация не объявляется. Это выглядит следующим образом:

EHLO <subdomain>.<domain>
250-betelgeuse Hello <subdomain>.<domain> [10.0.14.34]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
AUTH LOGIN
503 AUTH command used when not advertised

Может ли кто-нибудь указать мне, чего мне не хватает, как я могу улучшить тесты? По связанной теме, как я могу рекламировать желаемую конфигурацию клиентам, выполняющим автоматическое определение? Спасибо.

2
задан 13 April 2017 в 15:14
2 ответа

Соединение STARTTLS должно начинаться незащищенным. Опция STARTTLS объявляется только после выполнения первой команды EHLO. Если необходимо применить STARTTLS, необходимо добавить или изменить опцию ACL. Я опубликовал политику электронной почты, которую я применяю Email Policy I apply. Если этот сервер является вашим MX, вам не следует применять STARTTLS во всех соединениях. Моя конфигурация требует STARTTLS для соединений, требующих AUTH. Это не включает в себя соединения из моей локальной сети, но применяется к пользователям, отправляющим электронную почту с моего сервера в роуминге. Я также требую, чтобы аутентификация происходила на порту отправки. Это основа ACL, который я использую.

# This access control list is used after an auth command.
acl_local_auth:

# Deny authentication on unencrypted links
deny
  !encrypted = *
  message = AUTH encryption is required

# Deny if AUTH isn't on submission port (autolist enabled)
deny
   !condition = ${if eq {$interface_port}{587}}
   message = AUTH requires submission port

# Accept if encrypted (should not get here if unencrypted)
accept
  encrypted = *

# Default deny отказывать в доступе на сообщение = AUTH не принято

Вы также можете применить TLS по почте ACL. Этот ACL позволяет внешним отправителям отправлять почту. При тестировании ACL следует рассмотреть возможность использования defer вместо deny. Активация ACL осуществляется путем добавления acl утверждений в основной раздел конфигурации, а вышеуказанные ACL - в раздел ACL.

acl_smtp_auth = acl_local_auth acl_smtp_mail = acl_local_mail_from

2
ответ дан 3 December 2019 в 11:32

В соответствии с вашими настройками ...

tls_advertise_hosts = MAIN_TLS_ADVERTISE_HOSTS
auth_advertise_hosts = ${if eq{$tls_in_cipher}{}{}{*}}

вам требуется соединение TLS для объявления аутентификации, поэтому инициируйте соединение с помощью openssl:

openssl s_client -connect hostname:25 -starttls smtp
0
ответ дан 3 December 2019 в 11:32

Теги

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