tls-cipher-server-preference

<smtp-listener>

Чей порядок предпочтений главный на этом входе
в конфигурации это строкаtls-cipher-server-preference falseвнутри блока <smtp-listener>
То же имя ещё 1:<smtp-listener><transmissions-api-listener>— часть из них другие настройки, часть та же самая
Кто выбирает шифр на этом входе

Та же настройка, что у узла, но для соединений этого слушателя. По умолчанию из разрешённых шифров выбирает клиент; строка делает главным наш порядок.

Смысл появляется вместе с сортировкой списка по крепости: тогда берётся самый сильный шифр, доступный клиенту.

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

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

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

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

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

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

§ 3.3.17.14

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

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

наш опыт

Чем чреватоСтрока действует только на свой адрес и порт. Соседний вход продолжает работать по значению узла, и разница обнаруживается по поведению разных клиентов.
Как заметитьОдни подающие видят новое поведение, другие прежнее.
Как правильноМенять на уровне узла — тогда изменение достанется всем входам, где не задано своё.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
tls-cipher-server-preference <boolean>
Значения
yes | no | true | false
Умолчание
false § 3.3.17.14
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<smtp-listener>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <smtp-listener> и действует на соединения его адреса и порта. Наследования от smtp-server-tls-cipher-server-preference руководство не обещает: у строки своё умолчание, такое же, как у узла, а «наследуется от узла» сказано только про tls-certificate. Изменили значение на узле — повторите его у слушателя явно.
Как проверить на узле
Проверять надо порт того слушателя, о котором речь, — у соседнего значение может быть другим:
openssl s_client -starttls smtp -connect localhost:2525 -cipher 'AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384'
При включённой строке согласуется более сильный шифр, даже если клиент поставил его вторым.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Безопасность узла · Подключить платформу отправки