9 Comprobaciones SSH

Descripción general

Las comprobaciones SSH se realizan como supervisión sin agentes. El agente Zabbix no es necesario para comprobaciones SSH.

Para realizar comprobaciones SSH, el servidor Zabbix debe estar inicialmente configurado con soporte para SSH2 (libssh o libssh2). Ver también: Requisitos.

A partir de RHEL 8, solo se admite libssh. Para otras distribuciones, se sugiere libssh en lugar de libssh2.

Configuración

Autenticación de frase de contraseña

Las comprobaciones SSH proporcionan dos métodos de autenticación: un par de usuario/contraseña y basado en archivos de claves.

Si no tiene intención de utilizar claves, no se requiere ninguna configuración adicional, más que vincular libssh o libssh2 a Zabbix, si está compilando desde la fuente.

Autenticación de archivos de claves

Para utilizar la autenticación basada en claves para elementos SSH, se requieren ciertos cambios en la configuración del servidor.

Abra el archivo de configuración del servidor Zabbix (zabbix_server.conf) como root y busque la siguiente línea:

# SSHKeyLocation=

Descoméntela y establezca la ruta completa a la carpeta donde se encuentran las claves públicas y privadas:

SSHKeyLocation=/home/zabbix/.ssh

Guarde el archivo y reinicie el servidor Zabbix luego.

La ruta /home/zabbix aquí es el directorio de inicio para la cuenta de usuario zabbix, y .ssh es un directorio donde, de forma predeterminada, se almacenarán las claves públicas y privadas generadas por un comando ssh-keygen dentro del directorio de inicio.

Generalmente los paquetes de instalación del servidor Zabbix desde las distribuciones de diferentes sistemas operativos, crean la cuenta de usuario zabbix con un directorio de inicio en otro lugar, por ejemplo, /var/lib/zabbix (como para las cuentas del sistema).

Antes de generar las claves, podría reasignar el directorio de inicio a /home/zabbix, para que corresponda con el parámetro de configuración del servidor Zabbix SSHKeyLocation mencionado anteriormente.

Los siguientes pasos se pueden omitir si la cuenta zabbix se ha agregado manualmente según la sección de instalación. En tal caso, lo más probable es que el directorio de inicio de la cuenta zabbix ya esté en /home/zabbix.

Para cambiar el directorio de inicio de la cuenta de usuario zabbix, todos los procesos que lo utilizan deben detenerse:

service zabbix-agent stop
       service zabbix-server stop

Para cambiar la ubicación del directorio de inicio con un intento de moverlo (si existe) se debe ejecutar el siguiente comando:

usermod -m -d /home/zabbix zabbix

También es posible que no existiera un directorio de inicio en la ubicación anterior, por lo que debe crearse en la nueva ubicación. Un intento seguro de hacerlo es:

test -d /home/zabbix || mkdir /home/zabbix

Para asegurarse de que todo esté seguro, se pueden ejecutar comandos adicionales para establecer permisos para el directorio de inicio:

chown zabbix:zabbix /home/zabbix
       chmod 700 /home/zabbix

Los procesos previamente detenidos ahora se pueden iniciar nuevamente:

service zabbix-agent start
       service zabbix-server start

Ahora se pueden realizar los pasos para generar las claves pública y privada con los siguientes comandos (para una mejor legibilidad, las indicaciones de comando están comentadas):

sudo -u zabbix ssh-keygen -t rsa
       # Generando par de claves rsa pública/privada.
       # Ingrese el archivo en el que guardar la clave (/home/zabbix/.ssh/id_rsa):
       /home/zabbix/.ssh/id_rsa
       # Ingrese la frase de contraseña (vacío si no hay frase de contraseña):
       <Dejar vacío>
       # Ingrese la misma contraseña nuevamente:
       <Dejar vacío>
       # Su identificación se ha guardado en /home/zabbix/.ssh/id_rsa.
       # Su clave pública se ha guardado en /home/zabbix/.ssh/id_rsa.pub.
       # La huella digital clave es:
       # 90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0
       # La imagen aleatoria de la clave es:
       # +--[RSA 2048]----+
       # | |
       # | . |
       # | o |
       # | . o |
       # |+ . S |
       # |.+ o = |
       # |mi . * = |
       # |=o . ..* . |
       # |...oo.o+ |
       # +-----------------+

Las claves pública y privada (id_rsa.pub y id_rsa) se han generado de forma predeterminada en el directorio /home/zabbix/.ssh, que corresponde al parámetro de configuración del servidor Zabbix SSHKeyLocation.

