tls-max-version

<smtp-listener>

Верхняя граница версии TLS на этом входе
в конфигурации это строкаtls-max-version none — действует как tlsv1.3внутри блока <smtp-listener>
То же имя ещё 1:<smtp-listener><transmissions-api-listener>— часть из них другие настройки, часть та же самая
Потолок версии на отдельном входе

Та же граница, что у узла, но для соединений этого слушателя. Умолчания нет, то есть потолок не ограничен.

Повод тот же, что и на уровне узла — клиент, который объявляет современную версию и на ней срывается. Разница в том, что здесь ограничение задевает только один вход.

Это обход чужой поломки, а не настройка безопасности.

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

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

Значение Когда
не задавать (умолчание) всегда
tlsv1.2 клиент этого входа срывается на 1.3
Значения и отсутствие умолчания — из руководства (§ 3.3.17.11). Совет записывать повод — наш.
Пример в конфигурации
# настройка одного входа, остальные берут значение узла
<smtp-listener 0.0.0.0:2525>
    tls-max-version tlsv1.2   # клиент срывается на 1.3, проверено 28.08</smtp-listener>
Комментарий важнее строки: без него никто не поймёт, можно ли снять ограничение после обновления клиента.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

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

§ 3.3.17.11

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

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

наш опыт

Чем чреватоСтрока действует только на свой адрес и порт. Соседний вход продолжает работать по значению узла, и разница обнаруживается по поведению разных клиентов.
Как заметитьОдни подающие видят новое поведение, другие прежнее.
Как правильноМенять на уровне узла — тогда изменение достанется всем входам, где не задано своё.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
tls-max-version <enumeration>
Значения
tlsv1 | tlsv1.1 | tlsv1.2 | tlsv1.3
Умолчание
none — действует как tlsv1.3 § 3.3.17.11
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<smtp-listener>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <smtp-listener> и действует на соединения его адреса и порта. Наследования от smtp-server-tls-max-version руководство не обещает: у строки своё умолчание, такое же, как у узла, а «наследуется от узла» сказано только про tls-certificate. Изменили значение на узле — повторите его у слушателя явно.
Как проверить на узле
Проверять надо порт того слушателя, о котором речь, — у соседнего значение может быть другим:
openssl s_client -starttls smtp -connect localhost:2525 -tls1_3
Отказ означает, что потолок опущен на этом входе. Если повод не записан, скорее всего он давно исчез.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Безопасность узла · Подключить платформу отправки