http-mgmt-port

Globalнужен перезапускХаб задаёт сам

Порт веб-монитора
в конфигурации это строкаhttp-mgmt-port 8080внутри блока Global
Дверь, за которой лежит управление узлом

Веб-монитор — отдельная программа pmtahttpd, и эта строка задаёт порт, который она слушает. Умолчание — 8080, стандартного порта у такой службы нет, поэтому его часто занимает что-то другое на той же машине.

Значение 0 не поднимает монитор вовсе. Это единственный способ выключить управляющий интерфейс совсем — не «закрыть всем», а не запускать.

На этом же порту живут все три HTTP-интерфейса MTA: сам монитор, API конфигурации (§ 8.2, § 8.3) и API команд (§ 8.4). Порт один — значит и решение об его доступности одно на всех.

Порт отвечает и обычным запросом, и рукопожатием TLS. Мы проверили это на узле парка: монитор смотрит на первые байты соединения. Отдельного «порта для https» у него нет.

Главная ловушка — считать порт закрытым, потому что его «никто не знает». Порт открыт всем, кто до него дотянется; отказ приходит уровнем выше, от http-access. И этот отказ разговорчив: в теле 403 MTA выдаёт путь к файлу конфигурации, путь к своему журналу и готовую строку http-access <ваш адрес> admin. Проверено на узле парка.
Что делает Хаб. Пишет — ставит 1000 вместо вендорских 8080. Через этот порт идёт вся телеметрия парка (NodePoller, PmtaMonitor) и все команды узлу (PmtaCommander).

Порт хранится в node_engines.mgmt_port и подставляется в шаблон. После применения конфигурации Хаб перезапускает монитор — PmtaConfigApplier::restartMonitor, — иначе смена порта не вступит в силу и панель мониторинга опустеет при исправном MTA.

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

Порт выбирают так, чтобы он не смотрел в интернет:

Значение Когда
1000 наш выбор для парка
8080 (умолчание) часто занят другим приложением
0 управляющий интерфейс не нужен вовсе

Сам по себе номер ничего не защищает. Ограничение — в http-access и в межсетевом экране узла.

Умолчание 8080, значение 0 и требование перезапуска — из руководства (§ 3.3.1.58.1). Что порт отвечает и на обычный запрос, и на рукопожатие, и что тело 403 выдаёт пути, — наши проверки на узле парка.
Пример в конфигурации
# управляющий интерфейс узла: порт + кто на него допущен
http-mgmt-port 1000http-access 127.0.0.1 admin
http-access 10.0.0.5 monitor
Первая строка без последующих бесполезна: порт открыт, но отвечает 403 всем. Порт и список доступа пишут вместе.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Меняют порт и перезагружают конфигурацию

§ 3.3.1.58.1

Чем чреватоМонитор читает настройки при своём старте. pmta reload его не трогает, и он продолжает слушать прежний порт при новом значении в файле.
Как заметитьВ файле один порт, ss -lntp показывает другой.
Как правильноПерезапустить веб-монитор: systemctl restart pmtahttp там, где он юнит, либо через pmtawatch.

Выставляют монитор в интернет на нестандартном порту

наш опыт

Чем чреватоПорт находят сканированием за часы. Тело отказа 403 само подсказывает путь к конфигурации, путь к журналу и строку, которую надо туда добавить для полного доступа.
Как заметитьВ журнале монитора попытки с незнакомых адресов.
Как правильноЗакрыть порт межсетевым экраном узла и оставить доступ только адресам Хаба.

Ставят 0, чтобы «закрыть монитор», и теряют управление

§ 3.3.1.58.1

Чем чреватоНоль не закрывает монитор, а не запускает его. Вместе с ним пропадают API команд и API конфигурации — а значит и всё управление узлом извне.
Как заметитьУзел работает, телеметрия пуста, команды не проходят.
Как правильноОграничивать доступ списком http-access, а не выключением порта.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
http-mgmt-port <port>
Значения
номер TCP-порта; 0 — не запускать монитор
Умолчание
8080 § 3.3.1.58.1
Применение
нужен перезапуск сервиса
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка пишется в корне файла, раздел Global, и действует на весь узел. Монитор один, вторым портом его не поднять.
⇄

Связанные директивы

2 связи

Как проверить на узле
Проверяем, что монитор слушает и отвечает; порт — свой:
ss -lntp | grep ':1000'
Пустой вывод — монитор не поднялся: либо порт 0, либо pmtahttpd не запущен, либо порт занят. Ответ 403 на curl при слушающем порте — монитор работает, а адрес не разрешён в http-access.
В Хабе
Управляется
Инфраструктура → Параметры узла
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
с перерывом: применение прерывает работу узла
Сценарии
Собрать телеметрию