Es posible que el sistema, la herramienta ssh-keygen y los servidores SSH admitan tipos de claves distintos de "rsa", pero es posible que no sean compatibles con el libssh2 utilizado por Zabbix.

Formulario de configuración de Shell

Este paso debe realizarse sólo una vez por cada equipo que se vaya a ser monitoreado por controles SSH.

Al utilizar los siguientes comandos, se puede instalar el archivo de clave pública en un equipo remoto 10.10.10.10, para que se puedan realizar las comprobaciones SSH con una cuenta root (para una mejor legibilidad, las indicaciones de comando están comentadas):

sudo -u zabbix ssh-copy-id [email protected]
       # No se puede establecer la autenticidad del host '10.10.10.10 (10.10.10.10)'.
       # La huella digital de la clave RSA es 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
       # ¿Estás seguro de que deseas continuar conectándote (sí/no)?
       Sí
       # Advertencia: Se agregó permanentemente '10.10.10.10' (RSA) a la lista de hosts conocidos.
       # contraseña de [email protected]:
       <Ingrese la contraseña de root>
       # Ahora intenta iniciar sesión en la máquina, con "ssh '[email protected]'",
       # y verifique que solo se hayan agregado las claves que deseaba.

Ahora es posible verificar el inicio de sesión SSH usando la clave privada predeterminada (/home/zabbix/.ssh/id_rsa) para la cuenta de usuario zabbix:

sudo -u zabbix ssh [email protected]

Si el inicio de sesión es exitoso, entonces la parte de configuración en el shell se ha terminado y la sesión SSH remota se puede cerrar.

Configuración de la métrica

Los comandos reales que se van a ejecutar deben colocarse en el campo script ejecutado en la configuración de la métrica. Se pueden ejecutar varios comandos uno tras otro colocándolos en una nueva línea. En este caso, los valores devueltos también tendrán el formato de varias líneas.

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

Los campos que requieren información específica para métricas SSH son:

Parámetro Descripción Comentarios
Tipo Seleccione Agente SSH aquí.
Clave Clave de métrica única (por equipo) en el formato ssh.run[descripción breve única,<ip>,<puerto>,<codificación>,<opciones de ssh>] única Se requiere una breve descripción y debe ser única para cada métrica SSH por equipo.

El puerto predeterminado es 22, no el puerto especificado en la interfaz a la que se asigna este elemento.

** Las opciones ssh** (compatibles desde la versión 6.4.0) permiten pasar opciones SSH adicionales en el formato clave1=valor1;clave2=valor2,valor3. Se pueden pasar varios valores para una clave separados por comas (en este caso, el parámetro debe ser quoted); Se pueden pasar varias claves de opción separadas por punto y coma. Las claves y valores de opciones admitidas dependen de la biblioteca SSH. Tenga en cuenta que el signo "+" para agregar configuraciones de cifrado y "!" para deshabilitar configuraciones de cifrado específicas (como en GnuTLS y OpenSSL) no son compatibles.

Ejemplos:
=> ssh.run[KexAlgorithms,127.0.0.1,,,Ciphers=aes128-ctr]< br>=> ssh.run[KexAlgorithms,,,,"KexAlgorithms=diffie-hellman-group1-sha1;HostkeyAlgorithms=ssh-rsa,ssh-dss,ecdh-sha2-nistp256"]
Método de autenticación Una entre "Password" o "Public key".
Nombre de usuario Nombre de usuario para autenticarse en el equipo remoto. Requerido.
Archivo de clave pública Nombre de archivo de la clave pública si Método de autenticación es "Clave pública". Requerido. Ejemplo: id_rsa.pub - nombre de archivo de clave pública predeterminado generado por un comando ssh-keygen.
Archivo de clave privada Nombre de archivo de la clave privada si Método de autenticación es "Clave pública". Requerido. Ejemplo: id_rsa - nombre de archivo de clave privada predeterminado.
Contraseña o
Frase de contraseña clave
Contraseña para autenticar o
Frase de contraseña si se usó para la clave privada.
Deje el campo Frase de contraseña clave vacío si no se usó la frase de contraseña.< br>Consulte también problemas conocidos sobre el uso de la frase de contraseña.
Script ejecutado Comando(s) de shell ejecutados usando una sesión remota SSH. El valor de retorno de los comandos de shell ejecutados está limitado a 16 MB (incluidos los espacios en blanco finales que están truncados); límites de la base de datos también se aplican.

Tenga en cuenta que la biblioteca libssh2 puede truncar scripts ejecutables a ~32kB.

Ejemplos :
fecha +%s
servicio estado del servidor mysql
ps auxww | grephttpd| baño -l