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, "PSK ID 001 Zabbix agentd". É um nome exclusivo pelo qual esta PSK específica é referenciada pelos componentes do Zabbix. Não coloque informações confidenciais na string de identidade PSK - ela é transmitida pela rede sem criptografia.
O valor PSK é uma string difícil de adivinhar composta por dígitos hexadecimais, por exemplo, "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9".
Existem limites de tamanho para a identidade e valor do PSK no Zabbix, em alguns casos uma biblioteca de criptografia pode ter um limite menor:
| Componente | Tamanho máximo da identidade do PSK | Tamanho mínimo do valor do PSK | Tamanho máximo do valor do 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.1a e posteriores | 127 bytes (pode incluir caracteres UTF-8) | - | 2048 bits (PSK de 256 bytes, inserido como 512 dígitos hexadecimais) |
O frontend do Zabbix permite configurar uma string de identidade PSK com até 128 caracteres e um PSK de até 2048 bits, independentemente das bibliotecas de criptografia utilizadas.
Se alguns componentes do Zabbix suportarem limites menores, é responsabilidade do usuário configurar a identidade e o valor do PSK com o comprimento permitido para esses componentes.
Exceder os limites de comprimento resulta em falhas de comunicação entre os componentes do Zabbix.
Antes que o Zabbix server se conecte ao agent usando PSK, o server procura a identidade e o valor do PSK configurados para esse agent no banco de dados (na verdade, no cache de configuração). Ao receber uma conexão, o agent usa a identidade e o valor do PSK de seu arquivo de configuração. Se ambas as partes tiverem a mesma string de identidade e valor do PSK, a conexão poderá ser bem-sucedida.
Cada identidade de PSK deve ser pareada com apenas um valor. É responsabilidade do usuário garantir que não existam dois PSKs com a mesma string de identidade, mas valores diferentes. Não cumprir isso pode levar a erros imprevisíveis ou interrupções na comunicação entre os componentes do Zabbix que utilizam PSKs com essa string de identidade.
Por exemplo, um PSK de 256 bits (32 bytes) pode ser gerado usando os seguintes comandos:
$ psktool -u psk_identity -p database.psk -s 32 Generating a random key for user 'psk_identity' Key stored to database.psk $ cat database.psk psk_identity:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cbObserve que o "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, portanto, a string de identidade e os dois pontos (':') devem ser removidos do arquivo.
No host do agent, escreva o valor do PSK em um arquivo, por exemplo, /home/zabbix/zabbix_agentd.psk. O arquivo deve conter o PSK na primeira linha de texto, por exemplo:
Defina as permissões de acesso ao arquivo PSK - ele deve ser legível apenas pelo usuário Zabbix.
Edite os parâmetros TLS no arquivo de configuração do agent zabbix_agentd.conf, por exemplo, defina:
O agent irá conectar ao server (checagens ativas) e aceitar do server e do zabbix_get apenas conexões usando PSK. A identidade do PSK será "PSK 001".
Reinicie o agent. Agora você pode testar a conexão usando o 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 Gerenciamento de criptografia de conexão).
Configure a criptografia PSK para este agent no frontend do Zabbix:
Exemplo:

Todos os campos obrigatórios estão marcados com um asterisco vermelho.
Quando o cache de configuração for sincronizado com o banco de dados, as novas conexões usarão PSK. Verifique os arquivos de log do server e do agent para mensagens de erro.
No proxy, escreva o valor do PSK em um arquivo, por exemplo, /home/zabbix/zabbix_proxy.psk. O arquivo deve conter o PSK na primeira linha de texto, por exemplo:
Defina as permissões de acesso ao arquivo PSK - ele deve ser legível apenas pelo usuário Zabbix.
Edite os parâmetros TLS no arquivo de configuração do proxy zabbix_proxy.conf, por exemplo, defina:
O proxy irá conectar ao server usando PSK. A identidade do PSK será "PSK 002".
(Para minimizar o tempo de inatividade, veja como alterar o tipo de conexão em Gerenciamento de criptografia de conexão).
Configure o PSK para este proxy no frontend do Zabbix. Vá para Administração→Proxies, selecione o proxy, vá para a guia "Criptografia". Em "Conexões do proxy" marque PSK. Cole no campo "Identidade do PSK" "PSK 002" e "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9" no campo "PSK". Clique em "Atualizar".
Reinicie o proxy. Ele começará a usar conexões criptografadas baseadas em PSK com o server. Verifique os arquivos de log do server 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 o proxy" no frontend do Zabbix como PSK.