MTA-STS и TLS-RPT: защита почты от перехвата на своём сервере
АйТи Фреш
Серверы и инфраструктура

MTA-STS и TLS-RPT для своего почтового сервера: как запретить доставку ваших писем без шифрования

Автор: , директор ООО «АйТи-Фреш» · · ~12 мин чтения
Слева горит облачный дата-центр, справа тихая бухта и домик со своим почтовым сервером
Облако — чужой сервер: когда он горит, вы ждёте. Свой сервер — тихая бухта для переписки.

Ваши письма с реквизитами и договорами могут уходить по интернету открытым текстом — и вы об этом даже не узнаете. Пока почта лежит в облаке, вы даже не знаете, шифруется ли переписка с вашими контрагентами по пути — это решает провайдер. На своём сервере это решаете вы, и MTA-STS — главный инструмент: политика, которая говорит отправителям «доставляйте мне почту только по шифрованному каналу с правильным сертификатом». TLS-RPT добавляет отчёты о том, где шифрование ломается. Разбираем, как включить MTA-STS на своём почтовом сервере за час и не потерять входящие письма.

Своя почта вместо облака: варианты решения

Облачная почта — это ваша переписка на чужом сервере: когда у провайдера авария, вы ждёте вместе со всеми. Собственный почтовый сервер возвращает компании контроль. Основные варианты:

mailcow

Почта, антиспам и веб-почта SOGo с календарями в контейнерах Docker; обновление одной командой.

Carbonio CE

Наследник Zimbra: привычный веб-клиент с календарями и адресными книгами, как в облаке.

iRedMail

Postfix, Dovecot, антиспам и веб-почта на обычном Linux-сервере; от 4 ГБ памяти.

Stalwart

Современный сервер «всё в одном»: IMAP, SMTP, CalDAV, CardDAV; скромные требования.

Почта на инфраструктуре АйТи Фреш

Carbonio CE или mailcow на наших серверах в ЦОД МТС, антиспам и ежедневные бэкапы — от 150 ₽/мес за ящик.

Подберём вариант под вашу компанию и перенесём почту →

Почему шифрование между серверами — не гарантия

Почтовые серверы передают письма друг другу по SMTP и договариваются о шифровании командой STARTTLS. Проблема в том, что эта договорённость необязательна: если по пути кто-то вырежет из ответа сервера предложение STARTTLS или подставит поддельный сертификат, отправитель по умолчанию просто отправит письмо открытым текстом. Это называется атакой понижения, и для деловой переписки с договорами и реквизитами это прямая угроза.

MTA-STS закрывает эту дыру: отправитель заранее узнаёт, что ваш домен требует шифрования с действительным сертификатом, и отказывается доставлять иначе.

Шифрование — по требованию, а не по желанию
Шифрование — по требованию, а не по желанию

Открытым текстом через весь интернет

Шифрование между почтовыми серверами по умолчанию — добровольное. Достаточно кому-то по пути вырезать одну строку из ответа сервера, и письмо с платёжными реквизитами уйдёт незашифрованным. Подмена счетов — одна из самых прибыльных схем мошенничества, и начинается она именно здесь.

MTA-STS превращает шифрование из пожелания в требование: ваш домен заявляет миру, что принимает почту только по защищённому каналу с правильным сертификатом. Час настройки — и эта дыра закрыта. В облаке вы бы даже не узнали, есть ли она.

Облако рушится, и сервер падает вместе с вашими письмами — неон
Облако рушится, и сервер падает вместе с вашими письмами.

Кому это нужно в первую очередь

Перехват почты в пути — не теоретическая угроза для тех, чья переписка стоит денег. Бухгалтерия, которая отправляет и получает платёжные реквизиты, — классическая цель подмены счетов. Юристы с договорами и доверенностями. Отдел продаж с коммерческими предложениями и ценами. Руководство с переговорами. Для всех них MTA-STS — дешёвая страховка: час настройки и мониторинг сертификата.

Ошибки MTA-STS

Как работает MTA-STS

Стандарт описан в RFC 8461. Владелец домена публикует две вещи: DNS-запись _mta-sts с идентификатором политики и файл политики по HTTPS на поддомене mta-sts. В политике — режим, список ваших MX-серверов и срок, на который отправитель может запомнить политику. Отправитель, поддерживающий MTA-STS, перед доставкой проверяет запись, скачивает политику по HTTPS — где подлинность гарантирует обычный веб-сертификат, — и доставляет почту только на перечисленные MX и только по TLS с проверкой сертификата.

Крупные почтовые сервисы поддерживают MTA-STS при отправке, поэтому политика начинает защищать вашу входящую почту сразу после публикации.

