Назад | Перейти на главную страницу

Безопасная установка графита

Думаю, я что-то здесь неправильно понял. Я установил Graphite с Docker (sitepeedio / graphite) и установил базовую аутентификацию для веб-панели. Я открыл Firwall для порта 2003, чтобы получить точки данных с других серверов, и он работал нормально.

Но аутентификации / авторизации нет. Даже библиотека python, которую я использовал для отправки некоторых тестов, не позволяет установить пароль, токен или другой механизм аутентификации.

Как обезопасить установку Graphite?

Думаю, здесь может быть недоразумение (вполне возможно, с моей стороны): похоже, вы говорите о двух разных компонентах.

Первый - Графит (https://graphite.readthedocs.io/en/latest/install.html):

Graphite отображает графики с использованием графической библиотеки Cairo

Другими словами, хотя мы обычно называем всю установку графитом, графит на самом деле является интерфейсом к базе данных, в которой хранятся данные углерода (Whisper или Ceres).

Basic-Auth, как вы говорите, предназначен для веб-интерфейсов, которые предлагает графит, в частности для API рендеринга (и, в более общем плане, для обслуживания графического процесса / демона по HTTP).

Чтобы это исправить (обычно - я не знаю подробностей для вашей конкретной ситуации), вы можете проверить этот вопрос: Graphiti / Graphite с использованием Apache с Proxy и BasicAuth запрашивает аутентификацию для каждого URL / запроса - у них противоположная проблема, когда они иметь для постоянной аутентификации (и ответ о том, почему это может быть).

Они предоставляют свою полную конфигурацию, но в целом важен следующий блок:

 <Location "/">
          require valid-user
          order allow,deny
          Allow from all
          AuthType Basic
          AuthName "Stats"
          AuthBasicProvider file
          AuthUserFile /etc/passwd_lp
  </Location>

Однако вы также упоминаете порт 2003, который не имеет отношения ни к одному из веб-API или страниц.

Вместо этого порт 2003 используется углеродным кешем (или углеродным ретранслятором) для получения данных метрики.

За https://graphite.readthedocs.io/en/latest/carbon-daemons.html:

carbon-cache.py принимает метрики по различным протоколам и записывает их на диск максимально эффективно.

Он не использует HTTP, поэтому Basic-Auth не работает.

Я не уверен, что такое передовая практика или соглашение для защиты от углерода, но я всегда думал, что это в первую очередь вопрос ограничения доступа к услуге (то есть порту).

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

Вы также можете добавить что-то вроде HAProxy для завершения SSL и проверки клиента, но я не уверен, насколько легко было бы в первую очередь использовать SSL / TLS в источниках метрик.