2 Usando claves precompartidas

Descripción general

Cada clave precompartida (PSK) en Zabbix en realidad es una pareja de:

  • cadena de identidad PSK no secreta,
  • valor secreto de cadena PSK.

La cadena de identidad PSK es una cadena UTF-8 no vacía. Por ejemplo, "ID de PSK 001 Zabbix agentd". Es un nombre único con el que se identifica este PSK específico. al que se refieren los componentes de Zabbix. No ponga información sensible en la cadena de identidad PSK: se transmite a través de la red sin cifrar.

El valor PSK es una cadena de dígitos hexadecimales difícil de adivinar, por ejemplo, "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9".

Límites de tamaño

Existen límites de tamaño para la identidad y el valor de PSK en Zabbix, en algunos casos una biblioteca criptográfica puede tener un límite inferior:

|Componente|Tamaño máximo de identidad PSK|Tamaño mínimo del valor PSK|Tamaño máximo del valor PSK| |---------|---------------------|----------------- -|------------------| |Zabbix|128 caracteres UTF-8|128 bits (PSK de 16 bytes, ingresado como 32 dígitos hexadecimales)|2048 bits (PSK de 256 bytes, ingresado como 512 dígitos hexadecimales)| |GnuTLS|128 bytes (puede incluir caracteres UTF-8)|-|2048 bits (PSK de 256 bytes, ingresado como 512 dígitos hexadecimales)| |OpenSSL 1.0.x, 1.1.0|127 bytes (puede incluir caracteres UTF-8)|-|2048 bits (PSK de 256 bytes, ingresado como 512 dígitos hexadecimales)| |OpenSSL 1.1.1|127 bytes (puede incluir caracteres UTF-8)|-|512 bits (PSK de 64 bytes, ingresado como 128 dígitos hexadecimales)| |OpenSSL 1.1.1a y posterior|127 bytes (puede incluir caracteres UTF-8)|-|2048 bits (PSK de 256 bytes, ingresado como 512 dígitos hexadecimales)|

::: nota importante El frontend de Zabbix permite configurar hasta Cadena de identidad PSK de 128 caracteres de largo y PSK de 2048 bits de largo independientemente de bibliotecas criptográficas utilizadas.
Si algunos componentes de Zabbix admiten límites inferiores, es decisión del usuario responsabilidad de configurar la identidad y el valor de PSK con la longitud permitida para estos componentes.
Exceder los límites de longitud provoca fallas de comunicación entre Zabbix componentes. :::

Antes de que el servidor Zabbix se conecte al agente usando PSK, el servidor busca la identidad de PSK y el valor de PSK configurados para ese agente en la base de datos (en realidad en la caché de configuración). Al recibir una conexión el agente utiliza la identidad PSK y el valor PSK de su archivo de configuración. Si ambos las partes tienen la misma cadena de identidad PSK y PSK valora la conexión puede tener éxito.

::: nota importante Cada identidad PSK debe estar emparejada con una sola valor. Es responsabilidad del usuario asegurarse de que no haya dos PSK con la misma cadena de identidad pero valores diferentes. no hacer hacerlo puede provocar errores impredecibles o interrupciones en la comunicación entre Zabbix componentes que utilizan PSK con esta cadena de identidad PSK. :::

Generando PSK

Por ejemplo, se puede generar una PSK de 256 bits (32 bytes) utilizando los siguientes comandos:

  • con OpenSSL:
  $ openssl rand -hex 32
         af8ced32dfe8714e548694e2d29e1a14ba6fa13f216cb35c19d0feb1084b0429
  • con GnuTLS:
  $ 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:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb

Tenga en cuenta que el comando "psktool" anterior genera un archivo de base de datos con una identidad PSK y su PSK asociado. Zabbix espera sólo un PSK en el archivo PSK, por lo que la cadena de identidad y los dos puntos (':') deben eliminarse del archivo.

Configuración de PSK para la comunicación servidor-agente (ejemplo)

En el equipo del agente, escriba el valor de PSK en un archivo, por ejemplo, /home/zabbix/zabbix_agentd.psk. El archivo debe contener el PSK en la primera cadena de texto, por ejemplo:

1f87b595725ac58dd977ternera14b97461a7c1045b9a1c963065002c5473194952

Establezca los derechos de acceso al archivo PSK; solo debe ser legible por el usuario de Zabbix.

Edite los parámetros TLS en el archivo de configuración del agente zabbix_agentd.conf, por ejemplo, establezca:

TLSConnect=psk
       TLSAccept=psk
       TLSPSKFile=/home/zabbix/zabbix_agentd.psk
       TLSPSKIdentity=PSK 001

El agente se conectará al servidor (comprobaciones activas) y aceptará desde el servidor y zabbix_get solo conexiones usando PSK. La identidad de PSK será "PSK 001".

Reinicie el agente. Ahora puede probar la conexión usando zabbix_get, Por ejemplo:

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 el tiempo de inactividad, consulte cómo cambiar el tipo de conexión en Gestión del cifrado de la conexión).

Configure el cifrado PSK para este agente en la interfaz de Zabbix:

  • Vaya a: Configuración → Equipos
  • Seleccione el equipo y haga clic en la pestaña Cifrado

Ejemplo:

psk_config.png

Todos los campos de entrada obligatorios están marcados con un asterisco rojo.

Cuando la caché de configuración se sincroniza con la base de datos, las nuevas conexiones utilizarán PSK. Verifique los archivos de registro del servidor y del agente en busca de mensajes de error.

Configuración de PSK para el servidor: comunicación proxy activa (ejemplo)

En el proxy, escriba el valor de PSK en un archivo, por ejemplo, /home/zabbix/zabbix_proxy.psk. El archivo debe contener PSK en la primera cadena de texto, por ejemplo:

e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9

Establezca derechos de acceso al archivo PSK; solo debe ser legible por el usuario de Zabbix.

Edite los parámetros TLS en el archivo de configuración del proxy zabbix_proxy.conf, para ejemplo, establezca:

TLSConnect=psk
       TLSPSKFile=/home/zabbix/zabbix_proxy.psk
       TLSPSKIdentidad=PSK 002

El proxy se conectará al servidor mediante PSK. La identidad de PSK será "PSK 002".

(Para minimizar el tiempo de inactividad, consulte cómo cambiar el tipo de conexión en Conexión cifrado gestión).

Configure PSK para este proxy en la interfaz de Zabbix. Ir a Administración→Proxies, seleccione el proxy, vaya a la pestaña "Cifrado". En "Conexiones desde proxy" marca PSK. Pegar en el campo "identidad PSK" "PSK 002" y "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9" en Campo "PSK". Haga clic en "Actualizar".

Reinicie el proxy. Comenzará a utilizar conexiones cifradas basadas en PSK para servidor. Verifique los archivos de registro del servidor y del proxy para ver si hay mensajes de error.

Para un proxy pasivo el procedimiento es muy similar. La unica diferencia - establezca TLSAccept=psk en el archivo de configuración del proxy y establezca "Conexiones a proxy" en la interfaz de Zabbix para PSK.