Utilizando chaves pre-compartilhadas em monitoramento distribuído

bernardolankheet
Zabbix Brasil
Published in
4 min readJan 22, 2020

Fala galerinha do Planeta Terra, mais uma vez aqui soltando um rápido artigo para vocês…

Dando continuidade a comunicação criptografada entre os componentes do Zabbix, irei demonstrar, desta vez, como configurar a comunicação criptografada entre o Zabbix Server e o Zabbix Proxy. Antigamente havia duas opções para montar um ambiente distribuído, ou era configurado uma VPN entre os proxys e o Server ou deixava o trafego passando pela internet sem nenhuma proteção. A partir deste ponto, a Zabbix criou o recurso de criptografia já com suporte nos componentes da aplicação, bastando apenas habilitar e configurar.

Ambiente distribuído com tráfego criptografado.

Não explicarei o processo de instalação e configuração do proxy, estarei partindo de um ambiente já pronto.

Configuração no Zabbix Proxy

Como já é de conhecimento, as configurações para habilitarmos a comunicação TLS no proxy, ficam no zabbix_proxy.conf, nele há precisaremos ter atenção em 3 parâmetros:

TLSConnect
TLSPSKFile
TLSPSKIdentity

TLSConnect: é para informarmos qual modo o proxy usará para comunicar com o Zabbix Server. Nele é possível utilizar 3 opções: unencrypted (default, sem criptografia), psk (TLS e chave pré-compartilhadas) e cert (certificados TLS). Um ponto interessante, é que esta opção somente é usada para proxy ativos, se for proxy passivo, o parâmetro é ignorado.

TLSPSKFile: será para informar o caminho completo do arquivo que contém a chave pré-compartilhada, iremos continuar utilizando o GnuTLS. Tenho costume de manter as chaves dentro de /etc/Zabbix/psk.

psktool -u proxyzabbix -p proxy.psk -s 32
Generating a random key for user ‘proxyzabbix‘
Key stored to agent.psk

Neste memento podemos ver que um arquivo foi criado no local, com o nome de agent.psk com o seguinte conteúdo.

cat proxy.psk
proxyzabbix:d5d2617791f4756ef5ea69b376e553bb2fb403e0cb17984f21a25582412774f7

O Zabbix lê apenas a chave compartilhada, a identidade criada junto com a chave, pelo psktool, deverá ser removida. Utilize seu editor de texto preferido para isso.

cat proxy.psk
d5d2617791f4756ef5ea69b376e553bb2fb403e0cb17984f21a25582412774f7

Por fim, aplique permissão para o usuário Zabbix possa ler o arquivo.

chown -R zabbix:zabbix /etc/zabbix/psk/

TLSPSKIdentity: E por fim, deverá ser informado a identidade da chave pré-compartilhada, essa identidade deverá ser igual a utilizada na criação da chave.

Por fim, os parâmetros deverão ficar parecidos com estes:

TLSConnect=psk
TLSPSKFile=/etc/zabbix/psk/proxy.psk
TLSPSKIdentity=proxyzabbix

Como foi realizado uma alteração no arquivo de configuração do Proxy, devemos reiniciar o serviço para que as novas alterações entrem em vigor.

systemctl restart zabbix-proxy

A partir deste ponto, já temos um proxy preparado para comunicar via PSK com nosso Zabbix Server, porem precisaremos ajudar a configuração do proxy no frontend do Zabbix.

Configuração no Zabbix Server

Acesse o frontend do Zabbix, com um perfil com permissões administrativas, navegue até o submenu “Proxies” dentro do menu “Administration”. Selecione o proxy que deseja aplicar a criptografia, e clique na aba correspondente.

Em conexões do proxy, altere para PSK e desmarque a opção “No encryption”, já que queremos receber somente conexões PSK. Agora em PSK identity, informe a identidade criada anteriormente, lembre-se que deverá ser idêntica, se não a comunicação não inicializará. E em PSK, informe a chave gerada pelo GnuTLS.

Configurando Identidade e Chave PSK no proxy pelo frontend.

Após a configuração, podemos notar a alguns pontos importantes. Na coluna “Encryption”, ficará sinalizado que está usando PSK, e “Last seen” onde podemos ver a ultima vez online, será neste item que podemos ver se a comunicação está ativa e também pelo log do Zabbix Server.

Obs: você poderá agilizar a alteração, dando um cache reload no zabbix server.

zabbix_server -R config_cache_reload

Pronto, neste ponto seu Zabbix proxy já estará comunicando via PSK com o Zabbix Server. Nos agentes, não será preciso realizar nenhuma alteração… Já que a principal ideia é somente criptografar o trafego que passa pela internet.

Se for utilizar Proxy passivo, o procedimento será semelhante. A única diferença, é que no parâmetro TLSAccept, deverá informar psk, dentro do arquivo de configuração do proxy. E no frontend, no cadastro do proxy, será necessário definir “Connections to proxy” para PSK.

Até breve galera.

--

--