Outils pour utilisateurs

Outils du site


cours:informatique:sysadmin:gerer_serveur_linux_et_services:150_gerer_annuaire_ldap

Notes et transcriptions du cours “Gérez votre serveur Linux et ses services” disponible sur la plateforme Openclassrooms.

Gérez votre annuaire LDAP

Dans le chapitre précédent, vous avez vu que votre annuaire avait une structure particulièrement basique puisqu’il ne comporte que deux entrées. Vous avez également découvert qu’il était possible de décrire les changements à appliquer à un annuaire par le format LDIF.

Savez-vous que votre annuaire contient un deuxième DIT? En effet, dans les anciennes versions de slapd, la configuration se faisait en modifiant des fichiers dans /etc/ldap/ , et imposait de redémarrer le serveur pour être prise en compte. Cette méthode est toujours possible, mais il est maintenant recommandé d’utiliser la nouvelle méthode dite de “configuration à chaud” (en anglais OLC pour On-Line Configuration) qui permet de ne pas avoir à redémarrer le serveur pour actualiser.

Découvrez la configuration à chaud de slapd

Maintenant, la configuration est gérée sous forme d’un DIT dont le suffixe est cn=config, et le service reste disponible pendant l’application des changements. Vous pouvez voir les entrées de cet arbre par la commande :

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn

La commande retourne :

dn: cn=config
 
dn: cn=module{0},cn=config
 
dn: cn=schema,cn=config
 
dn: cn={0}core,cn=schema,cn=config
 
dn: cn={1}cosine,cn=schema,cn=config
 
dn: cn={2}nis,cn=schema,cn=config
 
dn: cn={3}inetorgperson,cn=schema,cn=config
 
dn: olcBackend={0}mdb,cn=config
 
dn: olcDatabase={-1}frontend,cn=config
 
dn: olcDatabase={0}config,cn=config
 
dn: olcDatabase={1}mdb,cn=config

Cette configuration contient donc des informations sur les modules, le schéma, les classes d’objets intégrées par défaut. La configuration propre à votre DIT dc=mon-entreprise,dc=com se trouve dans olcDatabase={1}mdb,cn=config.

Comme cette configuration est stockée sous forme de DIT, vous pouvez la modifier au moyen de fichiers LDIF. Pour tester ça, je vous propose de modifier la quantité de logs générée par slapd. Par défaut, slapd ne génère aucun log, et vous aimeriez peut-être avoir plus d’informations sur l’activité de votre serveur. L’attribut qui gère ça est directement un attribut de cn=config appelé olcLogLevel.

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -s base -b cn=config olcLogLevel
dn: cn=config
olcLogLevel: none
Ici j’ai rajouté l’option -s base pour indiquer le scope, c’est-à-dire l’étendue de la recherche. base effectue la recherche uniquement au niveau du DN indiqué, alors que par défaut le scope est subtree pour rechercher sur toutes les entrées inférieures également.

Étendue de la recherche en fonction de la valeur du paramètre “scope”

Vous allez faire passer le niveau de logs à stats. Ça générera peut-être trop de messages pour un système en production, mais ce sera parfait pour vos tests. Pour cela, enregistrez un fichier logLevel.ldif contenant :

logLevel.ldif
dn: cn=config
changeType: modify
replace: olcLogLevel
olcLogLevel: stats

Reprenons ensemble en détail cette commande :

dn:cn=config le DN à modifier
changetype: modify le type de modification de l’objet à effectuer
replace: olcLogLevel l’attribut à modifier
olcLogLevel: stats la nouvelle valeur de l’attribut

Vous pouvez appliquer ce changement par la commande :

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f logLevel.ldif

Les options sont les mêmes que pour ldapsearch, sauf le -f qui indique le fichier LDIF à appliquer.

À partir de maintenant, votre serveur slapd va générer des logs mais ils seront renvoyés vers le fichier général /var/log/syslog. Pour indiquer au daemon rsyslog qui gère les logs d’avoir un fichier de log séparé, créez le fichier /etc/rsyslog.d/10-slapd.conf contenant :

# Logs du serveur OpenLDAP slapd
local4.* /var/log/slapd.conf

Puis redémarrez rsyslog par la commande :

systemctl restart rsyslog

Bravo, vous avez réalisé votre première modification grâce à un fichier LDIF. La prochaine étape consiste à faire évoluer votre annuaire vers la structure suivante

Structure du DIT à créer

Ajoutez de nouveau nœuds pour compléter votre DIT

Pour ajouter de nouveaux nœuds et un premier utilisateur à votre arbre, vous allez utiliser un fichier LDIF. Créez donc le fichier structure.ldif contenant :

structure.ldif
dn: ou=Personnes,dc=mon-entreprise,dc=com
objectclass: organizationalUnit
ou: Personnes
description: Employes de l entreprise
 
dn: ou=Machines,dc=mon-entreprise,dc=com
objectclass: organizationalUnit
ou: Machines
description: Ordinateurs de l entreprise
 
