Instalação segura do Graphite

6

Acho que entendi mal algo aqui. Instalei o Graphite com o Docker (sitespeedio / graphite) e configurei um Basic Auth para o Web-Panel. Eu abri o Firewall para Port 2003 para entrar em datapoints de outros servidores e funcionou bem.

Mas não há autenticação / autorização. Mesmo o python lib que eu usei para enviar alguns testes não permite definir uma senha, token ou outro mecanismo de autenticação.

Como posso proteger minha instalação Graphite?

    
por Fu86 21.04.2016 / 13:54

1 resposta

3

Eu acho que pode haver um mal-entendido (possivelmente da minha parte): você parece estar falando sobre dois componentes diferentes.

O primeiro é o grafite ( link ):

Graphite renders graphs using the Cairo graphics library

Em outras palavras, enquanto normalmente chamamos toda a configuração de grafite, grafite é, na verdade, o front-end do banco de dados de carbono armazena dados em (Whisper ou Ceres).

Basic-Auth, como você diz, é para as ofertas de grafite de interfaces web, notavelmente a API de renderização (e mais geralmente, serviços que o processo / daemon de grafite oferece sobre HTTP).

Para colocar isso em prática (geralmente - não sei os detalhes para sua situação específica), você pode verificar essa pergunta: Graphiti / Graphite usando o Apache com proxy e pedidos de BasicAuth auth para cada URL / pedido - eles têm o problema oposto onde eles tem para autenticar constantemente (e uma resposta sobre por que isso pode ser).

Eles fornecem sua configuração completa, mas, em geral, o seguinte bloco é o que importa:

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

No entanto, você também menciona a porta 2003, que não está relacionada a nenhuma das APIs ou páginas da Web.

O Port 2003 é usado pelo cache de carbono (ou retransmissão de carbono) para receber dados métricos.

Por link :

carbon-cache.py accepts metrics over various protocols and writes them to disk as efficiently as possible

Ele não usa HTTP, e é por isso que o Basic-Auth não está funcionando.

Não sei qual é a melhor prática ou convenção para garantir o carbono, mas sempre pensei que era uma questão de restringir o acesso ao serviço (ou seja, porta) em primeiro lugar.

Você pode adicionar uma camada que fale HTTP entre suas origens de métrica e seu cache de carbono para ter a Autenticação básica em vigor.

Você também pode adicionar algo como o HAProxy para fazer a terminação SSL e a validação do cliente, mas não tenho certeza de como seria fácil fazer com que as fontes de métricas usem SSL / TLS.

    
por 08.03.2017 / 16:37