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.
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.
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:
Traieu-li el comentari i poseu-hi la ruta sencera cap a la carpeta on hi haurà les claus públiques i privades:
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:
Per canviar el directori base movent-lo, la comanda hauria d'ésser:
É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:
Per assegurar-vos que és segur, exxecuteu comandes addicionals per establir els permisos al directori base:
Com hem aturat els processos abans, ara els hauríem d'engegar:
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.
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.
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 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 valors 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 les següents claus d'opcions: KexAlgorithms , HostkeyAlgorithms , Ciphers , MACs . El suport de claus i valors d'opció depèn de la biblioteca SSH; si una opció no és compatible, es retornarà un error i l'element no s'admetrà.Tingueu en compte 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. Consulteu 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 de retorn de la comanda executada és limitat a 16Mo ( return value of the executed shell command(s) is limited to 16MB; així com també apliquen els límits de bases de dades. Fixeu-vos que la biblioteca libssh2 pot truncar els scripts executables a ~32 Ko. Exemples: data +%s systemctl status mysql-server ps auxww | grep httpd | wc -l |