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 La clau d'element única (per equip) en format ssh.run[<descripció curta única>,<ip>,<port>,<codificació>,<opcions ssh>] descripció curta única* és obligatori i ha d'ésser única en tots els elements SSH per equip.
El port predeterminat és el 22, no pas el port especificat a la interfície a la qual és assignat aquest element.

opcions ssh** (admès des de la versió 6.0.25; cal libssh versió 0.9.0 i superior o libssh2) permet passar opcions SSH addicionals en format key1=value1;key2=value2,value3. Es poden passar valor mútiples per una clau separats per comes (en aquest cas, el paràmetre ha d'ésser comentat); claus múltiples d'opció es poden passar separades per punt i coma. S'admeten claus i valors opcionals depenent de la biblioteca SSH. Veieu que el signe "+" per afegir configuració de xifrat i "!" per deshabilitar configuració de xifrats específiques (com a GnuTLS i OpenSSL) no s'admeten pas.

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.
Veieu també els problemes coneguts sobre l'ús de frases de pas.
script executat Comandes d'intèrpret d'ordres executades mitjançant sessió remota SSH El valor retornat de les comandes executades es limita a 16Mo (incloent els espais truncats al final); també s'apliquen límits de la base de dades.

Fixeu-vos que la biblioteca libssh2 truncarà els scripts executables a ~32Ko.

Exemples:
data +%s
estat del servidor mysql del servei
ps auxww | grep httpd | wc -l