use-unencrypted-plain-auth

<domain>

Разрешать ли PLAIN и LOGIN на незашифрованном соединении
в конфигурации это строкаuse-unencrypted-plain-auth falseвнутри блока <domain>
Пароль по сети открытым текстом — или не отправлять вовсе

Из трёх механизмов аутентификации, которые понимает узел, два — PLAIN и LOGIN — передают пароль в самом разговоре. Если соединение не зашифровано (STARTTLS не применяется), пароль идёт по сети открытым текстом.

Эта строка решает, допустимо ли такое. Третий механизм, CRAM-MD5, пароля по сети не передаёт и под ограничение не подпадает.

Строка относится к исходящей аутентификации — той, где узел представляется чужому релею (auth-username, auth-password). У приёма писем есть своя, зеркальная: allow-unencrypted-plain-auth в блоке <source>.

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

Не разрешайте. Пароль к чужому релею, ушедший по сети открытым, компрометируется целиком и незаметно.

Правильный ответ — шифровать соединение. Если релей не умеет STARTTLS, вопрос не в этой строке, а в самом релее.

CRAM-MD5 — обходной путь. Он пароля по сети не передаёт; если релей его поддерживает, ограничение перестаёт мешать.

Порядок «сначала шифрование, потом эта строка» — наш. Из руководства здесь точная область действия: механизмы PLAIN и LOGIN на незашифрованном соединении.
Пример в конфигурации
# пароль по сети открытым не пускаем; релей обязан уметь STARTTLS
<domain relay.example.com>
    auth-username relay-user
    auth-password s3cr3t
    use-unencrypted-plain-auth false</domain>
При запрете и релее без шифрования аутентификация просто не состоится — и это верное поведение: лучше не отправить, чем отдать пароль в сеть.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Разрешают, чтобы «заработало»

наш опыт

Чем чреватоПароль к чужому релею уходит по сети открытым при каждой попытке. Компрометация происходит незаметно и не оставляет следов ни в одном журнале.
Как заметитьСтрока разрешающая, STARTTLS в журнале с этим релеем нет.
Как правильноВключить шифрование на релее либо перейти на CRAM-MD5.

Правят не на той стороне

наш опыт

Чем чреватоСтрока с почти таким же именем есть в блоке <source> и относится к приёму писем. Правка там не влияет на исходящую аутентификацию, и наоборот.
Как заметитьЗначение изменено, поведение прежнее.
Как правильноСверить блок: <domain> — исходящая сторона, <source> — входящая.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
use-unencrypted-plain-auth <boolean>
Значения
yes или no; true и false принимаются наравне с ними
Умолчание
false § 3.3.10.65
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Строка про исходящую сторону; зеркальная для приёма писем живёт в блоке <source>. Подхватывается по pmta reload.
Как проверить на узле
Значение печатает команда настроек очереди; шифруется ли соединение с этим релеем — видно по применению STARTTLS в журнале:
pmta show settings relay.example.com/vmta1 | grep -i use-unencrypted-plain-auth
grep -i 'STARTTLS' /var/log/pmta/pmta.log | tail -10
Если STARTTLS с этим релеем не применяется, а строка разрешающая — пароль уходит по сети открытым при каждой попытке. Хаб исходящую аутентификацию не задаёт.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Разобраться с доставляемостью · Настроить темп под провайдера