9 Verificacions SSH

Vista general

Les verificacions SSH es fan com a monitoratge sense agent. L'agent Zabbix no cal per fer les verificacions SSH.

Per fer les verificacions SSH, els servidor Zabbix s'ha de configurar inicialment amb el suport SSH2 (libssh2 o libssh). Veieu també: Requisits previs.

Només s'admet libssh a partir de RHEL 8. Per altres distribucions, libssh es suggereix per damunt de libssh2.

Configuració

Autenticació per frase de pas

Les verificacions SSH tenen dos mètodes d'autenticació - una parella usuari/mot de pas i un fitxer clau.

Si no teniu pas intenció d'emprar les claus, no cal pas vincular cap altra configuració addicional de la libssh o libssh2 a Zabbix, si instal·leu des dels orígens.

Autenticació d'arxiu de clau

Per emprar una autenticació basada en clau per elements SSH, s'han de fer alguns canvis a la configuració del servidor.

Obriu l'arxiu de configuració del servidor Zabbix (zabbix_server.conf) com a root, i cerqueu la línia següent:

# SSHKeyLocation=

Traieu-li el comentari i poseu-hi la ruta sencera cap a la carpeta on hi haurà les claus públiques i privades:

SSHKeyLocation=/home/zabbix/.ssh

Deseu l'arxiu i reinicieu el zabbix_server.

/home/zabbix aquest és el directori arrel de l'usuari zabbix, i .ssh és el directori on s'hi generen per defecte les claus públiques i privades amb la comanda ssh-keygen dins del directori de l'usuari.

Generalment, els paquets d'instal·lació del zabbix-server de diferents distribucions de Sistema Operatiu creen el compte d'usuari zabbix amb un directori arrel en un lloc no gaire habitual (com per a comptes del sistema; per exemple, /var/lib/zabbix).

Abans de generar les claus, estaria bé moure el directori base de l'usuari a un lloc més intuïtiu. Aquest hauria de correspondre amb el paràmetre de configuració SSHKeyLocation del servidor Zabbix, tal com s'ha dit més amunt.

Les passes poden saltar-se si el compte zabbix s'ha afegit manualment d'acord amb la secció d'instal·lació, doncs en aquest cas el directori base sigui a /home/zabbix.

Per canviar aquest paràmetre del compte d'usuari zabbix, tots els processos que sigui emprant s'han d'aturar:

service zabbix-agent stop
       service zabbix-server stop

Per canviar el directori base movent-lo, la comanda hauria d'ésser:

usermod -m -d /home/zabbix zabbix

És possible que el directori base no existeixi al lloc antic, pel que s'hauria de crear a la nova ubicació. Una manera de fer-ho és:

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

Per assegurar-vos que és segur, exxecuteu comandes addicionals per establir els permisos al directori base:

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

Com hem aturat els processos abans, ara els hauríem d'engegar:

service zabbix-agent start
       service zabbix-server start

Ara, les passes per generar les claus públiques i privades es poden fer amb aquesta comand:

# 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): 
       # <enter the 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: les claus públiques i privades (id_rsa.pub i id_rsa respectivament) s'han generat per defecte al directori /home/zabbix/.ssh, que correspon al paràmetre de configuració SSHKeyLocation del servidor Zabbix.

Els tipus de claus diferents d'"rsa" es poden admetre per l'eina ssh-keygen i els servidors SSH però no seran suportades per libssh2, que és la que empra el Zabbix.

Formulari de configuració de Shell

Aquesta passa només s'ha de fer un cop per cada equip que serà monitorat per les comprovacions SSH.

Mitjançant la ordre següent, el fitxer de claus públiques es pot instal·lar en un equip remot 10.10.10.10 de manera que les comprovacions SSH es puguin fer amb un compte root:

# sudo -u zabbix ssh-copy-id [email protected]
       No es pot establir l'autenticitat de l'equip "10.10.10.10 (10.10.10.10)".
       L'empremta digital de la clau RSA és 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
       Esteu segur que voleu continuar connectant-vos (sí/no)?
       #sí
       Avís: S'ha afegit permanentment "10.10.10.10" (RSA) a la llista d'equip coneguts.
       Mot de pas de [email protected]:
       Ara proveu d'iniciar sessió a la màquina, amb "ssh '[email protected]'", i registreu-vos:
            .ssh/authorized_keys
       per assegurar-vos que no hem afegit claus addicionals que no esperàveu.

Ara és possible comprovar l'inici de sessió SSH mitjançant la clau privada predeterminada (/home/zabbix/.ssh/id_rsa) per al compte d'usuari zabbix:

sudo -u zabbix ssh [email protected]

Si l'inici de sessió té èxit, la part de configuració de l'intèrpret d'ordres s'ha acabat i es pot tancar la sessió SSH remota.

Configuració de l'element

Les ordres reals a executar s'han de posar al camp Script executat de la configuració de l'element. Es poden executar diverses ordres una darrere l'altra posant-les en una línia nova. En aquest cas, els valors retornats també es formataran en diverses línies.

Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.

Els camps que requereixen informació específica per als elements SSH són:

Paràmetre Descripció Comentaris
Tipus Trieu aquí Agent SSH.
Clau Clau d'element única (per equip) en el format ssh.run[descripció curta única,<ip>,<port>,<encodificació>,<opcions ssh>] única És necessària una descripció breu i ha de ser única per a cada element SSH per equip.

El port predeterminat és 22, no el port especificat a la interfície a la que és assignat aquest element.

** Les opcions ssh** (admeses des de la versió 6.4.0) permeten passar opcions SSH addicionals en el format clau1=valor1;clau2=valor2,valor3. Es poden passar diversos valors per a una clau separats per comes (en aquest cas, el paràmetre ha de ser quoted); Es poden passar diverses tecles d'opció separades per punt i coma. Les claus d'opció i els valors admesos depenen de la biblioteca SSH. Tingueu en compte que el signe "+" per afegir la configuració de xifrat i "!" per desactivar configuracions de xifrat específiques (com a GnuTLS i OpenSSL) no són compatibles.

Exemples:
=> ssh.run[KexAlgorithms,127.0.0.1,,,Ciphers=aes128-ctr]
=> ssh.run[KexAlgorithms,,,,"KexAlgorithms=diffie-hellman-group1-sha1;HostkeyAlgorithms=ssh-rsa,ssh-dss,ecdh-sha2-nistp256"]
Mètode d'autenticació O "Mot de pas" o "Clau pública"
Nom d'usuari Nom de l'usuari que s'ha d'autenticar a l'equip remot.
Obligatori
Fitxer de clau pública Nom del fitxer o clau pública si el Mètode d'autenticació és "Clau pública". Obligatori Exemple: id_rsa.pub - per defecte el nom del fitxer de clau pública es genera mitjançant l'ordre ssh-keygen
Fitxer de clau privada Nom del fitxer o clau privada si el Mètode d'autenticació és "Clau privada". Obligatori Exemple: id_rsa - nom de fitxer de clau privada predeterminat.
Mot de pas o
Frase de pas
Mot de pas per a l'autenticació o
Frase de pas si s'ha emprat per a la clau privada
Deixeu buit el camp Frase de pas de la clau si no s'empra el mot de pas.
script executat Comandes d'intèrpret d'ordres executades mitjançant sessió remota SSH Exemples:
data +%s
estat del servidor mysql del servei
ps auxww | grep httpd | wc -l

La biblioteca libssh2 pot truncar els scripts executables a ~32 Ko.