Рейтинг:0

Персональный ретранслятор OpenSMTPd дает сбой при использовании «tls-require», отлично работает только с «tls».

флаг cn

В настоящее время я настраиваю несколько уникальный личный сервер электронной почты, используя OpenSMTPd. У меня есть локальный сервер (Raspberry Pi) и удаленный сервер (VPS). Электронные письма, отправленные мне, отправляются на удаленный сервер, а затем ретранслируются на мой локальный сервер.Когда я отправляю электронное письмо, оно отправляется с моего локального сервера на удаленный сервер, а затем передается получателю. В настоящее время я тестирую только входящую почту, и в основном она работает, только с одной проблемой, tls.

Если на моем локальном сервере установлено «tls-require», мои удаленные серверы, кажется, могут подключаться, но затем отключаются и пытаются перейти на обычный (smtp + notls), что, конечно, терпит неудачу. Если я просто использую «tls» вместо «tls-require», происходит то же самое, но попытка smtp+notls работает.

Сообщения об ошибках не кажутся полезными. На удаленном сервере я просто получаю «сбой оппортунистического TLS, переход на обычный». Как я уже говорил ранее, на локальном сервере это выглядит так, как будто соединение было успешным (по крайней мере, я так думаю), но затем разрывается:

smtp подключенный адрес = redacted.remote.ip.address host = mx1.mydomain.tld
Шифры smtp tls = TLSv1.3: TLS_AES_256_GCM_SHA384: 256
smtp отключен, причина = отключение

Я получаю несколько более информативное сообщение об ошибке, если пытаюсь отправить электронное письмо с помощью openssl (с удаленного сервера).

openssl s_client -debug -starttls smtp -crlf -connect redacted.local.ip.address:25

На удаленном сервере все идет нормально, пока я не ввожу получателя, после чего получаю ошибку SSL:

RCPT TO:<[email protected]>
ПЕРЕСОГЛАШЕНИЕ
17412933263728: ошибка: 1404C042: подпрограммы SSL: ST_OK: вызвана функция, которую вы не должны вызывать: /usr/src/lib/libssl/ssl_lib.c:2529:

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


Я знаю, что многие люди не используют принудительный TLS с электронной почтой, но в этом случае мне бы очень хотелось, чтобы он работал.

На моем локальном сервере работает «Raspberry Pi OS 11 Bullseye 64-bit» и OpenSMTPD 6.8.0p2 (последняя версия на apt).

На моем удаленном сервере работает «OpenBSD 7.0 GENERIC#224 amd64» и OpenSMTPD 7.0.0.

Мы будем очень признательны за любые советы. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.


Вот мои конфиги:

ЛОКАЛЬНЫЙ СЕРВЕР smtpd.conf:

псевдонимы таблиц "/etc/smtpd/aliases"
домены таблиц "/etc/smtpd/domains"
таблица паролей "/etc/smtpd/passwds"
таблица удаленных серверов "/etc/smtpd/remote-servers"

pki "mydomain.tld" сертификат "/etc/letsencrypt/live/mydomain.tld/fullchain.pem"
pki "mydomain.tld" ключ "/etc/letsencrypt/live/mydomain.tld/privkey.pem"

# Мне нужен srs здесь, на удалении или и то, и другое?
ключ srs "отредактированный ключ"

фильтр "rdns" фаза подключения соответствует !rdns разъединение "550 ошибка DNS"
фильтр "fcrdns" фаза подключения соответствует !fcrdns отключить "550 ошибка DNS"
фильтр "rspamd" proc-exec "/etc/smtpd/filter-rspamd"

# Входящие
слушать порт 25 eth0 tls-require pki "mydomain.tld" filter { "rdns", "fcrdns" "rspamd" }
# прослушать порт 25 eth0 tls pki "mydomain.tld" filter { "rdns", "fcrdns" "rspamd" }
действие "RECV" lmtp "/var/run/dovecot/lmtp" rcpt-to virtual <псевдонимы>
совпадение с src <remote-servers> для домена <domains> действие "RECV"
match !from src <remote-servers> для домена <domains> отклонить