Политика кэшируется отправителем на срок max_age. Это значит, что злоумышленнику мало вмешаться в одно соединение: отправитель уже знает, что ваш домен требует шифрования, и не поверит подмене, пока политика не истечёт.

Внедрение за две недели
Внедрение за две недели
Свой сервер — крепость, которую не берёт чужой пожар — пиксель-арт
Свой сервер — крепость, которую не берёт чужой пожар.

Что нужно заранее

MTA-STS требует, чтобы сертификат вашего почтового сервера был действительным и выдан на имя, указанное в MX. Самоподписанный сертификат или сертификат на другое имя в строгом режиме приведёт к отказу в доставке. Проверьте это до включения.

MTA-STS или DANE

Шаг 1. Файл политики

Создайте файл политики и опубликуйте его по адресу https://mta-sts.company.ru/.well-known/mta-sts.txt. Начинайте с режима testing: в нём отправители ничего не блокируют, но присылают отчёты о проблемах.

# https://mta-sts.company.ru/.well-known/mta-sts.txt
version: STSv1
mode: testing
mx: mail.company.ru
max_age: 86400

Поле mx перечисляет все ваши MX-серверы, по строке на каждый; допускается шаблон вида *.company.ru. max_age — в секундах: на время тестов ставьте сутки, в рабочем режиме — неделю и больше. Для поддомена mta-sts нужен свой действительный веб-сертификат.

Три записи
Три записи

Шаг 2. DNS-записи

Опубликуйте запись _mta-sts с идентификатором политики и запись TLS-RPT для отчётов. Идентификатор — любая строка; меняйте его при каждом изменении файла политики, иначе отправители не узнают, что политика обновилась.

_mta-sts.company.ru.     TXT  "v=STSv1; id=20261011T1800"
_smtp._tls.company.ru.   TXT  "v=TLSRPTv1; rua=mailto:tlsrpt@company.ru"
mta-sts.company.ru.      A    203.0.113.10
 — chains_cinema

Шаг 3. Отчёты TLS-RPT

TLS-RPT описан в RFC 8460. Отправители, поддерживающие его, раз в сутки присылают на указанный адрес отчёт в формате JSON: сколько соединений к вашим серверам прошли с шифрованием успешно, сколько — с ошибкой и какой. Именно отчёты показывают, можно ли переходить в строгий режим: если ошибок нет неделю-две, политика готова.

Отчёты приходят в виде сжатых вложений. Их удобно складывать в отдельный ящик и разбирать скриптом или сервисом анализа отчётов.

Не направляйте отчёты в личный ящик администратора: в крупных компаниях их приходят десятки в день, и они быстро засоряют почту. Отдельный ящик, правило Sieve, которое складывает вложения в папку, и еженедельный просмотр сводки — достаточно для компании любого размера.

Что нужно заранее

Как читать отчёт TLS-RPT

Отчёт — JSON-файл, который описывает сутки соединений к вашему домену от одного отправителя. Главное в нём: какая политика применялась — MTA-STS, DANE или никакая; число успешных сессий; число сессий с ошибкой и подробности по каждой причине. Типичные причины ошибок, описанные в стандарте: сертификат истёк, сертификат не прошёл проверку, имя не совпадает, сервер не предложил STARTTLS, политику не удалось скачать.

Если в отчётах есть ошибки истечения или несовпадения имени — исправляйте сертификат до перехода в строгий режим. Ошибки скачивания политики — проверяйте доступность поддомена mta-sts и его сертификат. Если ошибок нет, а успешных сессий много, — политика работает, можно переходить в enforce.

Авария в чужом дата-центре — и почта компании недоступна — карандашный рисунок
Авария в чужом дата-центре — и почта компании недоступна.

Где разместить файл политики

Файл политики — маленький статический текст, и разместить его можно где угодно, лишь бы по HTTPS с действительным сертификатом на имя mta-sts.company.ru. Варианты: тот же веб-сервер, что отдаёт веб-почту, если на нём можно добавить виртуальный хост; отдельный статический хостинг; веб-сервер сайта компании. Важно, чтобы этот веб-сервер не был единой точкой отказа для почты: если файл политики недоступен, отправители используют закэшированную версию до истечения max_age, поэтому короткая недоступность не страшна.

План внедрения по дням

Несколько доменов

Если у компании несколько почтовых доменов, политика нужна для каждого: своя запись _mta-sts и свой поддомен mta-sts в каждом домене. Чтобы не обслуживать десятки одинаковых файлов, поддомены mta-sts всех доменов можно направить записью CNAME на один веб-сервер, который отдаёт политику для любого имени — сертификат при этом должен покрывать все имена. Отчёты TLS-RPT удобно собирать в один ящик.

