Authentification et autorisations dans les CGI

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.

Définitions

J’utiliserai les termes qui suivent dans ces instructions, il est donc important que vous en compreniez le sens…

  • Un utilisateur authentifié est quelqu’un qui s’est authentifié auprès du serveur web avec un nom d’utilisateur et un mot de passe, et à qui le serveur web a donné accès à l’interface web de Nagios®.
  • Un contact authentifié est un utilisateur authentifié dont le nom correspond à celui d’une définition de contact du fichier de configuration.

Index

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

Déclarer des utilisateurs authentifiés

Si vous ne l’avez pas déjà fait, vous devez modifier la configuration de votre serveur web pour activer l’authentification pour les CGI et les pages HTML de l’interface Nagios®. Vous pouvez trouvez les instructions pour cette configuration ici.

Maintenant que votre serveur web est configuré pour réclamer un accès authentifié à l’interface web de Nagios®, 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)…

  • Droit de voir l’état du service
  • Droit de voir la configuration du service
  • Droit de voir l’historique et les notifications de ce service
  • Droit de passer des commandes à ce service

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)…

  • Droit de voir l’état de l’hôte
  • Droit de voir la configuration de l’hôte
  • Droit de voir l’historique et les notifications de cet hôte
  • Droit de passer des commandes à cet hôte
  • Droit de voir l’état de tous les services de cet hôte
  • Droit de voir la configuration de tous les services de cet hôte
  • Droit de voir l’historique et les notifications de tous les services de cet hôte
  • Droit de passer des commandes à tous les services de cet hôte

Il est important de noter que par défaut, personne n’a le droit de…

  • Voir le fichier journal brut via la CGI d’affichage du journal
  • Voir les informations sur le processus de Nagios® via le CGI d’informations complémentaires
  • Passer des commandes à Nagios® via la CGI de commande
  • Voir les définitions des groupes d’hôtes, contacts, groupes de contacts, périodes, et commandes via la CGI de configuration

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 !

Sources

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *