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.
La version minimale de la bibliothèque libssh2 prise en charge est 1.0.0.
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.
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 :
Décommentez-le et définissez le chemin d'accès complet à un dossier où se trouvent les clés publiques et privées :
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 pour /var/lib/zabbix, pour Debian c'est /var/run/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 :
Pour changer l'emplacement du répertoire personnel en le déplaçant (s'il existe), la commande suivante devrait être exécutée :
Il est tout à fait possible qu'un répertoire personnel n'existe pas à l'ancien emplacement (dans le CentOS par exemple), il devrait donc être créé au nouvel endroit. Une tentative sûre de faire cela est :
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 :
Les processus précédemment arrêtés peuvent maintenant être redémarrés :
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.
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.
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.