smtp-max-auth-failure-rate

<source>Хаб задаёт сам

Сколько неудачных входов за период допускается с этого источника
в конфигурации это строкаsmtp-max-auth-failure-rate unlimitedвнутри блока <source>
Единственная защита от перебора пароля

Умолчание — unlimited, то есть перебор ничем не ограничен. Значение 0 означает то же самое. Руководство называет назначение прямо: защита от подбора пароля.

Значение — темп: 5/min разрешает пять неудачных попыток в минуту. Синтаксис общий с остальными пределами темпа: N/[M]единица, где N обязательно и не ноль, M необязательно и по умолчанию 1. Единицы — d/day, h/hr, m/min, s/sec.

Отсчёт идёт от первой неудачи, а не от последней. Руководство разбирает это на примере: при 3/5m неудачные попытки в 10:00, 10:01 и 10:02 закрывают вход до 10:05 — пять минут от первой.

Руководство ставит и условие: директива действует только там, где вход требуется строкой require-auth. MTA 6.0 применяет порог и без неё — проверено на узле Хаба (см. ниже).

Главная ловушка — умолчание. Директиву не пишут, и защиты от перебора нет вовсе. Обычно это замечают не сразу: неудачные входы выглядят в журнале ровно так же, как чьи-то опечатки, и отличить их от подбора можно только по темпу.

Вторая половина — место строки. Неудачная попытка происходит до того, как отправитель опознан, а значит именованный источник логина ещё не выбран. Работать директива может только в том блоке, который подобрался по адресу. В именованном она бесполезна.

Что делает Хаб. Пишет — в блок <source> 0/0 обоих шаблонов, по умолчанию 5/m. Порог задаётся в генераторе конфигурации, в разделе «Кому разрешена подача», полем «Защита от перебора пароля»; значение unlimited оставляет вместо строки комментарий, и защиты нет.

Место выбрано верно: неудачный вход случается до того, как выбран именованный источник логина. require-auth в 0/0 Хаб не пишет — через этот же блок узел принимает жалобы и отказы, которые входа не проходят. Порог при этом срабатывает: на узле 45.134.12.126 за 15.09.2026 в журнале 13 348 отказов с пометкой <source> smtp-max-auth-failure-rate reached, а неудачных попыток с одного адреса за минуту — не больше пяти.

Рекомендуемые значения

Что ставить. Порог выбирается по тому, сколько неудач бывает у своих:

Значение Когда
unlimited (умолчание) порт подачи закрыт диапазоном, и попасть на него посторонний не может
5/m обычная подача: своя платформа ошибается редко и не подряд
3/5m порт открыт всей сети, логинов немного, пароли меняются нечасто

Слишком строгий порог опасен своей же платформой: перезапуск, после которого она пробует войти несколько раз подряд, закроет вход на весь период. Отсчёт при этом идёт от первой неудачи, так что период — это и есть время простоя.

Умолчание unlimited, синтаксис темпа, отсчёт от первой неудачи и требование require-auth — из руководства, § 3.3.7.8. Разбор про место строки и разбивка порогов — наши; то, что порог работает без require-auth, проверено на узле 15.09.2026.
Пример в конфигурации
# обе строки в адресном блоке: до входа именованный источник не выбран
<source 0/0>
    require-auth true
    smtp-max-auth-failure-rate 5/m</source>
После пятой неудачной попытки за минуту MTA отказывает в дальнейших попытках с этого источника до конца минуты, отсчитанной от первой неудачи.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ставят порог, не потребовав входа

§ 3.3.7.8

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

Считают отсчёт от последней неудачи

§ 3.3.7.8

Чем чреватоОтсчёт идёт от первой. При 3/5m три ошибки подряд закрывают вход на пять минут от первой из них, а не от третьей, — и своя платформа, перезапустившаяся с неверным паролем, встанет ровно на этот срок.
Как заметитьПодача восстановилась позже, чем ожидалось по последней неудачной попытке.
Как правильноСчитать период временем простоя и выбирать его, глядя на то, как ведёт себя своя платформа при перезапуске.

Пишут порог в именованный источник логина

наш опыт

Чем чреватоНеудачная попытка входа случается до того, как отправитель опознан, — именованный источник в этот момент ещё не выбран. Строка не работает и создаёт ложное чувство защищённости.
Как заметитьПорог виден в файле подачи, а перебор ничем не ограничен.
Как правильноПереносить строку в адресный блок, под который попадает подающая сторона.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
smtp-max-auth-failure-rate <rate>
Значения
unlimited · 0 · N/[M] с единицей d|day|h|hr|m|min|s|sec — например 5/m или 3/5m
Умолчание
unlimited § 3.3.7.8
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<source>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <source> и подчиняется слиянию источников: соединение попадает под все адресные блоки, которые его накрывают, и узкий перекрывает широкий. Порог, поставленный в блоке 0/0, достанется и своим подсетям — там его обычно стоит ослабить отдельной строкой.
Как проверить на узле
Записанный порог видно в конфигурации; сработавший — по отказам в журнале:
grep -n 'smtp-max-auth-failure-rate\|require-auth' /etc/pmta/config
grep -i 'auth' /var/log/pmta/pmta.log | tail -20
Отсутствие строки означает unlimited — защиты нет. Череда неудачных входов с одного адреса в журнале без последующего отказа означает, что порог не срабатывает: либо его нет, либо вход не требуется.
В Хабе
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Безопасность узла · Разделение отправителей