smtp-server-tls-cipher-server-preference

Global

Чей порядок предпочтений главный — узла или клиента
в конфигурации это строкаsmtp-server-tls-cipher-server-preference falseвнутри блока Global
Кто выбирает шифр на входящем соединении

По умолчанию из разрешённых нами шифров выбирает клиент — по своему порядку предпочтений. Строка это переворачивает: выбор идёт по нашему порядку.

Практический смысл — вместе с @STRENGTH. Руководство приводит именно этот случай: если список отсортирован по крепости, включённая строка означает «взять самый сильный из тех, что понимает клиент». Без неё клиент может выбрать шифр слабее, оставаясь в границах разрешённого.

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

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

Значение булево, и оно работает только в паре со списком:

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

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

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

Включают без сортировки списка

§ 3.3.1.21

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