критично
У узла три интерфейса HTTP — API конфигурационных файлов (§ 8.2), API конфигурации (§ 8.3) и API команд (§ 8.4), — и все три отвечают на одном порту вместе с веб-монитором. Правило допуска у них общее, и состоит оно из двух половин.
Первая половина — уровень доступа по адресу. Он берётся из http-access: monitor читает состояние, operator вдобавок читает конфигурацию и выполняет команды, admin ещё и правит конфигурацию.
Вторая половина — ключ http-api-key в заголовке X-API-Key. Руководство формулирует его силу трижды и одинаково: правильный ключ отменяет ограничение по адресу, и запрос принимается с любого адреса.
Отсюда простое правило. На чтение ключ можно не давать — хватит уровня operator с разрешённого адреса. На изменение ключ обязателен всегда: запись конфигурационного файла, правка списков и адресов отправки, подача команды.
Запрос, не прошедший ни по одной половине, получает 403. И ответ разговорчив: тело отказа называет путь к файлу конфигурации, путь к журналу монитора и готовую строку http-access <адрес> admin — проверено на узле парка.
🔴 Слабое место у нас не в схеме, а в канале: ключ уходит на узел по обычному http://, потому что в шаблоне стоит http-redirect-to-https false. Половина, которая сильнее, — и именно она передаётся открыто.
Собственных значений у механизма нет: их задают две директивы.
| Что нужно | Чем достигается | Умолчание |
|---|---|---|
| чтение состояния | http-access уровня monitor | none, то есть закрыто |
| чтение конфигурации, команды | уровень operator | закрыто |
| правка конфигурации | http-api-key в заголовке | ключей нет |
Разным приложениям — разные ключи: отзыв одного не рвёт остальные.
# чтение — по адресу, изменение — по ключу http-mgmt-port 1000 http-access 127.0.0.1 admin http-access 10.0.0.5 monitor http-api-key abcd_0123_abcd_0123_abcd_0123_ab
что делают не так и чем это кончается3 ошибки▶
§ 8.2
§ 8.3
наш опыт
3 связи
http-api-keyGlobalКлюч — второй способ представиться, и он сильнее первого. § 8.2
curl -s -o /dev/null -w '%{http_code}\n' http://NODE:1000/status
3 статьи
◇Что защищает веб-монитор и чем эта защита не являетсяТри разные защиты — список адресов, шифрование и совет не выставлять монитор в интернет; учётных записей нет ни одной.◇Ключ активации — условие установки, а не шаг после неёБез ключа активации от поддержки SparkPost MTA не ставится и не работает, а уровень лицензии задаёт потолок исходящих соединений: на стандартной всё сверх 200 игнорируется.◇Ограничения облакаОблака ограничивают исходящую почту через порт 25, пока не попросишь снять лимит, а их диапазоны адресов почтовики встречают с подозрением.