Vous êtes ici:

Menu


Stacks Image 1022791
Suite à de nombreuses questions sur des dysfonctionnements récurrents, j’aimerai faire un rappel sur un utilitaire système nécessaire au bon fonctionnement de la supervision Centreon. Il s’agit de sudo contraction de la signification anglaise « Substitute User DO »
En clair : Exécuter une commande avec les droits du compte administrateur root et depuis n’importe quel compte utilisateur à condition qu’il soit autorisé.
Voici donc, l’importance de sudo dans notre environnement Centreon. Il autorisera certaines commandes telles que l’application de la configuration ou son rechargement.
En effet, lorsque vous utilisez l’interface Centreon, par exemple sous Debian, c’est le compte système www-data qui sera sollicité. Celui-ci n’est pas autorisé à lancer des commandes système comme le redémarrage du service du moteur de supervision.
Notre commande sudo prend toute son importance à cette étape. Avec une configuration adaptée à notre architecture inscrite dans son fichier de configuration /etc/sudoers, elle autorisera le compte www-data à exécuter le redémarrage du moteur de supervision, le rechargement du broker, etc…
Pour éditer ce fichier, nous utiliserons exclusivement la commande visudo. Cet éditeur permet la vérification de la syntaxe de la configuration.

1 Centreon, une configuration spécifique

Dans une configuration standard, l’interface graphique de Centreon fonctionne avec un serveur Web Apache. Celui-ci utilise un compte système www-data pour Debian ou apache pour CES. Pour appliquer une configuration au moteur de supervision, le compte système du serveur Web doit avoir les droits suffisants pour relancer certains services. C’est toute l’importance d’une bonne configuration de notre fichier /etc/sudoers.
Lors de l’installation de Centreon, si vous avez demandé la configuration de sudo bien évidemment, le compte système du serveur Apache a été autorisé à exécuter certaines commandes avec l’utilisateur root.
Voici en détail, les modifications apportées :
#Add by CENTREON installation script
User_Alias      CENTREON=www-data,centreon
un alias d’utilisateur (User_Alias) a été rajouté. Cet alias se nomme CENTREON. En général, il comprend plusieurs comptes système. En priorité le compte système du serveur web (www-data pour Debian, apache pour CES) est inscrit, puis les comptes centreon, nagios, centreon-broker et centreon-engine sont rajoutés en fonction des configurations.
Defaults:CENTREON !requiretty
La directive !requiretty est requise pour permettre l’utilisation de sudo sans terminal nécessaire lorsque ces commandes sont lancées depuis des scripts.
# Monitoring engine Restart
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine* restart
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine restart
# Monitoring engine reload
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine* reload
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine reload
# Monitoring engine force-reload
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine* force-reload
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine force-reload
# Monitoring engine test config
CENTREON   ALL = NOPASSWD: /usr/local/centreon-engine/bin/centengine* -v *
CENTREON   ALL = NOPASSWD: /usr/local/centreon-engine/bin/centengine -v *
# Monitoring engine test for optim config
CENTREON   ALL = NOPASSWD: /usr/local/centreon-engine/bin/centengine* -s *
CENTREON   ALL = NOPASSWD: /usr/local/centreon-engine/bin/centengine -s *
# Snmptrapd Restart
CENTREON   ALL = NOPASSWD: /etc/init.d/snmptrapd restart
# Centreontrapd restart
CENTREON   ALL = NOPASSWD: /etc/init.d/centreontrapd restart
# Centreontrapd reload
CENTREON   ALL = NOPASSWD: /etc/init.d/centreontrapd reload
# CentStorage Restart
CENTREON   ALL = NOPASSWD: /etc/init.d/centstorage restart
# CentStorage stop
CENTREON   ALL = NOPASSWD: /etc/init.d/centstorage stop
# CentStorage start
CENTREON   ALL = NOPASSWD: /etc/init.d/centstorage start
# Broker engine Restart
CENTREON   ALL = NOPASSWD: /etc/init.d/cbd* restart
CENTREON   ALL = NOPASSWD: /etc/init.d/cbd restart
# Broker engine reload
CENTREON   ALL = NOPASSWD: /etc/init.d/cbd* reload
CENTREON   ALL = NOPASSWD: /etc/init.d/cbd reload
## END: CENTREON SUDO
Ensuite, nous découvrons une suite de commandes autorisée à utiliser l’élévation de privilèges. Toutes les commandes ont l’option ALL = NOPASSWD permettant l’exécution de celles-ci sans le mot de passe du compte utilisateur. L'exemple ci-dessus est tiré d'une architecture Full Centreon (Centreon-Engine, Centreon-Broker).
Stacks Image 22084
sudo avec CES
La configuration de sudo diffère entre la distribution Debian et celle de CES basée sur Centos. Le fichier /etc/sudoers existe bien avec CES mais la configuration spécifique de Centreon se trouve dans le fichier /etc/sudoers.d/centreon.

Voila_Capture 2014-07-10_06-17-22_PM

2 Toujours vérifier son installation

Après une nouvelle installation, il est primordial d’effectuer des essais de fonctionnement et surtout bien déterminer le type de vérification que l’on peut faire.
Pour sudo, nous détecterons l’activité des logs lorsque nous utiliserons certaines commandes de l’interface Web.

2.1 Installation sous Debian

Le fichier de log utilisé par sudo se nomme /var/log/auth.log. Avant de lancer d'appliquer une configuration Centreon, lancez cette commande dans un terminal.
tail -f /var/log/auth.log

2.1a Application de la configuration Centreon

Stacks Image 22125
Application d'une configuration avec Debian
Lorsque vous appliquez la configuration, le serveur Web appelle la commande sudo pour lancer la commande de vérification de la configuration (encadré en rouge) et ensuite pour appliquer la configuration (encadré en bleu). Vous remarquerez que le compte système utilisant sudo se nomme www-data.

2.1b Génération de la configuration des traps

Le mécanisme est un peu plus complexe. Nous faisons appel au processus CentCore. Pour visualiser toutes les étapes, activer le mode debug de CentCore.
Stacks Image 22027
Application du mode debug pour CentCore
Surveillez l'activité du fichier /var/log/centreon/centcore.log dans un deuxième terminal. Sélectionnez le menu Configuration / SNMP traps / Generate
Stacks Image 22074
Vérification de la génération des traps avec CentCore
Dans notre exemple, la génération de la configuration des traps va déclencher une action dans le service CentCore. Celui-ci va lancer une commande sudo pour relancer le service centreontrapd. Lors de la lecture du fichier de log /var/log/auth.log, on constate que le compte système utilisé est centreon.

2.2 Installation sous CES

Le fichier de log utilisé par sudo se nomme /var/log/secure. Avant de lancer d'appliquer une configuration Centreon, lancez cette commande dans un terminal.
tail -f /var/log/secure
Stacks Image 22018
Application d'une configuration avec CES
Comme précédemment, lorsque vous appliquez la configuration, le serveur Web appelle la commande sudo pour lancer la commande de vérification de la configuration (encadré en rouge) et ensuite pour appliquer la configuration (encadré en bleu). Vous remarquerez que le compte système utilisant sudo se nomme apache.
comments powered by Disqus
 Vous êtes ici: