Configuration de nagios pour utiliser Active Directory comme authentification

Et voici un petit tuto afin de faire du SSO avec Nagios et un annuaire de type Active Directory.

Les forces en présences:

  • Nagios 3.5 sous Ubuntu 12.04.2 LTS
  • Un bel AD en niveau de forêt 2003

Création d’un utilisateur Bind

Il faut dans un premier temps créer un compte dans l’AD de « bind » avec des droits réduits afin de pouvoir vérifier les login saisis. Ce dernier pourra être réutiliser pour d’autres SSO.

Ouvrir une console Utilisateur et ordinateurs Active Directory puis créer un nouvel utilisateur:

figure1

Remplir les différents champs et saisir un nom d’utilisateur (éviter les espaces):

figure2

Saisir un mot de passe et cocher les options « L’utilisateur ne peut pas changer de mot de passe » et « Le mot de passe n’expire jamais »:

figure3

Terminer l’assistant de création d’utilisateur. Petite astuce au passage, dans votre console vous pouvez afficher les fonctionnalités avancées (cf image) afin de pouvoir obtenir des informations supplémentaires concernant les comptes comme par exemple le distinguishedName dans l’onglet éditeur d’attributs. Ceci sera bien pratique pour la suite.

Capture

Nous allons maintenant donner des droits de délégations réduits à notre bind en cliquant droit sur notre domaine et délégation de contrôle:

figure5

Débuter l’assistant et choisissez notre utilisateur bind précédemment créé:

figure6

Créer une tâche personnalisée de délégation:

figure7

Puis restreindre ce dernier aux Objets utilisateurs seulement:

figure8

Définir les droits sur lire toutes les propriétés et nous aurons notre utilisateur bind fonctionnel:

figure9

Modification dans apache pour communiquer avec l’AD

Il faut dans un premier temps ajouter le module ldap à apache:

[root@ ~]# a2enmod ldap

Puis ensuite modifier soit votre vhost si vous en avez créé un soit le fichier apache de nagios par défaut (/etc/apache2/conf.d/nagios.conf) en ajoutant ces lignes:

<Directory « /usr/local/nagios/sbin »>
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all

AuthType Basic
AuthName « Network Credentials Required »
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL « ldap://mon_dc.domain.local:389/ou=test,dc=domain,dc=local?sAMAccountName?sub?(objectClass=*) »
AuthLDAPBindDN « ldapbind@domain.local »
AuthLDAPBindPassword « PASSWORD »
Require ldap-group CN=nagios_users,OU=test,DC=domain,DC=local

# AuthName « Nagios Access »
# AuthType Basic
# AuthUserFile /usr/local/nagios/etc/htpasswd.users
# Require valid-user
</Directory>

Alias /nagios « /usr/local/nagios/share »

<Directory « /usr/local/nagios/share »>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

AuthType Basic
AuthName « Network Credentials Required »
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL « ldap://mon_dc.domain.local:389/ou=test,dc=domain,dc=local?sAMAccountName?sub?(objectClass=*) »
AuthLDAPBindDN « ldapbind@domain.local »
AuthLDAPBindPassword « PASSWORD »
Require ldap-group CN=nagios_users,OU=test,DC=domain,DC=local

# AuthName « Nagios Access »
# AuthType Basic
# AuthUserFile /usr/local/nagios/etc/htpasswd.users
# Require valid-user
</Directory>

Le paramètre Require ldap-group permet de filtrer les utilisateurs ayant accès à l’applicatif en devant être membre du groupe spécifié.

Si vous rencontrez des problèmes durant la configuration, vous pouvez activer un mode de debug avancé en ajoutant « LogLevel debug » dans la conf du vhost.

Il ne nous reste plus qu’à modifier le fichier /usr/local/nagios/etc/cgi.cfg qui contient peut être des restrictions de droits concernant les personnes connectées.

Par exemple dans le mien, seul l’utilisateur nagiosadmin pouvait accéder au hôtes etc…

Ceci se trouve dans les différents paramètres comme authorized_for_system_information=nagiosadmin.

Il faut remplacer nagiosadmin par * afin que tous les utilisateurs ayant le droit de se logguer puissent avoir l’accès.

Tout devrait rouler par la suite.

kiolul