Cada chave pré-compartilhada (PSK) no Zabbix é na verdade um par de:
A string de identidade PSK é uma string UTF-8 não vazia. Por exemplo, "ID PSK 001 Zabbix agentd". É um nome único pelo qual este PSK específico é referido pelos componentes Zabbix. Não coloque informações confidenciais em Cadeia de identidade PSK - é transmitida pela rede sem criptografia.
O valor PSK é uma sequência de dígitos hexadecimais difícil de adivinhar, por exemplo, "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9".
Existem limites de tamanho para identidade e valor PSK no Zabbix, em alguns casos, uma biblioteca de criptografia pode ter limite inferior:
|Componente|Tamanho máximo da identidade PSK|Tamanho mínimo do valor PSK|Tamanho máximo do valor PSK| |---------|---------------------|----------------- -|------------------| |Zabbix|128 caracteres UTF-8|128 bits (PSK de 16 bytes, inserido como 32 dígitos hexadecimais)|2048 bits (PSK de 256 bytes, inserido como 512 dígitos hexadecimais)| |GnuTLS|128 bytes (pode incluir caracteres UTF-8)|-|2048 bits (PSK de 256 bytes, inserido como 512 dígitos hexadecimais)| |OpenSSL 1.0.x, 1.1.0|127 bytes (pode incluir caracteres UTF-8)|-|2048 bits (PSK de 256 bytes, inserido como 512 dígitos hexadecimais)| |OpenSSL 1.1.1|127 bytes (pode incluir caracteres UTF-8)|-|512 bits (PSK de 64 bytes, inserido como 128 dígitos hexadecimais)| |OpenSSL 1.1.1ae posterior|127 bytes (pode incluir caracteres UTF-8)|-|2048 bits (PSK de 256 bytes, inserido como 512 dígitos hexadecimais)|
::: não importante O frontend Zabbix permite configurar até String de identidade PSK de 128 caracteres e PSK de 2048 bits independentemente de bibliotecas de criptografia usadas.
Se alguns componentes do Zabbix suportam limites mais baixos, é do usuário responsabilidade de configurar a identidade e o valor PSK com comprimento permitido para esses componentes.
Exceder os limites de comprimento resulta em falhas de comunicação entre o Zabbix componentes. :::
Antes que o servidor Zabbix se conecte ao agente usando o PSK, o servidor procura a identidade PSK e o valor PSK configurado para esse agente no banco de dados (na verdade no cache de configuração). Ao receber uma ligação, o agente usa a identidade PSK e o valor PSK de seu arquivo de configuração. Se ambos as partes têm a mesma cadeia de identidade PSK e valor PSK a conexão pode ter sucesso.
::: não importante Cada identidade PSK deve ser emparelhada com apenas um valor. É responsabilidade do usuário garantir que não haja dois PSKs com a mesma string de identidade, mas com valores diferentes. Falhando ao fazer isso pode levar a interrupções imprevisíveis de comunicação entre o Zabbix componentes usando PSKs com essa string de identidade PSK. :::
Por exemplo, um PSK de 256 bits (32 bytes) pode ser gerado usando o seguintes comandos:
$ psktool -u psk_identity -p database.psk -s 32
Gerando uma chave aleatória para o usuário 'psk_identity'
Chave armazenada em database.psk
$ cat database.psk
psk_identity:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb
Observe que "psktool" acima gera um arquivo de banco de dados com uma identidade PSK e seu PSK associado. O Zabbix espera apenas um PSK no arquivo PSK, então a string de identidade e os dois pontos (':') devem ser removidos do arquivo.
No host do agente, grave o valor PSK em um arquivo, por exemplo, /home/zabbix/zabbix_agentd.psk
. O arquivo deve conter PSK no primeiro cadeia de texto, por exemplo:
Defina os direitos de acesso ao arquivo PSK - ele deve ser legível apenas pelo usuário do Zabbix.
Edite os parâmetros TLS no arquivo de configuração do agente zabbix_agentd.conf
, por exemplo, defina:
O agente se conectará ao servidor (verificações ativas) e aceitará do servidor e zabbix_get
somente conexões usando PSK. A identidade PSK será "PSK 001".
Reinicie o agente. Agora você pode testar a conexão usando zabbix_get
, por exemplo:
$ 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 inatividade, veja como alterar o tipo de conexão em Connection criptografia gerenciamento).
Configure a criptografia PSK para este agente no frontend do Zabbix:
Exemplo:
Todos os campos de entrada obrigatórios estão marcados com um asterisco vermelho.
Quando o cache de configuração é sincronizado com o banco de dados, o novo conexões usarão PSK. Verifique se há erros nos arquivos de log do servidor e do agente mensagens.
No proxy, grave o valor PSK em um arquivo, por exemplo, /home/zabbix/zabbix_proxy.psk
. O arquivo deve conter PSK no primeiro cadeia de texto, por exemplo:
Defina os direitos de acesso ao arquivo PSK - ele deve ser legível apenas pelo usuário do Zabbix.
Edite os parâmetros TLS no arquivo de configuração de proxy zabbix_proxy.conf
, para exemplo, defina:
O proxy se conectará ao servidor usando o PSK. A identidade PSK será "PSK 002".
(Para minimizar o tempo de inatividade, veja como alterar o tipo de conexão em Connection criptografia gerenciamento).
Configure o PSK para este proxy no frontend do Zabbix. Vamos para Administração→Proxies, selecione o proxy, vá para a aba "Criptografia". Dentro "Conexões do proxy" marcam PSK
. Cole no campo "Identidade PSK" "PSK 002" e "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9" em campo "PSK". Clique em "Atualizar".
Reinicie o proxy. Ele começará a usar conexões criptografadas baseadas em PSK para servidor. Verifique os arquivos de log do servidor e do proxy para mensagens de erro.
Para um proxy passivo, o procedimento é muito semelhante. A única diferença - defina TLSAccept=psk
no arquivo de configuração do proxy e defina "Conexões para proxy" no frontend do Zabbix para PSK
.