use-mta-sts

<domain>Хаб задаёт сам

Проверять ли соединение по политике MTA-STS приёмника
в конфигурации это строкаuse-mta-sts falseвнутри блока <domain>
Проверка по политике, которую публикует приёмник

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

В режиме принуждения условий три, и нужны все: адрес приёмника совпал с образцом MX из политики; соединение зашифровано; узел проверил цепочку сертификата и имя сервера в нём. Не выполнено что-то одно — письмо не уйдёт.

В режиме testing не запрещается ничего. Узел доставит письмо даже при несовпадении MX — так задумано, и при разборе это первое, что стоит проверить.

Умолчание — false.

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

Главная ловушка — считать, что строка сама по себе что-то гарантирует. Она включает проверку политики приёмника, а не обязательное шифрование. Приёмник без политики или с политикой в режиме testing получит письма ровно как раньше. Обязательность с нашей стороны — это require-starttls, и строки нужны обе.
Что делает Хаб. Пишет yes во всех пятнадцати блоках шаблона политик, включая общий. У крупных приёмников — рядом с require-starttls: шифрование обязательно нашим решением, а MTA-STS добавляет проверку MX и сертификата. В общем блоке обязательности нет, и MTA-STS там — единственное, что требует шифрования: у тех приёмников, которые объявили это сами. В отличие от DANE, MTA-STS не требует от нашей инфраструктуры ничего.
Рекомендуемые значения

Значение булево, и включать его стоит вместе с соседом:

Что стоит Что получаете
только require-starttls шифрование гарантировано, приёмник не проверяется
только эта строка проверка есть, но лишь у приёмников с политикой enforce
обе (наш выбор) шифрование всегда плюс проверка там, где приёмник её требует

Ставить можно широко. В отличие от use-dane, эта строка ничего не требует и на приёмниках без политики просто не срабатывает.

Умолчание false, три условия доставки и правило про объединение очередей — из руководства (§ 3.3.10.108.4). Совет включать в паре и широко — наш.
Пример в конфигурации
# так и стоит в шаблоне политик Хаба — тремя строками
<domain $mailru>
    use-starttls yes
    require-starttls yes
    use-mta-sts yes</domain>
Каждая строка отвечает за своё: первая разрешает шифрование, вторая делает его обязательным нашим решением, третья добавляет проверку приёмника — если он её требует.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Ставят вместо обязательного шифрования

§ 10.6

Чем чреватоСтрока включает проверку политики, а не шифрование. У приёмника без политики письмо уйдёт открытым текстом ровно как раньше — при том что «MTA-STS включён».
Как заметитьВ учёте у части приёмников пусто в поле версии протокола.
Как правильноСтавить рядом require-starttls. Это две разные гарантии, и нужны обе.

Не учитывают влияние на объединение очередей

§ 10.6

Чем чреватоПри принуждающей политике очереди объединяются, только если все объединяемые MX разрешены. Расчёт нагрузки, построенный на объединении, перестаёт сходиться.
Как заметитьОжидаемая объединённая очередь не появляется.
Как правильноСверять образцы MX из политики со списком объединения. Это описанное поведение, а не сбой.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
use-mta-sts <boolean>
Значения
yes | no | true | false
Умолчание
false § 3.3.10.108.4
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <domain> и сливается по обычному правилу блоков получателей: побеждает самое точное совпадение по имени приёмника. Те же три уровня действуют по адресу отправки — узел, <virtual-mta-pool>, <virtual-mta>. Кэш политики при этом общий на узел и от блоков не зависит.
Как проверить на узле
Смотреть надо на политику самого приёмника — от неё всё и зависит:
curl -s https://mta-sts.gmail.com/.well-known/mta-sts.txt
mode: enforce — проверка работает; mode: testing — приёмник ничего не требует, и наша строка ничего не меняет; пустой ответ — политики нет. Во всех трёх случаях наше собственное требование шифрования обеспечивает require-starttls, а не эта строка.
В Хабе
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Шифрование соединений