auth-password

<domain>

Пароль, которым узел представляется приёмнику
в конфигурации это строкаauth-passwordвнутри блока <domain>
Секрет, лежащий в конфигурации открытым текстом

Пароль для исходящей аутентификации. Работает в паре с auth-username: аутентификация начинается, когда приёмник объявил расширение AUTH, среди механизмов есть поддерживаемый, и хотя бы одна из двух строк непуста.

Знак # в пароле недопустим. Руководство предупреждает отдельно: MTA считает его началом комментария, и всё, что после, отбрасывается. Пароль молча становится короче — а отказ придёт от приёмника и будет выглядеть как неверные учётные данные.

Пароль лежит в конфигурации открытым текстом. Ни шифрования, ни ссылки на хранилище для этой строки не предусмотрено — защищает его только файловая система.

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

Исключите решётку при генерации. Это не рекомендация, а ограничение MTA.

Права на файл конфигурации. Пароль в нём открытым текстом; всё, что его защищает, — владелец и режим доступа.

Механизм важнее длины. CRAM-MD5 не передаёт пароль по сети вовсе; PLAIN и LOGIN передают, и на незашифрованном соединении их применение ограничивается use-unencrypted-plain-auth.

Совет про генерацию и про права на файл — наши. Из руководства здесь запрет на знак решётки с объяснением причины и очистка пустой строкой.
Пример в конфигурации
# пароль без решётки — иначе он молча обрежется
<domain relay.example.com>
    auth-username relay-user
    auth-password s3cr3t-no-hash-sign</domain>
Всё, что стоит после знака решётки, MTA считает комментарием и в пароль не включает — ни ошибки, ни предупреждения при этом не будет.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Берут сгенерированный пароль со знаком решётки

§ 3.3.10.64

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

Оставляют конфигурацию доступной на чтение

наш опыт

Чем чреватоПароль к чужому релею читает любой пользователь узла. Ни шифрования, ни хранилища для этой строки не предусмотрено.
Как заметитьПрава на файл конфигурации шире, чем у пользователя службы.
Как правильноЗакрыть файл: владелец — пользователь службы, доступ только ему.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
auth-password <string>
Значения
пароль строкой; знак решётки недопустим — MTA считает его началом комментария; пустая строка снимает унаследованное значение
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Пустая строка (“”) снимает унаследованное значение. Подхватывается по pmta reload; на открытые соединения не влияет.
Как проверить на узле
Пароль печатается в выводе настроек открытым текстом — команду стоит выполнять там, где вывод никто не видит:
pmta show settings relay.example.com/vmta1 | grep -i auth-password
ls -l /etc/pmta/config
Права на файл конфигурации — единственное, что защищает пароль: в самой строке он лежит открытым текстом. Хаб исходящую аутентификацию не задаёт.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Разобраться с доставляемостью · Настроить темп под провайдера