dn: cn=Marie Dupond,ou=Personnes,dc=mon-entreprise,dc=com
objectClass: inetOrgPerson
givenName: Marie
sn: Dupond
cn: Marie Dupond
uid: mdupond
userPassword: mdupond

La structure du fichier est la même mais comme vous rajoutez plusieurs entrées, vous devez sauter une ligne après chaque DN. Ce fichier rajoute d’abord deux ou : un pour inventorier les employés et un pour inventorier les ordinateurs de l’entreprise. Il rajoute ensuite une personne avec la classe d’objet inetOrgPerson. Vous avez déjà vu les autres attributs, à l’exception du mot de passe à la fin (qui sera chiffré par slapd) et de l’ uid qui correspond au login ou à un uid numérique, suivant l’usage qui est fait de ce champ.

Vous devez bien garder en tête que l’ordre des entrées est important. Vous ne pouvez pas ajouter Marie au groupe Personnes tant que ce groupe n’a pas été créé.

Vous remarquerez aussi que dans ce fichier, vous n’utilisez pas l’attribut changetype pour préciser qu’il s’agit d’un ajout, car vous allez utiliser la commande ldapadd qui précise ça par elle-même :

ldapadd -x -W -Dcn=admin,dc=mon-entreprise,dc=com” -H ldap://localhost -f structure.ldif

Pourquoi ne pas utiliser les mêmes options de connexion que pour la commande Idamodify que j’ai utilisée précédemment ?

Par défaut, l’utilisateur root système a les droits de modification sur le DIT cn=config mais pas sur votre DIT. Sauf à changer ces droits, vous devez donc passer par le compte administrateur de votre DIT. Voici le détail des options :

  • -x : indique une authentification simple par mot de passe ;
  • -W : affiche une invite interactive pour taper le mot de passe du compte ;
  • -D : pour indiquer le DN du compte à connecter ;
  • -H : indique toujours la méthode de connexion choisie, mais cette fois-ci ldap://localhost initie une connexion par le réseau sur le port TCP 389.
La connexion d’un utilisateur à un annuaire LDAP s’appelle un “bind”.

Félicitations, vous avez créé votre première base LDAP, et vous pourrez utiliser votre nouvel utilisateur pour vous authentifier sur votre site web dans les prochains chapitres.

Je termine simplement ce chapitre en vous montrant une autre utilisation possible des fichiers LDIF : la sauvegarde à chaud de votre annuaire dans un fichier texte.

Sauvegardez votre annuaire sous forme de fichier LDIF

Il y a un moyen très pratique pour réaliser des sauvegardes de votre annuaire.

Sauvegarder votre annuaire

Étape 1 : sauvegardez votre arbre.

slapcat -b dc=mon-entreprise,dc=com -l mon_backup.ldif

Étape 2 : sauvegardez la configuration de votre annuaire.

tar -cvf ma_conf_g_ldap.tar /etc/ldap

Restaurer vos données

Pour la restauration vos données en cas de besoin :

Étape 1 : Arrêter le service slapd :

systemctl stop slapd

Étape 2 : restaurez votre base à partir du fichier de sauvegarde :

slapadd -c -b dc=mon-entreprise,dc=com -F /etc/ldap/slapd.d -l mon_backup.ldif

L’option -c indique de continuer en cas d’erreur (vous voulez ajouter une entrée déjà présente, par exemple), l’option -F indique le répertoire de configuration et l’option -l le fichier LDIF à utiliser pour la restauration.

Étape 3 : restaurez votre configuration.

tar -xvf ma_conf_g_ldap.tar /etc/ldap 

Ce chapitre constitue une introduction à LDAP. Pour pouvoir utiliser votre annuaire dans un environnement de production, il resterait à renforcer la sécurité en utilisant des connexions chiffrées par TLS, et passer en revue les ACL qui définissent les droits d’accès à votre annuaire.

Dans ce cours, vous avez utilisé uniquement la ligne de commande pour gérer votre annuaire. C’est très utile pour comprendre le fonctionnement d’un annuaire LDAP ou pour débugger un annuaire mais pour une gestion au quotidien, vous préférerez peut-être utiliser une solution graphique telle que LAM ou phpldapAdmin.

En résumé

  • slapd permet de modifier la configuration à chaud par la méthode dite OLC ;
  • Par la méthode OLC, la configuration est stockée sous forme d’un DIT de base cn=config ;
  • Le format LDIF peut être utilisé pour ajouter de nouvelles unités d’organisation (ou), des utilisateurs ou tout autre type d’entrées ;
  • Le format LDIF peut également être utilisé pour réaliser des sauvegardes de votre annuaire.

Dans la partie suivante, vous explorerez l’univers du Web en installant un serveur LAMP (Linux-Apache-MySQL-PHP). Avant de nous intéresser à la suite du cours, testez vos connaissances à travers l'activité puis le quiz, dans les prochains chapitres.

◁ Précédent | ⌂ Retour au sommaire | Suivant ▷

cours/informatique/sysadmin/gerer_serveur_linux_et_services/150_gerer_annuaire_ldap.txt · Dernière modification : 2024/04/26 15:44 de yoann