Esta es una traducción de la página de documentación original en español. Ayúdanos a mejorarla.

#9 Comprobaciones SSH

Descripción

Las comprobaciones de SSH se realizan como monitoreo sin agente. El agente de Zabbix no es necesario para las comprobaciones de SSH.

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

Solo se admite libssh a partir de RHEL/CentOS 8.

Configuración

Autenticación de frase de contraseña

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

Si no tiene la intención de utilizar claves, no es necesaria ninguna configuración adicional, además de vincular libssh2/libssh a Zabbix, si está construyendo de la fuente

Autenticación del archivo de claves

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

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

# SSHKeyLocation=

Descoméntelo y establezca la ruta completa a una carpeta donde se encuentren las claves públicas y privadas. se ubicará:

SSHKeyLocation=/home/zabbix/.ssh

Guarde el archivo y luego reinicie zabbix_server.

/home/zabbix aquí está el directorio de inicio para la cuenta de usuario zabbix y .ssh es un directorio donde, por defecto, las claves públicas y privadas ser generado por el comando ssh-keygen dentro del directorio de inicio.

Por lo general, la instalación de paquetes de zabbix-server en las diferentes distribuciones crean una cuenta de usuario zabbix con un directorio de inicio en lugares no muy conocidos (en cuanto a las cuentas del sistema), por ejemplo /var/lib/zabbix.

Antes de empezar a generar las llaves, un planteamiento para reasignar el directorio personal a un lugar mejor conocido (intuitivamente esperado) podría ser considerado. Esto se corresponderá con el parámetro de configuración SSHKeyLocation mencionado anteriormente en el servidor Zabbix

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

Para cambiar la configuración de la cuenta de usuario zabbix los procesos que lo están utilizando deben detenerse:

# service zabbix-agent stop
       # service zabbix-server stop

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

# usermod -m -d /home/zabbix zabbix

Es absolutamente posible que no exista el directorio de inicio en el antiguo lugar (en CentOS por ejemplo), por lo que debe ser creado en el nuevo lugar. Un intento seguro de hacerlo es:

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

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

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

Los procesos detenidos anteriormente ahora se pueden iniciar de nuevo:

# service zabbix-agent start
       # service zabbix-server start

Ahora los pasos para generar claves públicas y privadas pueden ser realizados por el comando:

sudo -u zabbix ssh-keygen -t rsa

Generating public/private rsa key pair. Enter file in which to save the key (/home/zabbix/.ssh/id_rsa): Created directory '/home/zabbix/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/zabbix/.ssh/id_rsa. Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub. The key fingerprint is: 90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0 The key's randomart image is: +--[ RSA 2048]----+ | | | . | | o | | . o | |+ . S | |.+ o = | |E . * = | |=o . ..* . | |... oo.o+ | +-----------------+

Nota: las claves públicas y privadas (id_rsa.pub y id_rsa respectivamente) se han generado por defecto en el directorio /home/zabbix/.ssh que corresponde a la configuración del parámetro SSHKeyLocation del servidor Zabbix.

Los tipos de clave que no sean "rsa" pueden ser admitidos por el ssh-keygen tool y servidores SSH, pero es posible que no sean compatibles con libssh2, utilizado por Zabbix.

Formulario de configuración de Shell

Este paso debe realizarse una sola vez por cada host que se va a ser monitoreado por SSH.

Al usar el siguiente comando, se puede instalar el archivo de clave pública en un host remoto * 10.10.10.10 * para que luego se puedan realizar verificaciones SSH con una cuenta root:

sudo -u zabbix ssh-copy-id [email protected]

   The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.
          RSA key fingerprint is 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
          Are you sure you want to continue connecting (yes/no)? yes
          Warning: Permanently added '10.10.10.10' (RSA) to the list of known hosts.
          [email protected]'s password: 
          Now try logging into the machine, with "ssh '[email protected]'", and check in:
            .ssh/authorized_keys
          to make sure we haven't added extra keys that you weren't expecting.

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 está terminado y la sesión SSH remota se puede cerrar.

Configuración de elementos

Los comandos que se van a ejecutar deben colocarse en el campo Script ejecutado en la configuración del elemento.

Se pueden ejecutar múltiples comandos uno tras otro colocándolos en un nueva línea. En este caso, los valores devueltos también se devueltos en múltiples líneas.

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

Los campos que requieren información específica para elementos SSH son:

Parámetro Descripción Comentarios
Tipo Seleccione agente SSH aquí.
Clave Única (por host) clave de elemento en formato ssh.run[<descripción breve única>,<ip>,<puerto>,<codificación>] <descripción breve única> es necesaria y debe ser único para todos los elementos SSH por host
El puerto predeterminado es 22, no el puerto especificado en la interfaz a la que se asigna este elemento
Método de autenticación Uno de "Contraseña" o "Clave pública"
Nombre de usuario Nombre de usuario para autenticar en el host remoto.
Obligatorio
Archivo de clave pública Nombre de archivo de clave pública si Método de autenticación es "Clave pública". Obligatorio 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 clave privada si Método de autenticación es "Clave pública". Obligatorio Ejemplo: id_rsa - nombre de archivo de clave privada predeterminado
Contraseña o
Frase de contraseña de la clave
Contraseña para autenticar o
Frase de contraseña si se usó para la clave privada
Deje el campo Frase de contraseña de la clave vacío si no se usó la frase de contraseña
Consulte también problemas conocidos sobre el uso de frases de contraseña
Script ejecutado Comando(s) de shell ejecutado(s) mediante sesión remota SSH Ejemplos:
date +%s
service mysql-server status
ps auxww | grephttpd| wc -l

La biblioteca libssh2 puede truncar los scripts ejecutables para ~32kB.