# Исходящий
слушать порт eth0 465 smtps pki "mydomain.tld" auth <passwds> filter "rspamd" mask-src
слушать порт eth0 587 tls-require pki "mydomain.tld" auth <passwds> filter "rspamd" mask-src
действие "ОТПРАВИТЬ" узел ретрансляции mx1.mydomain.tld:465
совпадение с любой авторизацией для любого действия "ОТПРАВИТЬ"

УДАЛЕННЫЙ СЕРВЕР smtpd.conf:

псевдонимы таблиц "/etc/smtpd/aliases"
домены таблиц "/etc/smtpd/domains"

pki "mydomain.tld" сертификат "/etc/letsencrypt/live/mydomain.tld/fullchain.pem"
pki "mydomain.tld" ключ "/etc/letsencrypt/live/mydomain.tld/privkey.pem"

# Мне нужен srs здесь, на удалении или и то, и другое?
ключ srs "тот же отредактированный ключ"

фильтр "rdns" фаза подключения соответствует !rdns разъединение "550 ошибка DNS"
фильтр "fcrdns" фаза подключения соответствует !fcrdns отключить "550 ошибка DNS"

# Входящие
слушать порт eth0 25 tls pki "mydomain.tld" filter { "rdns", "fcrdns" }
действие "RECV" хост ретрансляции redacted.local.ip.address:25
совпадение с любым для домена <domains> действие "RECV"

# Исходящий
слушать через порт eth0 465 smtps pki "mydomain.tld" mask-src
действие "ОТПРАВИТЬ" реле srs
совпадение с src redacted.local.ip.address для любого действия "ОТПРАВИТЬ"
соответствовать !from src redacted.local.ip.address для любого отклонения

Вот почтовые журналы, если у меня есть "tls-требовать" установлен:

Журнал почты ЛОКАЛЬНОГО СЕРВЕРА:

3 апреля 11:57:26 LocalHostname smtpd[3614276]: 3c3d3943d2bc7134 smtp подключенный адрес=redacted.remote.ip.address host=mx1.mydomain.tld
3 апреля 11:57:26 LocalHostname smtpd[3614276]: 3c3d3943d2bc7134 smtp tls ciphers=TLSv1.3:TLS_AES_256_GCM_SHA384:256
3 апреля 11:57:26 LocalHostname smtpd[3614276]: 3c3d3943d2bc7134 smtp отключен, причина=отключение
3 апреля 11:57:26 LocalHostname smtpd[3614276]: 3c3d39441db05cc1 smtp подключенный адрес=redacted.remote.ip.address host=mx1.mydomain.tld
3 апреля 11:57:26 LocalHostname smtpd[3614276]: 3c3d39441db05cc1 smtp failed-command command="MAIL FROM:<[email protected]>" result="530 5.5.1 Недопустимая команда: необходимо ввести STARTTLS команда первая"
3 апреля 11:57:43 LocalHostname smtpd[3614276]: 3c3d39441db05cc1 smtp отключен, причина = выход

Почтовый журнал УДАЛЕННОГО СЕРВЕРА:

