tls-ciphers

<smtp-listener>

Набор шифров этого слушателя для версий до TLS 1.2
в конфигурации это строкаtls-ciphers HIGH:!ADH:@STRENGTHвнутри блока <smtp-listener>
То же имя ещё 1:<smtp-listener><transmissions-api-listener>— часть из них другие настройки, часть та же самая
Шифры на отдельном входе

Тот же список, что у узла, но для соединений этого слушателя. Запись — как у команды OpenSSL ciphers, умолчание HIGH:!ADH:@STRENGTH.

Действует по TLS 1.2 включительно; у версии 1.3 свой список — tls-v1.3-ciphersuites.

Порядок в списке значим только вместе с соседней строкой tls-cipher-server-preference: по умолчанию шифр выбирает клиент.

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

Умолчание у слушателя своё, такое же, как у узла — строку задают здесь, когда у этого входа должно быть иначе или когда значение изменено на узле (наследования руководство не обещает):

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

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

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

Настраивают слушатель вместо узла при единственном входе

§ 3.3.17.12

Чем чреватоСлушатель один, и настройка у него равносильна настройке узла — но найти её труднее: она лежит внутри блока, а не в корне файла. Следующий человек будет искать в общих настройках.
Как заметитьВ корне файла настройки нет, а поведение узла ей не соответствует.
Как правильноПри одном входе задавать на уровне узла. Настройка слушателя нужна там, где входов несколько и они разные.

Меняют у одного слушателя, ожидая изменения у всех

наш опыт

Чем чреватоСтрока действует только на свой адрес и порт. Соседний вход продолжает работать по значению узла, и разница обнаруживается по поведению разных клиентов.
Как заметитьОдни подающие видят новое поведение, другие прежнее.
Как правильноМенять на уровне узла — тогда изменение достанется всем входам, где не задано своё.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
tls-ciphers <string>
Значения
строка списка шифров в записи команды OpenSSL ciphers
Умолчание
HIGH:!ADH:@STRENGTH § 3.3.17.12
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<smtp-listener>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <smtp-listener> и действует на соединения его адреса и порта. Наследования от smtp-server-tls-ciphers руководство не обещает: у строки своё умолчание, такое же, как у узла, а «наследуется от узла» сказано только про tls-certificate. Изменили значение на узле — повторите его у слушателя явно.
Как проверить на узле
Проверять надо порт того слушателя, о котором речь, — у соседнего значение может быть другим:
openssl s_client -starttls smtp -connect localhost:2525 -cipher 'HIGH:!ADH:@STRENGTH'
Строка Cipher is … означает, что общий шифр нашёлся. Ошибка согласования — список слишком узок для клиентов этого входа.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Безопасность узла · Подключить платформу отправки