smtp-tls-ciphers

<domain>

Набор шифров для версий до TLS 1.2 включительно
в конфигурации это строкаsmtp-tls-ciphers HIGH:!ADH:@STRENGTHвнутри блока <domain>
Чем именно шифровать — до версии 1.2

Строка задаёт список допустимых шифров в записи команды OpenSSL ciphers. Действует только на версии по TLS 1.2: у TLS 1.3 наборы устроены иначе и задаются строкой smtp-tls-v13-ciphersuites.

Умолчание разумное — HIGH:!ADH:@STRENGTH: только сильные шифры, без анонимного Диффи-Хеллмана, отсортированные по крепости. Менять его обычно не нужно.

Поверх списка действует openssl-security-level. Он может запретить шифр, который список разрешает: библиотека шифрования у PowerMTA своя, встроенная в поставку, и её уровень безопасности сильнее любой строки конфигурации.

Главная ловушка — сузить список и потерять приёмников молча. Если с приёмником не находится общего шифра, согласование срывается, и дальше всё зависит от require-starttls: либо письмо уходит открытым текстом, либо не уходит вовсе. Ни то ни другое не выглядит как «неверный список шифров».
Что делает Хаб. Не пишет — оставляет вендорское умолчание. Оно уже исключает слабое, а сужать дальше означает терять приёмников со старым стеком без всякого выигрыша: крупные и так согласуют современные шифры.
Рекомендуемые значения

Значение — строка в записи OpenSSL. Что стоит помнить:

Что Замечание
HIGH:!ADH:@STRENGTH (умолчание) сильные шифры, без анонимных, по убыванию крепости
своё сужение проверять, что крупные приёмники ещё согласуются
версия 1.3 этой строкой не задаётся — есть отдельная
openssl-security-level может запретить и то, что разрешено здесь

Проверять список надо не глазами, а согласованием — командой из справки, до применения на парке.

Умолчание и ограничение версиями до 1.2 — из руководства (§ 3.3.10.108.15). Совет проверять согласованием — наш.
Пример в конфигурации
# умолчание, записанное явно — так конфигурация читается без знания умолчаний
<domain example.com>
    smtp-tls-ciphers HIGH:!ADH:@STRENGTH</domain>
Пример руководства повторяет умолчание. Если пишете своё — сначала проверьте, что крупные приёмники ещё согласуют хоть один шифр из списка.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Сужают список в общем блоке получателей

наш опыт

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

Ждут, что строка подействует на TLS 1.3

§ 3.3.10.108.16

Чем чреватоНе подействует: у версии 1.3 свой список, smtp-tls-v13-ciphersuites. Настройка выглядит применённой и на современных соединениях не участвует.
Как заметитьСписок сужен, а согласованный шифр в него не входит.
Как правильноЗадавать обе строки, если ограничение действительно нужно.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
smtp-tls-ciphers <string>
Значения
строка списка шифров в записи команды OpenSSL ciphers
Умолчание
HIGH:!ADH:@STRENGTH § 3.3.10.108.15
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <domain> и сливается по обычному правилу блоков получателей: побеждает самое точное совпадение по имени приёмника. Те же три уровня действуют по адресу отправки. Поверх всего стоит openssl-security-level — он один на узел и уровней не имеет.
Как проверить на узле
Проверять список надо согласованием с настоящим приёмником:
openssl s_client -starttls smtp -connect mx.example.com:25 -cipher 'HIGH:!ADH:@STRENGTH'
Строка Cipher is … в ответе означает, что общий шифр нашёлся. Ошибка согласования — что список слишком узкий для этого приёмника, и на узле это обернётся либо открытым текстом, либо отказом.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Шифрование соединений