3 апреля 11:57:19 RemoteHostname smtpd[94758]: 7349563019b45aeb подключенный smtp address=209.85.128.178 host=mail-yw1-f178.google.com
3 апреля 11:57:19 RemoteHostname smtpd[94758]: 7349563019b45aeb smtp tls ciphers=TLSv1.3:AEAD-AES256-GCM-SHA384:256
3 апреля 11:57:20 RemoteHostname smtpd[94758]: 7349563019b45aeb сообщение smtp msgid=f8226363 size=2682 nrcpt=1 proto=ESMTP
3 апреля 11:57:20 RemoteHostname smtpd[94758]: 7349563019b45aeb smtp-конверт evpid=f822636342a8821f from=<[email protected]> to=<[email protected]>
3 апреля 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta connecting address=smtp://redacted.local.ip.address:25 host=redacted-local-ip-address.isp.tld
3 апреля 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta подключено
3 апреля 11:57:20 RemoteHostname smtpd[94758]: 7349563019b45aeb smtp отключен, причина = выход
3 апреля, 11:57:20 RemoteHostname smtpd[94758]: smtp-out: ошибка сеанса 734956336de69e03: сбой оппортунистического TLS, переход на обычный
3 апреля 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta connecting address=smtp+notls://redacted.local.ip.address:25 host=redacted-local-ip-address.isp.tld
3 апреля 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta подключено
3 апреля 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta delivery evpid=f822636342a8821f from=<[email protected]> to=<[email protected]> rcpt=<-> source="redacted .remote.ip.address" relay="redacted.local.ip.address (redacted-local-ip-address.isp.tld)" delay=1s result="PermFail" stat="530 5.5.1 Неверная команда: обязательно сначала введите команду STARTTLS"
3 апреля 11:57:22 RemoteHostname smtpd[94758]: 73495634e55adfe9 smtp подключен адрес=локальный хост=mx1.mydomain.tld
3 апреля 11:57:22 RemoteHostname smtpd[94758]: 73495634e55adfe9 smtp failed-command command="RCPT TO: <[email protected]>" result="550 Неверный получатель: <redacted.email.address@ googlemail.com>"
3 апреля 11:57:22 RemoteHostname smtpd[11238]: предупреждение: PermFail отправляет отчет об ошибке в сообщении f8226363 на адрес <[email protected]> для 1 конверта: 550 Недействительный получатель: <redacted.email.address@googlemail .com>
3 апреля 11:57:22 RemoteHostname smtpd[94758]: 73495634e55adfe9 smtp отключен, причина = выход
3 апреля 11:57:37 RemoteHostname smtpd[94758]: 734956336de69e03 mta отключено причина=выйти сообщения=0

И это почтовые журналы, если у меня есть "TLS" установлен:

Журнал почты ЛОКАЛЬНОГО СЕРВЕРА:

3 апр., 12:07:09 LocalHostname smtpd[3849290]: b981307e92d2eeac smtp подключенный адрес=redacted.remote.ip.address host=mx1.mydomain.tld
3 апреля 12:07:09 LocalHostname smtpd[3849290]: b981307e92d2eeac smtp tls ciphers=TLSv1.3:TLS_AES_256_GCM_SHA384:256
3 апреля, 12:07:09 LocalHostname smtpd[3849290]: b981307e92d2eeac smtp отключен, причина = отключение
3 апр., 12:07:09 LocalHostname smtpd[3849290]: b981307ff6e18ae3 smtp подключенный адрес=redacted.remote.ip.address host=mx1.mydomain.tld
3 апреля 12:07:10 LocalHostname smtpd[3849290]: b981307ff6e18ae3 сообщение smtp msgid=082c7a5e size=2850 nrcpt=1 proto=ESMTP
3 апреля, 12:07:10 LocalHostname smtpd[3849290]: b981307ff6e18ae3 smtp-конверт evpid=082c7a5e9dec905f from=<[email protected]> to=<[email protected]>
3 апреля, 12:07:11 LocalHostname dovecot: lmtp(3967460): подключиться с локального
3 апр., 12:07:11 LocalHostname dovecot: lmtp([email protected])<3967460><hmVpIN9/SWLkiTwAmV7YnQ>: msgid=<CACebY1Hm4jdhjFKoZ2374zbEq1MZV-yTxsUauV4gzxXqNBVeaQ>сохранил почту в [email protected].
3 апреля 12:07:11 LocalHostname dovecot: lmtp (3967460): Отключиться от локального: Клиент разорвал соединение (состояние = ГОТОВО)
3 апреля, 12:07:11 LocalHostname smtpd[3849290]: b981308066da2115 mda delivery evpid=082c7a5e9dec905f from=<[email protected]> to=<[email protected]> rcpt=<[email protected]> user=vmail delay=2s result=Ok stat=Доставлено
3 апреля 12:07:27 LocalHostname smtpd[3849290]: b981307ff6e18ae3 smtp отключен, причина = выход

