Ограничить, кто вообще достаёт до узла

Access policies
Пять шагов наименьших привилегий

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

Поверхностей у узла три, и шаги закрывают их по очереди: право сдавать почту (кому вообще позволено), откуда принимаем (диапазон адресов), кто дотягивается до монитора — и, отдельно, под каким пользователем работает сам MTA.

Важно, что все пять выражаются конфигурацией. Значит их можно не советовать, а делать по построению — что для парка единственный работающий способ: советы выполняются на первом узле и забываются на двадцатом.

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

Это законный размен, но у него есть цена: вся защита подачи начинает держаться на одном секрете. Значит к нему предъявляется всё, что предъявлялось бы диапазону, — разный пароль на логин, предел неудачных попыток, и понимание, что открытый порт видят все.

Что делает Хаб. Три шага из пяти — по построению, в каждой генерируемой конфигурации. Первый: блок пользователя на каждую пару «домен плюс адрес» плюс общий логин пула. Второй: задействован один способ входа — пароль; сертификаты, LDAP и системные логины не используются. Четвёртый: http-access только локальным адресам и адресам Хаба, остальным MTA отвечает 403.

Третий шаг — наполовину: приёмник подачи слушает 0/0, и общий блок источника тоже, но разрешения на ретрансляцию в 0/0 нет. Без логина сдавать почту можно только с самой машины и с адресов из «Кому разрешена подача», всем остальным право даёт логин. Причина в устройстве парка — узлы стоят у разных хостеров, адрес подающей стороны меняется, и жёсткий диапазон ломал бы подачу при каждом переезде.

Пятый шаг не сделан: строку run-as-root no из шаблонов убрали 29.08.2026 — одной строкой узел на пользователя pmta не переходил, а остальных условий § 2.2.1 узлы не выполняли. MTA работает от root.

Пример в конфигурации
# четыре шага, которые видно в конфигурации узла
run-as-root no
http-access 127.0.0.1 admin
http-access 10.0.0.7 monitor
<smtp-user pmtauser>
    password s3cret
    source {pmta-auth}
</smtp-user>
Пятый шаг — первая строка, четвёртый — следующие две, первый и второй — блок пользователя. Третьего шага здесь нет: диапазон подачи остался широким, и защита держится на логине.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Делают четыре шага из пяти и считают дело закрытым

§ 1.6.1

Чем чреватоПропущен обычно третий — сужение диапазона подачи, самый трудоёмкий. Порт остаётся открытым всему интернету, и защита целиком переезжает на пароль, к которому при этом не предъявляется ничего особенного.
Как заметитьПриёмник слушает 0/0, предела неудачных попыток входа нет, пароль один на все логины.
Как правильноЛибо сузить диапазон, либо признать размен и закрыть его второй мерой: разные пароли и предел попыток входа.

Ограничивают монитор, забыв про порт подачи

§ 1.6.1

Чем чреватоМонитор и подача — разные поверхности с разными настройками. Закрытый монитор не мешает никому подключиться к приёмнику и попробовать войти.
Как заметитьhttp-access настроен строго, а smtp-listener слушает всю сеть без ограничений в источниках.
Как правильноСчитать поверхности по отдельности и проверять каждую снаружи.

Проверяют меры на самом узле

§ 1.6.1

Чем чреватоС локального адреса действуют другие правила: и монитор пускает, и источник подбирается свой. Проверка изнутри показывает не то, что видит посторонний.
Как заметитьПроверка выполнена по SSH на самом сервере.
Как правильноПроверять с чужой машины, и отдельно — под каким пользователем работает процесс.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
⇄

Связанные записи

4 связи

Как проверить на узле
Проверять надо снаружи — изнутри узла все четыре меры выглядят выполненными:
grep -n 'run-as-root\|http-access\|smtp-listener' /etc/pmta/config
ps -o user= -p "$(pgrep -n pmtad)"
curl -sS -o /dev/null -w '%{http_code}\n' http://<адрес-узла>:1000/
Третья строка выполняется с чужой машины и должна вернуть 403: монитор отвечает, но не пускает. Первая показывает, что записано; вторая — под кем MTA действительно работает, а не под кем задумано.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Безопасность узла · Разделение отправителей