Notes
Dans ces instructions, je pars du principe que vous utilisez le serveur web Apache [Anglais]. Dans le cas contraire, il vous faudra faire les adaptations appropriées.
J'utiliserai les termes qui suivent dans ces instructions, il est donc important que vous les compreniez...
Index
Configurer l'authentification du serveur web
Déclarer des utilisateurs authentifiés
Activer l'authentification/l'autorisation dans les
CGI
Droits d'accès par défaut aux informations
des CGI
Donner des droits d'accès supplémentaires
aux informations des CGI
Authentification sur des serveurs web sécurisés
Configurer l'authentification du serveur web
La première étape est de s'assurer que le fichier d'Apache access.conf contient une directive 'AuthOverride AuthConfig' concernant le répertoire CGI-BIN de Nagios. Sinon, ajoutez quelque chose de ce genre au fichier access.conf. Notez que ce changement n'est appliqué qu'au redémarrage du serveur web.
<Directory /usr/local/nagios/sbin>
AllowOverride AuthConfig
order allow,deny
allow from all
Options ExecCGI
</Directory>
Si vous souhaitez également une authentification pour accéder aux pages HTML, ajoutez quelque chose comme ce qui suit au fichier access.conf.
<Directory /usr/local/nagios/share>
AllowOverride AuthConfig
order allow,deny
allow from all
</Directory>
La deuxième étape consiste à créer un fichier .htaccess à la racine de votre répertoire des CGI de Nagios (et éventuellement de votre répertoire HTML) (par défaut /usr/local/nagios/sbin et /usr/local/nagios/share, respectivement). Ces fichiers doivent contenir quelque chose comme...
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user
Déclarer des utilisateurs authentifiés
Maintenant que votre serveur web est configuré pour réclamer un accès authentifié aux CGI, vous devez déclarer les utilisateurs autorisés à y accéder. C'est ce que fait la commande Apache htpasswd.
La commande suivante crée un fichier htpasswd.users dans le répertoire /usr/local/nagios/etc. Elle crée également une entrée nom d'utilisateur/mot de passe pour nagiosadmin. Un mot de passe pour l'authentification de nagiosadmin dans le serveur web vous sera alors demandé.
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Ajoutez ainsi tous les utilisateurs qui doivent avoir accès aux CGI. Utilisez la commande suivante pour cela, en remplaçant <nom_utilisateur> par le nom de l'utilisateur que vous voulez ajouter. Notez que l'option -c n'est plus utilisée, dans la mesure où le fichier initial est déjà créé.
htpasswd /usr/local/nagios/etc/htpasswd.users <nom_utilisateur>
Voilà, la première partie du travail est faite. En pointant votre navigateur sur les CGI de Nagios, un nom d'utilisateur et un mot de passe vous seront demandés. Si vous rencontrez des problèmes, veuillez vous référer à la documentation de votre serveur web.
Activer l'authentification/l'autorisation dans les CGI
Maintenant il s'agit de s'assurer que les CGI sont configurés pour filtrer les informations et les commandes auxquelles les utilisateurs peuvent accéder. Pour cela la variable use_authentication du fichier de configuration des CGI doit être positionnée à une valeur différente de zéro. Par exemple:
use_authentication=1
Voilà, la fonctionnalité d'authentification/d'autorisation de base est activée dans les CGI.
Droits d'accès par défaut aux informations des CGI
Quelles sont maintenant les droits d'accès aux CGI par défaut ?
Données des CGI | Contacts authentifiés* | Autres utilisateurs authentifiés* |
Information sur l'état des hôtes | Oui | Non |
Information sur la configuration des hôtes | Oui | Non |
Historique des hôtes | Oui | Non |
Notifications des hôtes | Oui | Non |
Commandes des hôtes | Oui | Non |
Information sur l'état des services | Oui | Non |
Information sur la configuration des services | Oui | Non |
Historique des services | Oui | Non |
Notifications des services | Oui | Non |
Commandes des services | Oui | Non |
Toutes informations de configuration | Non | Non |
Information sur le système/processus | Non | Non |
Commandes système/processus | Non | Non |
Les Contacts authentifiés* ont les droits suivants sur chaque service dont ils sont un contact (mais pas sur ceux dont ils ne sont pas un contact)...
Les Contacts authentifiés* ont les droits suivants sur chaque hôte dont ils sont un contact (mais pas sur ceux dont ils ne sont pas un contact)...
Il est important de noter que par défaut, personne n'a le droit de...
Vous aurez sans doute besoin de ces informations, c'est pourquoi vous devrez vous donner des droits d'accès supplémentaires (et éventuellement à d'autres utilisateurs) comme décrit ci-dessous...
Donner des droits d'accès supplémentaires aux informations des CGI
Vous pouvez donner aux contacts authentifiés et autres utilisateurs authentifiés des droits d'accès à d'autres informations des CGI en les ajoutant à diverses variables d'autorisation dans le fichier de configuration des CGI. Je m'aperçois que ces variables ne permettent pas d'être très précis dans les autorisations, mais c'est mieux que rien.
Des droits supplémentaires peuvent être accordés aux utilisateurs en les ajoutant aux variables suivantes...
Autorisations requises par les CGI
Si les droits d'accès aux diverses informations des CGI ne vous paraissent pas clairs, lisez la section Autorisations requises de chaque CGI qui se trouve ici.
Authentification sur des serveurs web sécurisés
Si votre serveur web se trouve dans un domaine sécurisé (i.e., derrière un firewall) ou si vous utilisez SSL, vous pouvez définir un utilisateur par défaut pour accéder aux CGI. C'est le rôle de la variable default_user_name du fichier de configuration des CGI. En définissant un nom d'utilisateur par défaut, vous pouvez autoriser les utilisateurs à accéder aux CGI sans qu'ils ne s'authentifient auprès du serveur web. Ceci vous permet d'éviter d'utiliser l'authentification web de base, qui transmet les mots de passe en clair sur Internet.
Important : Ne définissez pas d'utilisateur par défaut, à moins que vous n'utilisiez un serveur web sécurisé et que vous soyez sûr que les utilisateurs qui accèdent aux CGI ont été authentifiés d'une manière ou d'une autre ! Si vous utilisez cette variable, un utilisateur non authentifié héritera des droits de cet utilisateur par défaut !