Globalкритичнонужен перезапускХаб задаёт сам
Строка объявляет ключ, который клиент передаёт заголовком X-API-Key. Длина от 32 до 128 знаков, буквы, цифры и подчёркивание, регистр важен. Строка повторяется — ключей может быть несколько, например по одному на приложение.
Ключ открывает не только монитор, а четыре вещи сразу: сам веб-монитор с правами администратора; API конфигурационных файлов (§ 8.2) — чтение, запись и перечисление файлов конфигурации узла; API конфигурации (§ 8.3) — правку списков адресов и адресов отправки; API команд (§ 8.4) — почти все команды консоли по HTTP.
Ключ сильнее ограничения по адресу. Руководство говорит это дважды и дословно: правильный ключ отменяет всё, что задано в http-access, и запросы принимаются с любого адреса. Это не второй фактор, а обход первого.
Значит, ключ равен доступу к узлу — и к его конфигурации. Тот, у кого он есть, может переписать файл конфигурации через API и перезагрузить MTA.
🔴 Но на провод ключ уходит открытым текстом. Опрос идёт по обычному http:// — NodePoller, PmtaMonitor и PmtaCommander кладут его в заголовок без шифрования, а в базовой конфигурации у нас стоит http-redirect-to-https false. Ключ, которым можно переписать конфигурацию узла и выполнить любую команду, пересекает сеть в открытую при каждом опросе. Зашифровано хранение, не передача.
Ключ длинный и случайный, иначе он не ключ:
| Что | Как |
|---|---|
| длина | от 32 до 128 знаков |
| набор | латиница, цифры, подчёркивание |
| регистр | важен |
| сколько | сколько нужно; строка повторяется |
Разным приложениям — разные ключи. Тогда отзыв одного не рвёт работу остальных: убирается одна строка.
# разным приложениям — разные ключи: отзыв одного не рвёт остальные http-api-key abcd_0123_abcd_0123_abcd_0123_ab # телеметрия Хабаhttp-api-key 5f6e7e426949e3a5e4ec38e747e71963 # выгрузка отчётов
что делают не так и чем это кончается3 ошибки▶
§ 8.2
наш опыт
наш опыт
4 связи
http-mgmt-portGlobalВсе три интерфейса HTTP, которые открывает ключ, слушают этот порт. § 8.4
http-csrf-protectionGlobalЗапрос с правильным ключом защиту не проходит, а обходит: ключ заменяет собой признак сессии. § 3.3.1.58.4http-enable-api-configGlobalЧтение может пройти по уровню доступа, но правка требует ключа всегда. § 8.3api-key<transmissions-api>Ключ другого входа — веб-монитора и HTTP API управления; названия похожи, права разные. § 3.3.20.1Как узел решает, впустить ли запрос по HTTPКлюч — второй способ представиться, и он сильнее первого. § 8.2
curl -s -H 'X-API-Key: KEY' -o /dev/null -w '%{http_code}\n' http://NODE:1000/status
3 статьи
◇Аналитика вендора — и что уходит с узла ради неёПлатная служба, принимающая данные учёта узла и возвращающая аналитику, оценку здоровья и отчёт по спам-ловушкам; включается по областям и выключена, пока нет её блока.◇Отдача показателей по SNMPУзел умеет отдавать свои показатели по SNMP — второй способ наблюдения помимо веб-монитора.◇Что узел рассказывает о себе и по каким каналамСемь поверхностей наблюдения: веб-монитор, консоль в четырёх форматах, журнал, учёт, поиск по учёту, метрики и выгрузка во внешнюю аналитику.