2 Usando chaves pré-compartilhadas
Visão geral
Cada chave pré-compartilhada (PSK) no Zabbix é na verdade um par de:
- string de identidade PSK não secreta,
- valor da string PSK secreta.
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".
Limites de tamanho
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. :::
Gerando PSK
Por exemplo, um PSK de 256 bits (32 bytes) pode ser gerado usando o seguintes comandos:
- com OpenSSL:
<!-- -->
$ openssl rand -hex 32
af8ced32dfe8714e548694e2d29e1a14ba6fa13f216cb35c19d0feb1084b0429
- com GnuTLS:
<!-- -->
$ 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.
Configurando PSK para comunicação agente-servidor (exemplo)
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:
1f87b595725ac58dd977carne14b97461a7c1045b9a1c963065002c5473194952
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:
TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/home/zabbix/zabbix_agentd.psk
TLSPSKIdentity=PSK 001
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:
- Vá para: Configuração → Hosts
- Selecione o host e clique na guia Criptografia
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.
Configurando PSK para servidor - comunicação proxy ativa (exemplo)
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:
e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9
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:
TLSConnect=psk
TLSPSKFile=/home/zabbix/zabbix_proxy.psk
TLSPSKIdentity=PSK 002
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.