Почтовый журнал УДАЛЕННОГО СЕРВЕРА:

3 апреля, 12:06:59 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp-подключенный адрес=209.85.219.174 host=mail-yb1-f174.google.com
3 апреля 12:06:59 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp tls ciphers=TLSv1.3:AEAD-AES256-GCM-SHA384:256
3 апреля, 12:07:00 RemoteHostname smtpd[94758]: 73495635c8c7456b сообщение smtp msgid=b912e335 size=2670 nrcpt=1 proto=ESMTP
3 апреля, 12:07:00 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp-конверт evpid=b912e33501250790 from=<[email protected]> to=<[email protected]>
3 апреля 12:07:00 RemoteHostname smtpd[94758]: 7349563834c66e1a mta connecting address=smtp://redacted.local.ip.address:25 host=redacted-local-ip-address.isp.tld
3 апр 12:07:00 RemoteHostname smtpd[94758]: 7349563834c66e1a mta подключено
3 апреля, 12:07:00 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp отключен, причина = выход
3 апреля, 12:07:00 RemoteHostname smtpd[94758]: smtp-out: ошибка сеанса 7349563834c66e1a: сбой оппортунистического TLS, переход на обычный
3 апреля, 12:07:00 RemoteHostname smtpd[94758]: 7349563834c66e1a mta connection address=smtp+notls://redacted.local.ip.address:25 host=redacted-local-ip-address.isp.tld
3 апр 12:07:00 RemoteHostname smtpd[94758]: 7349563834c66e1a mta подключено
3 апреля 12:07:02 RemoteHostname smtpd[94758]: 7349563834c66e1a доставка mta evpid=b912e33501250790 from=<[email protected]> to=<[email protected]> rcpt=<-> source="redacted .remote.ip.address" relay="redacted.local.ip.address (redacted-local-ip-address.isp.tld)" delay=2s result="Ok" stat="250 2.0.0 082c7a5e Сообщение принято для Доставка"
3 апреля 12:07:19 RemoteHostname smtpd[94758]: 7349563834c66e1a mta отключено причина=выход сообщений=1

УДАЛЕННЫЙ СЕРВЕР pf.conf:

# $OpenBSD: pf.conf,v 1.55 2017/12/03 20:40:04 затем Exp $
#
# См. pf.conf(5) и /etc/examples/pf.conf

установить пропуск на вот

block return # блокировать трафик без сохранения состояния
pass # установить состояние сохранения

# По умолчанию не разрешать удаленные подключения к X11
блокировать возврат на ! lo0 proto TCP на порт 6000:6010

# Пользователь сборки порта не нуждается в сети
блокировать возврат из журнала proto {tcp udp} пользователя _pbuild
Paul avatar
флаг cn
Укажите операционную систему и версии.
Josey avatar
флаг cn
@Paul - я обновил вопрос, указав версии операционной системы и OpenSMTPD. На моем локальном сервере работает «Raspberry Pi OS 11 Bullseye 64-bit» и OpenSMTPD 6.8.0p2 (последняя версия на apt). На моем удаленном сервере работает «OpenBSD 7.0 GENERIC#224 amd64» и OpenSMTPD 7.0.0.
Paul avatar
флаг cn
Каковы ваши конфигурации портов в `pf.conf`? - выложите полный конфиг, если можно.
Paul avatar
флаг cn
Удаленный сервер использует сертификат LE. Вы подключаетесь к этому серверу по глобально доступному IP-адресу?
Josey avatar
флаг cn
@Paul На локальном сервере нет ps.conf. Удаленный сервер работает, но я не вносил никаких изменений. Я добавил конфиг к вопросу. И локальный сервер, и удаленный сервер используют один и тот же сертификат LE (скопированный с локального сервера на удаленный сервер с использованием scp). Да, это глобально доступный IP-адрес.

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

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