diff --git a/HowtoNRPE.md b/HowtoNRPE.md index 269772a0..cdfb65ae 100644 --- a/HowtoNRPE.md +++ b/HowtoNRPE.md @@ -68,12 +68,26 @@ command[check_mysql]=/usr/lib/nagios/plugins/check_mysql -H localhost -f ~nagios > *Note* : dans des versions précédentes de Debian, il n'était pas vraiment possible de surcharger la configuration : des options en double provoquait une activation aléatoire d'une option ou d'une autre ! +Les directives importantes & utiles sont : + +* `allowed_hosts` : Permet d'énumérer les adresses IP qui sont autorisées à parler avec le daemon NRPE +* `command[CHECK_NAME]=/usr/lib/nagios/plugins/check_XXX` : Définis une commande NRPE `CHECK_NAME` + + ## Principe Le principe est qu'un démon écoute sur le port TCP/5666 et qu'on peut ainsi exécuter une commande distante définie dans la configuration. +On utilise la commande check_nrpe, celle-ci est distribuée dans le paquet `nagios-nrpe-plugin` dans Debian + ~~~ -/usr/lib/nagios/plugins/check_nrpe -H 192.0.2.42 -c check_load +# apt install nagios-nrpe-plugin +$ /usr/lib/nagios/plugins/check_nrpe -V +NRPE Plugin for Nagios +Version: 4.1.0 + +## Exemple: /usr/lib/nagios/plugins/check_nrpe -H HOTE_NRPE -c CHECK_NAME +$ /usr/lib/nagios/plugins/check_nrpe -H 192.0.2.42 -c check_load OK - load average: 0.01, 0.01, 0.01|load1=0.012;0.700;0.900;0; load5=0.010;0.600;0.800;0; load15=0.010;0.500;0.700;0; ~~~ @@ -109,3 +123,58 @@ Plusieurs options sont intéressantes : * `-S -H example.com -C 15,5` : vérifie que la validité d'un certificat SSL/TLS est inférieure à 15 jours (WARN) ou 5 jours (CRIT) +## Plomberie + +### Erreur SSL avec le service NRPE sur une ancienne Debian depuis un client NRPE récent (Debian 10+) + +Les versions récentes (Debian 10 et suivantes) ont une version plus récente d'OpenSSL, la bibliothèque qui gère le chiffrement TLS de la connexion NRPE. +Celle-ci refusera d'établir la connexion chiffrée avec une ancienne version de NRPE, notamment celle présente dans Debian 8 (et plus ancien). + +Pour le détail technique, c'est OpenSSL côté client qui refuse de faire un échange Diffie Hellman de 512 bits. +Sauf que cette taille de clé est malheureusement codée en dur dans NRPE. + +Plusieurs alternatives sont possibles pour continuer de surveiller une ancienne machine : +* A/ (Déconseillée) Désactiver SSL/TLS pour la communication entre le client et le serveur NRPE +* B/ Encapsuler l'utilisation de NRPE dans SSH. Le service de monitoring fait une connexion SSH vers l'hôte surveillé pour utiliser la commande `check_nrpe` localement +* C/ Patcher le serveur NRPE pour qu'il utilise à place une clé de 2048bits ([patch](https://gitea.evolix.org/evolix/nagios-nrpe-jessie-gbp/commit/b988357a7f58c2f28055f75bd3eec129ee1957bc)) - Cette version patchée est disponible sur notre dépôt [pub.evolix.org](/HowtoDebian/SourcesList) + +### Désactiver SSL/TLS + +Nous déconseillons cette configuration, mais c'est possible de désactiver le chiffrement. + +Dans le fichier de configuration `/etc/default/nagios-nrpe-server`, il y a la variable `NRPE_OPTS`. Il faut la décommenter et rajouter `-n` pour désactiver SSL et redémarrer le servce. + +> **Attention** : ça implique que **tous** les clients devront désactiver SSL pour communiquer avec le service NRPE. + +Côté client, on ajoutera aussi l'option `-n` pour désactiver l'utilisation de SSL/TLS lors de la connexion : + +Exemple : `/usr/lib/nagios/plugins/check_nrpe -n -H 192.0.2.42 -c check_load` + + +### Configurer un certificat SSL/TLS serveur + +Dans la configuration de NRPE, il est possible de configurer un certificat serveur. Ça permet notamment au client de valider l'identité du serveur. + + +Côté serveur, ça se configure avec les directives suivantes pour donner les fichiers du certificat et la clé privée : + +``` +ssl_cert_file=/etc/nagios/cert.pem +ssl_privatekey_file=/etc/nagios/privkey.key +``` + +Attention à ce que l'utilisateur `nagios` ait bien le droit de lecture sur ces fichiers. + + +> **Remarque importante** : Il semble que `check_nrpe` ne valide pas la correspondance du `CN` (CommonName) du certificat avec l'adresse de destination utilisée en argument (le `-H`) mais seulement la validité du certificat face à la CA utilisée avec l'argument. + +Exemple : + +``` +## Si la CA de notre PKI est dans /etc/ssl/ca-pki.pem +$ /usr/lib/nagios/plugins/check_nrpe -H 192.0.2.10 -A /etc/ssl/ca-pki.pem -c check_load +``` + +> *Note* : On peut utiliser `/etc/ssl/certs/ca-certificates.crt` si le certificat est issu d'une autorité de certification classique + +## FAQ \ No newline at end of file