Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

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:

psk_config.png

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.