This is a translation of the original English documentation page. Help us make it better.

9 Vérifications SSH

Aperçu

Les vérifications SSH sont effectuées en tant que supervision sans agent. L'agent Zabbix n'est pas nécessaire pour les vérifications SSH.

Pour effectuer des vérifications SSH, le serveur Zabbix doit être initialement configuré avec le support SSH2 (libssh2 ou libssh). Voir également : Pré-requis..

Seul libssh est pris en charge à partir de RHEL 8.

Configuration

Authentification par phrase secrète

Les vérifications SSH fournissent deux méthodes d'authentification, un couple utilisateur/mot de passe et un fichier clé.

Si vous n'avez pas l'intention d'utiliser des clés, aucune configuration supplémentaire n'est requise en plus de relier libssh2 à Zabbix, si vous installez à partir des sources.

Authentification par fichier clé

Pour utiliser l'authentification par clé pour les éléments SSH, certaines modifications de la configuration du serveur sont requises.

Ouvrez le fichier de configuration du serveur Zabbix (zabbix_server.conf) en tant qu'utilisateur root et recherchez la ligne suivante :

# SSHKeyLocation=

Décommentez-le et définissez le chemin d'accès complet à un dossier où se trouvent les clés publiques et privées :

SSHKeyLocation=/home/zabbix/.ssh

Enregistrez le fichier et redémarrez zabbix_server ensuite.

/home/zabbix ici est le répertoire de base du compte utilisateur zabbix et .ssh est un répertoire où, par défaut, les clés publiques et privées seront générées par une commande ssh-keygen dans le répertoire home.

Habituellement, les paquets d'installation de zabbix-server provenant de différentes distributions du système d'exploitation créent le compte utilisateur zabbix avec un répertoire personnel dans des endroits peu connus (comme les comptes systèmes), par exemple /var/lib/zabbix.

Avant de commencer à générer les clés, une approche pour réattribuer le répertoire de base à un endroit mieux connu (plus intuitif) pourrait être envisagée. Cela correspondra au paramètre de configuration du serveur Zabbix SSHKeyLocation mentionné ci-dessus.

Ces étapes peuvent être ignorées si le compte zabbix a été ajouté manuellement en fonction de la section d'installation car, dans ce cas, le répertoire home est probablement déjà situé dans /home/zabbix.

Pour modifier le paramètre du compte utilisateur zabbix, tous les processus qui l'utilisent doivent être arrêtés :

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

Pour changer l'emplacement du répertoire personnel en le déplaçant (s'il existe), la commande suivante devrait être exécutée :

# usermod -m -d /home/zabbix zabbix

Il est tout à fait possible qu'un répertoire personnel n'existe pas à l'ancien emplacement, il devrait donc être créé au nouvel endroit. Une tentative sûre de faire cela est :

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

Pour être sûr que tout est sécurisé, des commandes supplémentaires peuvent être exécutées pour définir des autorisations sur le répertoire de base :

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

Les processus précédemment arrêtés peuvent maintenant être redémarrés :

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

Maintenant, les étapes pour générer des clés publiques et privées peuvent être effectuées par la commande :

# 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+ | +-----------------+

Remarque : les clés publique et privée (id_rsa.pub et id_rsa respectivement) ont été générées par défaut dans le répertoire /home/zabbix/.ssh qui correspond au paramètre de configuration du serveur Zabbix SSHKeyLocation.

Les types de clé autres que "rsa" peuvent être pris en charge par l'outil ssh-keygen et les serveurs SSH, mais ils peuvent ne pas être pris en charge par libssh2, utilisé par Zabbix.

Formulaire de configuration du shell

Cette étape doit être effectuée une seule fois pour chaque hôte qui sera surveillé par des vérifications SSH.

En utilisant la commande suivante, le fichier de clé publique peut être installé sur un hôte distant 10.10.10.10 afin que les vérifications SSH puissent être effectuées avec un compte 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.

Maintenant, il est possible de vérifier la connexion SSH en utilisant la clé privée par défaut (/home/zabbix/.ssh/id_rsa) pour le compte utilisateur zabbix :

# sudo -u zabbix ssh [email protected]

Si la connexion est réussie, la partie de configuration dans le shell est terminée et la session SSH distante peut être fermée.

Configuration de l’élément

Les commandes réelles à exécuter doivent être placées dans le champ Script exécuté dans la configuration de l'élément.

Plusieurs commandes peuvent être exécutées l'une après l'autre en les plaçant sur une nouvelle ligne. Dans ce cas, les valeurs renvoyées seront également formatées en plusieurs lignes.

Tous les champs de saisie obligatoires sont marqués d'un astérisque rouge.

Les champs qui nécessitent des informations spécifiques pour les éléments SSH sont les suivants :

|Paramètre|Description|Commentaires| |--|------|------|¶ |Type|Sélectionnez Agent SSH ici.| | |Clé|Clé d'élément unique (par hôte) au format ssh.run[<unique short description>,<ip>,<port>,<encoding>]|<unique short description > est obligatoire et doit être unique pour tous les éléments SSH par hôte.
Le port par défaut est 22, pas le port spécifié dans l'interface à laquelle cet élément est affecté| |Méthode d'authentification|Un parmi "Mot de passe" or "Clé publique"| | |Nom d'utilisateur|Nom de l'utilisateur permettant de s'authentifier sur l'hôte distant.
Obligatoire| | |Fichier de clé publique|Nom du fichier ou clé publique si la Méthode d'authentification est "Clé publique". Obligatoire|Exemple : id_rsa.pub - par défaut le nom du fichier de la clé publique est généré via la commande ssh-keygen| |Fichier de clé privée|Nom du fichier ou clé privée si la Méthode d'authentification est "Clé publique". Obligatoire|Exemple : id_rsa - par défaut le nom de fichier de la clé privée| |Mot de passe ou
Phrase de passe de la clé|Mot de passe pour l'authentification ou
Phrase de passe de la clé si il était utilisé pour la clé privée|Laissez le champs Phrase de passe de la clé vide si la phrase secrete n'est pas utilisée
Voir aussi les problèmes connus concernant l'utilisation de la phrase secrete| |script exécuté|Commande(s) shell exécutée(s) à l'aide de la session à distance SSH|Exemples :
date +%s
service mysql-server status
ps auxww | grep httpd | wc -l|

La bibliothèque libssh2 peut tronquer les scripts exécutables à ~32 Ko.