No Zabbix cada PSK atualmente é um par de:
A identidade PSK é um texto não vazio no formato UTF-8. Por exemplo, "PSK ID 001 Zabbix agentd". É o nome único com o qual este PSK específico será referenciado pelos componentes do Zabbix. Não coloque informação sensível na identidade PSK - ela será transmitida de forma não criptografada pela rede.
O valor PSK é mais difícil de adivinhar por ser um texto hexadecimal, por exemplo, "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9".
Aqui temos um tamanho máximo para a identidade e para o valor PSK no Zabbix, em alguns casos a biblioteca de criptografia tem um valor menor:
Componente | Tamannho da identidade PSK | Tamanho do valor PSK |
---|---|---|
Zabbix | 128 UTF-8 characteres | 2048-bit (256-byte PSK, informado como 512 digitos hexadecimais) |
GnuTLS | 128 bytes (may include UTF-8 characteres) | 2048-bit (256-byte PSK, informado como 512 digitos hexadecimais) |
mbed TLS (PolarSSL) | 128 UTF-8 characters | 256-bit (limite padrão) (32-byte PSK, informado como 64 digitos hexadecimais) |
OpenSSL | 127 bytes (pode incluri caracteres UTF-8) | 2048-bit (256-byte PSK, informado como 512 digitos hexadecimais) |
A interface web do Zabbix permite configurar identidades PSK de até 128 caracteres e até 2048-bit sem o uso das bibliotecas PSK. Se algum componente do Zabbix suportar valores menores é de responsabilidade do usuário configura ra identidade e valor PSK de forma que ambos o aceitem. Exceder o limite de tamanho resultará em falha de comunicação.
Antes do Zabbix Server se conectar com o agente usando PSK, o servidor analisa a identidade e valor PSK configurados para aquele agente no banco de dados (ou no cache de configuração). Após receber a conexão do agente, ele usa a identidade e valor PSK de sua configuração. Se ambas as partes tiverem o mesmo conjunto a conexão será estabelecida.
É de responsabilidade do usuário garantir que não existam duas chaves PSK com o mesmo conteúdo, mas com valores diferentes. Isso poderá causar interrupções imprevisíveis de comunicação entre os componentes.
Por exemplo, uma chave PSK de 256-bit (32 bytes) pode ser gerada através destes comandos:
$ psktool -u psk_identity -p database.psk -s 32
Gerando uma chave randômica para o usuário 'psk_identity'
A chave é armazenada no arquivo database.psk
$ cat database.psk
psk_identity:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb
Observe que o utilitário "psktool" acima gera um arquivo de dados com a identidade PSK e a associação PSK. O Zabbix espera apenas um PSK no arquivo, então o identificador (':') precisa ser removido do arquivo.
No host do agente salve o valor PSK em um arquivo, por exemplo, /home/zabbix/zabbix_agentd.psk
. O arquivo precisa conter o PSK em sua primeira linha, por exemplo:
Defina o permissionamento do arquivo, somente o usuário Zabbix deverá conseguir lê-lo.
Edite os parâmetros de TLS no arquivo de configuração do agente zabbix_agentd.conf
:
O agente irá se conectar com o servidor (verificação ativa) e aceitará do servidor e do zabix_get
apenas conexões usando PSK. Neste caso a identidade PSK será "PSK 001".
Reinicie o agente. Agora você pode fazer um teste de conexão utilizando o zabbix_get
:
zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]" --tls-connect=psk --tls-psk-identity="PSK 001" --tls-psk-file=/home/zabbix/zabbix_agentd.psk
(Para minimizar o tempo de indisponibilidade veja como mudar o tipo de conexão em gerenciamento de conexão criptografada).
Configure o PSK para este host na interface web do Zabbix.
Exemplo:
Após a atualização do cache de configuração do Zabbix Server/Proxy as comunicações começarão a ocorrer através de conexões criptografadas com PSK. Eventuais erros podem ser localizados tanto no log do agente quanto no log do servidor
Salve o arquivo de valor PSK do proxy em um arquivo, por exemplo, /home/zabbix/zabbix_proxy.psk
. O arquivo precisa conter o valor em sua primeira linha:
Defina o permissionamento do arquivo, somente o usuário Zabbix deverá conseguir lê-lo.
Edite os parâmetros de TLS no arquivo de configuração do agente zabbix_proxy.conf
:
O proxy vai se conectar ao servidor usando PSK e a identidade PSK será "PSK 002".
(Para minimizar o tempo de indisponibilidade veja como mudar o tipo de conexão em gerenciamento de conexão criptografada).
Configure o PSK para este proxy na interface web do Zabbix.
Reinicie o proxy. Ele irá se comunicar com o servidor usando conexão criptografada baseada em PSK. Verifique os logs do proxy e do server por mensagens de erro.
Para proxies passivos o processo é muito similar, a única diferença é que tem que se configurar o parâmetro TLSAccept=psk
no arquivo de configuração do proxy e definr o campo Conexões com o proxy na interface web do Zabbix para PSK
.