Рейтинг:1

Настройка Exim Smarthost работает в starttls, но не в smtps

флаг cn

Я настроил свой exim4 как локальный mta с доставкой smarthost (debian 10 vm), следуя этому руководству: Exim на DebianWiki

Если мой смарт-хост ожидает ssl-соединение (smtp через ssl), он не работает.

Когда локальное веб-приложение отправляет электронное письмо на адрес localhost:25, оно остается в очереди; если я попытаюсь принудительно доставить его, это произойдет:

root@testbug:~# дата && exim -v -M 1nrqKZ-0003Ji-WE
Пт, 20 мая 2022 г., 10:33:50 CEST
доставка 1nrqKZ-0003Ji-WE
R: смартхост для имя.фамилия@gmail.com
T: remote_smtp_smarthost для имени.фамилия@gmail.com
Транспортный порт = 25 заменен на порт для конкретного хоста = 465
Подключение к smtps.aruba.it [62.149.128.218]:465 ... подключено

=========== застрял на несколько секунд ===========

  SMTP(закрыть)>>
ЖУРНАЛ: ГЛАВНЫЙ
  H=smtps.aruba.it [62.149.128.218]: удаленный узел закрыл соединение в ответ на начальное соединение.
Транспортный порт = 25 заменен на порт для конкретного хоста = 465
Подключение к smtps.aruba.it [62.149.156.218]:465 ... подключено

=========== застрял на несколько секунд ===========

  SMTP(закрыть)>>
ЖУРНАЛ: ГЛАВНЫЙ
  H=smtps.aruba.it [62.149.156.218]: удаленный узел закрыл соединение в ответ на начальное соединение.
ЖУРНАЛ: ГЛАВНЫЙ
  == [email protected] R=smarthost T=remote_smtp_smarthost defer (-18) H=smtps.aruba.it [62.149.156.218]: удаленный хост закрыл соединение в ответ на первоначальное подключение

Это журнал для этого:

root@testbug:~# tail -3 /var/log/exim4/mainlog
20.05.2022, 10:35:31 1nrqKZ-0003Ji-WE H=smtps.aruba.it [62.149.128.218]: удаленный узел закрыл соединение в ответ на начальное соединение.
20.05.2022, 10:37:11 1nrqKZ-0003Ji-WE H=smtps.aruba.it [62.149.156.218]: удаленный узел закрыл соединение в ответ на начальное соединение.
2022-05-20 10:37:11 1nrqKZ-0003Ji-WE == [email protected] R=smarthost T=remote_smtp_smarthost defer (-18) H=smtps.aruba.it [62.149.156.218]: удаленный хост закрытое соединение в ответ на первоначальное соединение

Обратите внимание, что сервер принимает ssl-соединения:

root@testbug:~# openssl s_client -connect smtps.aruba.it:465
ПОДКЛЮЧЕН(00000003)
depth=2 C = IT, L = Милан, O = Actalis S.p.A./03358520967, CN = Actalis Authentication Root CA
[...]
Имена ЦС сертификата клиента не отправлены
[...]
Проверка: ОК
---
Новый, TLSv1.2, шифр ECDHE-RSA-AES256-GCM-SHA384.
Открытый ключ сервера 2048 бит.
Поддерживается безопасное повторное согласование IS
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
SSL-сессия:
    Протокол: TLSv1.2
[...]
---
220 smtpdh08.ad.aruba.it Сервер Aruba Outgoing Smtp ESMTP готов

Если я переключусь на другой сервер smarthost smtp.mydomain.it, запущенный тем же провайдером (поэтому я использую те же учетные данные для аутентификации по сравнению с смарт-хостом) на порту 25 с starttls, все работает гладко, электронные письма доставляются (в starttls), когда я перезапускаю exim:

20.05.2022, 10:42:48 запущен демон exim 4.92: pid=4015, -q30m, прослушивание SMTP на [127.0.0.1]:25 [::1]:25
20.05.2022, 10:42:48 Начать запуск очереди: pid=4017
2022-05-20 10:42:51 1nrqKZ-0003Ji-WE => [email protected] R=smarthost T=remote_smtp_smarthost H=smtp.mydomain.it [62.149.128.203] X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384: 256 CV=no DN="C=IT,ST=Bergamo,L=Ponte San Pietro,O=Aruba S.p.A.,CN=*.aruba.it" A=plain C="250 2.0.0 ryDgn51y1TRWPryDinATBj почта принята к доставке"
2022-05-20 10:42:51 1nrqKZ-0003Ji-WE Завершено
2022-05-20 10:42:51 Конец выполнения очереди: pid=4017

Вы можете видеть, что электронная почта правильно доставлена ​​в starttls:

root@testbug:~# ngrep -qt -dany порт 25
интерфейс: любой
фильтр: (порт 25) и (ip || ip6)

T 2022/05/20 10:42:48.900722 62.149.128.203:25 -> MY.SRV.IP.ADDR:47932 [AP] #4
  220 smtpdh13.ad.aruba.it Сервер Aruba Outgoing Smtp ESMTP готов..

T 2022/05/20 10:42:48.900903 MY.SRV.IP.ADDR:47932 -> 62.149.128.203:25 [AP] #5
  EHLO testbug.mydomain.it..

T 2022/05/20 10:42:49.025487 62.149.128.203:25 -> MY.SRV.IP.ADDR:47932 [AP] #7
  250-smtpdh13.ad.aruba.it привет [MY.SRV.IP.ADDR], рад знакомству..250-HELP..250-AUTH LOGIN PLAIN..250-SIZE 524288000..250-ENHANCEDSTATUSCODES..250 -8BITMIME..250-STARTTLS..250 OK..

T 2022/05/20 10:42:49.025702 MY.SRV.IP.ADDR:47932 -> 62.149.128.203:25 [AP] #8
  НАЧАЛО..

T 2022/05/20 10:42:49.092110 62.149.128.203:25 -> MY.SRV.IP.ADDR:47932 [AP] #10
  220 2.0.0 Готов к запуску TLS..

T 2022/05/20 10:42:49.111151 MY.SRV.IP.ADDR:47932 -> 62.149.128.203:25 [AP] #11
  ....L...H..d.@"^.`I.....OU..x.N|Z..."...._@..:....... ..,.......+.....0...../.......5.....[...]

Может ли кто-нибудь указать мне правильное направление для расследования?

Может ли это быть проблемой сети/портов? Или проблема с сертификатом (я генерирую свой самоподписанный сертификат немного по-другому и на самом деле я не знаю, зачем он нужен, и проверяется ли этот сертификат сервером)?

Большое спасибо.

РЕДАКТИРОВАТЬ: получил более подробный вывод для принудительной доставки сообщения: https://pastebin.com/axRsQmwy

anx avatar
флаг fr
anx
Тот факт, что `tls_on_connect_ports` [доступ к конфигурации осуществляется только](https://github.com/Exim/exim/search?q=on_connect_ports) через `tls_in.on_connect_ports` без возможности настройки `tls_out.on_connect_ports`, заставляет меня подозревают, что он поддерживается только для входящих соединений и игнорируется для исходящего SMTP. Exim мог просто никогда не поддерживать это, так как это не было стандартом и не рекомендовалось во время реализации функции на стороне демона.
флаг cn
Параметр `hosts_require_tls` @anx, который задается как макрос REMOTE_SMTP_SMARTHOST_HOSTS_REQUIRE_TLS ( = * ) ... который оценивается [здесь] (https://github.com/Exim/exim/blob/9f6b3bf5187562bac4c96e3ed6a17740d01489fa/src/src/transports/smtp. с# L2879)?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.