Cada chave pr¨¦-compartilhada (PSK) no Áú»¢¶Ä²© ¨¦ na verdade um par de:
A string de identidade PSK ¨¦ uma string UTF-8 n?o vazia. Por exemplo, "ID PSK 001 Áú»¢¶Ä²© agentd". ? um nome ¨²nico pelo qual este PSK espec¨ªfico ¨¦ referido pelos componentes Áú»¢¶Ä²©. 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 Áú»¢¶Ä²©, 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| |---------|---------------------|----------------- -|------------------| |Áú»¢¶Ä²©|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 Áú»¢¶Ä²© 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 Áú»¢¶Ä²© 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 Áú»¢¶Ä²© componentes. :::
Antes que o servidor Áú»¢¶Ä²© 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 Áú»¢¶Ä²© 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 Áú»¢¶Ä²© 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 Áú»¢¶Ä²©.
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 Áú»¢¶Ä²©:
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 Áú»¢¶Ä²©.
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 Áú»¢¶Ä²©. Vamos para ´¡»å³¾¾±²Ô¾±²õ³Ù°ù²¹??´Ç¡ú±Ê°ù´Ç³æ¾±±ð²õ, 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 Áú»¢¶Ä²© para PSK
.