Блэкаут у провайдера: сервис стоит, вы ждёте — изометрия
Блэкаут у провайдера: сервис стоит, вы ждёте.
Типичные ошибки

Шаг 4. Переход в enforce

Когда отчёты чистые, смените в файле политики mode на enforce, увеличьте max_age и обновите id в DNS-записи. С этого момента отправители, поддерживающие MTA-STS, не доставят ваши письма без шифрования и правильного сертификата. Если ваш сертификат когда-нибудь истечёт, входящая почта от этих отправителей остановится — поэтому мониторинг срока сертификата становится обязательным.

 — cloud_papercut

Проверка

Проверьте каждую часть отдельно: запись в DNS, доступность политики по HTTPS, запись TLS-RPT и сертификат почтового сервера при STARTTLS.

dig +short TXT _mta-sts.company.ru
curl -s https://mta-sts.company.ru/.well-known/mta-sts.txt
dig +short TXT _smtp._tls.company.ru
openssl s_client -starttls smtp -connect mail.company.ru:25 -servername mail.company.ru </dev/null | grep -E "subject|issuer|Verify return code"

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

 — bay_oil

Сертификаты: автоматическое продление и мониторинг

В строгом режиме MTA-STS сертификат почтового сервера становится критической деталью: его истечение останавливает входящую почту от крупных отправителей. Поэтому сертификат должен продлеваться автоматически, а продление — проверяться. Используйте ACME-клиент с автоматическим обновлением, после обновления перезапускайте почтовые службы, чтобы они подхватили новый сертификат, и настройте оповещение, если до истечения осталось меньше двух недель.

Частая ловушка — сертификат обновился на диске, а Postfix и Dovecot продолжают отдавать старый, пока их не перезапустят. Проверяйте не файл, а то, что реально отдаёт сервер, — командой openssl из раздела проверки.

 — server_watercolor

Облако против своего сервера в вопросе шифрования

В облачной почте политика шифрования, сертификаты и отчёты — внутреннее дело провайдера. Вы не видите, сколько писем к вам пришло без шифрования, и не можете потребовать от отправителей большего. На своём сервере это видно в отчётах TLS-RPT и управляется одной строкой в политике. Это хороший пример того, что свой сервер — не только про доступность, но и про контроль над тем, как именно ходит ваша переписка.

Письма уходят из горящего облака в надёжное хранилище — стиль чертежа
Письма уходят из горящего облака в надёжное хранилище.

Резервный MX и MTA-STS

Если у домена есть резервный MX, он обязан быть в списке mx политики и иметь собственный действительный сертификат на своё имя. Иначе в строгом режиме отправители откажутся доставлять на него письма, и резервный сервер станет бесполезен именно тогда, когда основной недоступен. Проверьте резервный MX той же командой openssl, что и основной, и включите его сертификат в мониторинг. Об устройстве резерва — в статье о резервном MX и второй площадке.

Переезд из облака на свой сервер — комикс
Переезд из облака на свой сервер.

Что увидят отправители

Для обычных отправителей ничего не меняется: их серверы и так шифруют соединение с вашим, если сертификат в порядке. MTA-STS проявляет себя только в двух случаях — когда кто-то пытается вмешаться в соединение и когда у вас проблема с сертификатом. В первом случае письмо не уйдёт открытым текстом, отправитель будет повторять попытки и в итоге получит уведомление о недоставке. Во втором — то же самое, и именно поэтому тестовый период и мониторинг сертификатов обязательны.

Свой сервер под защитой, пока снаружи шторм — мультяшный стиль
Свой сервер под защитой, пока снаружи шторм.

MTA-STS в mailcow и других сборках

В mailcow поддержка MTA-STS встроена: политика отдаётся встроенным веб-сервером, нужно опубликовать DNS-записи и проверить, что файл отдаётся. После обновлений стоит перепроверять — мы разбирали случай, когда политика пропала после обновления, в статье «mailcow: MTA-STS пропал после обновления». В iRedMail, Carbonio и голом Postfix файл политики публикуется любым веб-сервером на поддомене mta-sts.

Ключи от своей почты — у компании — стиль «Матрицы»
Ключи от своей почты — у компании.
Письма переезжают из облака в свой дом — пиксель-арт
Письма переезжают из облака в свой дом.

MTA-STS для исходящей почты

