Разрешение tls для получения почты от РУ сегмента?
Госорганы переходят или перешли на сертификаты, которые выпущены только в РФ и их не принимают толком где-то.
Я использую mailcow и обычный Let's Encrypt сертификат. Проблема, в том что письма не приходят \ не уходят на почтовые сервисы, где Russian Trusted Sub CA.
TLS is required, but was not offered by host mail.XXX.ru[XXX.XXX.XXX.XXX]
Не принимает сертификат, как понимаю.
Возможно, кто то сталкивался с такой проблемой и знает как решить. Возможно создать белый лист, и пропускать все почты от данного домена.
Обновлено. Понял что протоколы
SMTP (465) и SMTP STARTTLS (587) не отвечают. А все остальные нормально выдают сертификат.
Проверял
# Connect via SMTP STARTTLS (587)
openssl s_client -starttls smtp -connect MAILCOW_HOSTNAME:587 | openssl x509 -noout -text
# Connect via SMTP (465)
openssl s_client -connect MAILCOW_HOSTNAME:465 | openssl x509 -noout -text
Дмитрий, знакомьтесь, это STARTTLS! STARTTLS, знакомся, это Дмитрий, который в тебя не верует, RFC 3207 ему не указ. Ну и что, что почтовые сервера тебя используют во всю, нет тебя и всё тут!
bit8, это вполне нормальный вариант, докер так устроен, что контейнер можно и нужно иметь возможность пересоздать когда угодно. Если у вас уже сделано не так, то это кривые руки того, кто ставил, не разбираясь в теме.
shurshur, Собрал я заново, разницы нету. Но я понял, что проблема точно не в сертификатах. Как письма уходят и приходят, но проверки на STARTTLS или вообще на любой протокол не работаю.
Возможно из-за nginx который стоит до сервера, но если брать порты, то там напрямую идет переадресация. На него только 80 и 443 порты уходят, что бы админ панель убрать и переадресовывать на SOGo сразу
Текущие практики применения STARTTLS для взаимодействий между серверами следующие:
- если клиент и сервер поддерживают MTA-STS или DANE, то следовать спецификации MTA-STS или DANE (TLS в таком случае обязателен и валидность сертификата проверяется)
- иначе в случае поддержки STARTTLS сервером клиент не проверяет валидность сертификата (сервер может использовать в т.ч. самоподписанный сертификат)
- если произошел сбой в STARTTLS то письмо отправляется в открытом тексте
- статистика использования STARTTLS доступна через TLS-RPT.
Почему используется именно такой подход (не проверяется сертификат сервера):
- в случае пассивного MitM (когда можно только слушать трафик) не важно, какой именно сертификат использует сервер
- в случае акттивного MitM между серверами атакующий может изменить MX записи направив трафик на другой сервер и/или выпустить сертификат для одного из серверов, поэтому проверка сертификата не спасает без дополнительных мер (определяемых MTA-STS и DANE).
Поскольку MTA-STS и DANE вы наверняка не поддерживаете, вам надо в конфигурации вашего сервера
- отключить проверку сертификата
- разрешить фолбек на отправку письма в открытом тексте (не требовать обязательного STARTTLS)
- там где надо гарантировать доставку писем поверх TLS на определенные домены, сконфигурировать MTA-STS, DANE (в зависимости от поддержки доменами) либо отдельные транспорты с жестким прописыванием имени MX сервера для каждого домена назначения и включением TLS и проверки сертификата для транспорта.
Иначе ужесточая требования TLS без дополнительных мер вы только стреляете себе в ногу.
bit8, потому что у вас нестандартная конфигурация mailcow. По умолчанию он не требует (форсирует) TLS. Вероятно, вы включили эту функцию, отключите её.
Добро пожаловать в реальный мир, где "быстро установить свой почтовый сервер одной кнопкой" не работает.
mailcow использует postfix, управлять конфигурацией postfix в mailcow можно через https://docs.mailcow.email/manual-guides/Postfix/u...
В postfix нужные вам параметры это
smtp_enforce_tls no
smtp_tls_security_level (may или dane в зависимости от поддержки dane)
по остальным smtp_tls_* можете пройтись
bit8, только что проверил свою самую обычную стандартную установку mailcow.
Untrusted TLS connection established to mail.arhtc.ru[78.37.97.155]:25: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
# openssl s_client -port 25 -starttls smtp -host mail.arhtc.ru
CONNECTED(00000003)
depth=1 C = RU, O = The Ministry of Digital Development and Communications, CN = Russian Trusted Sub CA
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = RU, ST = Arkhangelsk, L = Arkhangelsk, O = Arkhangelsk telecommunication centre, CN = *.arhtc.ru
verify return:1
---
Certificate chain
0 s:C = RU, ST = Arkhangelsk, L = Arkhangelsk, O = Arkhangelsk telecommunication centre, CN = *.arhtc.ru
i:C = RU, O = The Ministry of Digital Development and Communications, CN = Russian Trusted Sub CA
1 s:C = RU, O = The Ministry of Digital Development and Communications, CN = Russian Trusted Sub CA
i:C = RU, O = The Ministry of Digital Development and Communications, CN = Russian Trusted Root CA
>Отключение TLS это все письма будут без шифрование, а этого я не могу сделать, что бы у людей письма были открытые.
TLS с использованием публичных CA между серверами это криптографический цирк, потому что процесс получения сертификата для сервера сам по себе уязвим к MitM. Если я MitMлю трафик к вашему серверу, я получу для него сертикат Let's encrypt примерно за пол-секунды, после чего буду успешно MitMить TLS трафик. А поскольку вы не следите за CT-логами, вы этого даже и не заметите. Эту проблему решает DANE, но проникновение DANE на текущий момент нулевое, потому что для него нужен DNSSEC. А DNSSEC пока не хочет никто, кто хочет много девяток в SLA. У MTA-STS проникновение чуть больше, потому что не требуется DNSSEC, но конкретно от этой проблемы он в целом не спасает.
ValdikSS Прям не знаю, максимум что менял, это где хранится почта, примонтировал диск и там храню. /mnt/
Ну и еще обратный прокси, что бы пользователи сразу заходили на /SOGo/, остальное прям стандартно, как в документах по установке
Владимир Дубровин, Я банально не могу отключить его. При проверке должен быть. Мы не гос учреждение не требуется прям Russian Trusted Sub CA, но должен быть tls сертификат, даже Let's encrypt подойдет.
bit8, при такой конфигурации сертификат и STARTTLS будут, просто в случае если не получилось проверить сертификат или установить STARTTLS все будет работать даже с невалидным сертификатом или без STARTTLS.
Владимир Дубровин, Ну вот лучше тогда найти способ проверки, если не проходит сертификат все равно пропускать. Но первоначально пытаться по сертификату
На данный момент помогает лишь, ручное добавление домена в правила tls.
Хотя глобальные изменены на may
"Переопределение правил для политик исходящих соединений TLS"
в файлах
postfix/extra.cf
postfix/main.cf
Установлено smtp_tls_security_level = may, но глобально не срабатывает.