MTA-STS защищает входящую почту вашего домена. Чтобы ваш сервер тоже уважал политики получателей при отправке, ему нужна поддержка проверки MTA-STS — в Postfix это делается внешним сервисом политики, который Postfix спрашивает перед доставкой. Это дополнительная настройка, но она закрывает и обратное направление: ваши письма контрагентам не уйдут открытым текстом, если они опубликовали политику.

Облачный дата-центр плавится — и вместе с ним ваша переписка — кинокадр FLUX.2
Облачный дата-центр плавится — и вместе с ним ваша переписка.

MTA-STS или DANE

Альтернатива — DANE: отпечаток сертификата публикуется в DNS записью TLSA, а подлинность гарантирует DNSSEC. DANE строже и не требует веб-сервера, но требует DNSSEC для зоны домена, который поддерживают не все регистраторы и DNS-провайдеры. MTA-STS проще внедрить и шире поддерживается крупными сервисами. Можно включить оба: отправители, поддерживающие DANE, используют его, остальные — MTA-STS.

Компания в заложниках у облака — карандашный рисунок
Компания в заложниках у облака.

План внедрения по дням

Реалистичный порядок для компании с одним доменом.

Пожар в облачном дата-центре и тихая бухта со своим сервером
Авария у провайдера или тишина своего сервера — выбор за компанией.

Типичные ошибки

Все они приводят либо к отсутствию защиты, либо к потере входящей почты.

Место MTA-STS в защите почты

MTA-STS — часть общего набора, который делает свой почтовый сервер надёжнее облачного: SPF, DKIM и DMARC защищают от подделки отправителя, MTA-STS — от перехвата в пути, защита от перебора и лимиты — от взлома ящиков. Подробнее о доставляемости — в статье о доставляемости почты после переезда, о базовой защите — в статье о безопасности почтового сервера в первый день, о DMARC — в статье о DMARC и BIMI.

Частые вопросы

Что такое MTA-STS?

Политика домена, опубликованная через DNS и HTTPS, которая требует от отправителей доставлять почту только по TLS с действительным сертификатом на перечисленные MX.

Что такое TLS-RPT?

Ежедневные отчёты отправителей о том, удалось ли установить шифрованное соединение с вашими серверами, и о причинах ошибок.

С какого режима начинать?

С testing: отправители ничего не блокируют, но присылают отчёты. В enforce переходите после одной-двух недель чистых отчётов.

Что будет, если сертификат истечёт в режиме enforce?

Отправители, поддерживающие MTA-STS, перестанут доставлять вам почту, пока сертификат не обновят. Нужен мониторинг срока.

Чем MTA-STS отличается от DANE?

DANE публикует отпечаток сертификата в DNS и требует DNSSEC; MTA-STS опирается на HTTPS и проще во внедрении. Можно включить оба.

Поддерживает ли mailcow MTA-STS?

Да, политика отдаётся встроенным веб-сервером; нужно опубликовать DNS-записи и проверять файл после обновлений.

Миграция почты с Яндекса под ключ от АйТи Фреш

Возьмём на себя весь переезд: проверим текущую почту и домен, поможем выбрать вариант, перенесём письма, папки, календари и контакты, переключим MX, SPF, DKIM и DMARC, проверим доставляемость и поддержим сотрудников после переезда.

Куда переносим: в облако на российской площадке, на ваш собственный сервер, в гибридную схему или как резервный контур рядом с текущей почтой.

  1. Аудит текущей почты и домена — 1–2 рабочих дня
  2. План миграции и фиксированная смета — 1 рабочий день
  3. Настройка сервера, DNS и перенос ящиков — 3–5 рабочих дней
  4. Сопровождение сотрудников и проверка доставляемости — 5 рабочих дней
РаботаСтоимость
Перенос почты, календарей и контактов до 50 ящиковот 12 000 ₽ разово
Корпоративная почта под ключ: сервер, домен, SPF/DKIM/DMARC, до 15 ящиковот 25 000 ₽ разово
Ящики на нашей инфраструктуре (Carbonio CE или mailcow, ЦОД МТС)от 150 ₽/мес за ящик
Обслуживание почтового сервераот 7 000 ₽/мес

Опыт: перенесли 617 ящиков гостиничной группы за 3 дня. Точный срок и смету фиксируем после аудита; простой при переключении зависит от схемы и оговаривается в договоре. Подробнее — на странице услуги «Корпоративная почта для бизнеса».

Столкнулись с похожей задачей? Обращайтесь — решим

Если у вас происходит что-то из описанного в этой статье — или любая другая проблема с ИТ-инфраструктурой, — обращайтесь в любое время. Мои специалисты и я лично разберём ситуацию, найдём настоящую причину и доведём до решения.

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

© ООО «АйТи-Фреш» · Москва · Все статьи