OpenLDAP

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Qu'est-ce qu'OpenLDAP

OpenLDAP est un annuaire Open Source basé sur le protocole LDAP (Lightweight Directory Access Protocol). Il répertorie les ressources présentes au sein de votre système d'information (comptes ordinateurs, comptes utilisateurs, groupes...) sous la forme d'une arborescence.

Avertissement

L'installation décrite ici ne prend pas en compte la gestion du TLS.

Pré-requis

Dans cette procédure, nous considérons plusieurs choses:

  • Le nom du serveur est openldap
  • Le nom de domaine utilisé est mondomaine.local
  • Le système est fonctionnel, et à jour

Charge à vous de remplacer les différentes variable par vos propres informations.

Note: à partir de Debian Squeeze, la configuration d'OpenLDAP ne s'effectue plus au travers du fichier slapd.conf.

Installation

Fichier /etc/hosts

Nous ne possédons pas de serveur DNS, nous utiliserons donc le fichier /etc/hosts. Vérifier que ce dernier possède bien le FQDN du serveur:

127.0.0.1       localhost
127.0.1.1       openldap.mondomaine.local   openldap

Debconf

Debconf est un utilitaire graphique qui va nous permettre de renseigner diverses options lors de l'installation des paquets. Afin que ce dernier nous propose plus de choix lors de l'installation d'OpenLDAP, nous allons diminuer son niveau. root@openldap:~# dpkg-reconfigure debconf

Répondre:

  • Dialogue
  • Intermédiaire

Téléchargement des packages

root@openldap:~# apt-get install slapd ldap-utils nmap apache2 -y
  • slapd : serveur LDAP
  • ldap-utils : outils qui vont nous permettre d'agir sur le serveur
  • nmap : scanner de ports
  • apache2 : serveur Web qui va héberger notre outil de gestion

Une fenêtre debconf doit apparaître vous proposant les choix suivants:

  • Voulez-vous omettre la configuration d'OpenLDAP? Non
  • Nom de domaine : mondomaine.local
  • Nom d'entité : mondomaine.local
  • Mot de passe Administrateur : votre_password
  • Vérifier le mot de passe Administrateur : votre_password
  • Faut-il autoriser le protocole LDAP v2? Non
  • Faut-il exécuter mandb avec l'utilisateur man? Non

Vérification du port 389

Pour vérifier que le service écoute bien sur le port 389:

root@openldap:~# nmap -p 389 localhost

-p : port

Vous devriez obtenir la ligne suivante :

389/tcp open ldap

Les fichiers LDIF

Les fichiers LDIF, acronyme de Lightweight Data Interchange Format sont des formats d'échanges permettant d'importer et exporter les données de l'annuaire LDAP. Pour le générer:

root@openldap:~# slapcat

Configurer le fichier /etc/ldap.conf

Indiquez votre propre domaine:

BASE     dc=mondomaine,dc=local
URI      ldap://openldap.mondomaine.local/

Configuration des fichiers LDIF et DIT

Créez un nouveau fichier:

root@openldap:~# touch ~/olc-mod1.ldif

et y insérer les lignes suivantes:

# 1.
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
# 2.1.
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uid eq
-
# 2.2.
add: olcDbIndex
olcDbIndex: cn eq
-
# 2.3.
add: olcDbIndex
olcDbIndex: ou eq
-
# 2.4.
add: olcDbIndex
olcDbIndex: dc eq

Exécuter la commande suivante pour prendre ces modifications en compte :

root@openldap:~# ldapmodify -QY EXTERNAL -H ldapi:/// -f ~/olc-mod1.ldif

Créez le fichier qui va héberger la structure de l'arbre:

root@openldap:~# touch ~/tree.ldif

Nous allons y insérer nos unités d'organisation.

Création des Organizational Unit (OU)

Dans le fichier ~/tree.ldif créé précédemment, nous allons créer deux OU:

  • Utilisateurs
  • Groupes

Nous verrons plus tard qu'il existe un moyen plus simple et plus rapide pour en créer de nouvelles.

Insérez le contenu suivant:

dn: ou=Utilisateurs,dc=mondomaine,dc=local
ou: Utilisateurs
objectClass: organizationalUnit
dn: ou=Groupes,dc=mondomaine,dc=local
ou: Groupes
objectClass: organizationalUnit

Les informations sont enregistrées, mais le fichier n'est pas encore lié à notre base LDAP. Pour ce faire, effectuez la commande suivante:

root@openldap:~# ldapadd -cxWD cn=admin,dc=mondomaine,dc=local -f ~/tree.ldif
Enter LDAP Password: **********
adding new entry "ou=Utilisateurs,dc=mondomaine,dc=local"
adding new entry "ou=Groupes,dc=mondomaine,dc=local"
~#

-c : permet de continuer l'opération même s'il rencontre des erreurs. Ces dernières seront reportées -x : utilise une authentification simple -W : affiche le prompt pour saisir le password -D : spécifie le "Dinstinguished Name" qui va se connecter à notre base LDAP -f : spécifie le nom du fichier contenant les informations à rajouter

Vérifiez ensuite que l'arborescence a bien été prise en compte:

root@openldap:~# ldapsearch -xLLL
dn: dc=mondomaine,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: mondomaine.local
dc: mondomaine
dn: cn=admin,dc=mondomaine,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
dn: ou=Utilisateurs,dc=mondomaine,dc=local
ou: Utilisateurs
objectClass: organizationalUnit
dn: ou=Groupes,dc=mondomaine,dc=local
ou: Groupes
objectClass: organizationalUnit

-x : utiliser une authentification simple -LLL : optimise l'affichage des informations en supprimant les commentaires et les versions

Création d'utilisateur(s)

Comme pour l'arborescence, nous allons créer un fichier ldif:

root@openldap:~# touch ~/myuser.ldif

Je veux que mon utilisateur myuser soit placé dans l'OU Groupes. Insérez les lignes suivantes à votre fichier ldif:

dn: cn=myuser,ou=Groupes,dc=mondomaine,dc=local
cn: myuser
gidNumber: 20000
objectClass: top
objectClass: posixGroup
dn: uid=myuser,ou=Utilisateurs,dc=mondomaine,dc=local
uid: myuser
uidNumber: 20000
gidNumber: 20000
cn: myuser
sn: myuser
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
homeDirectory: /home/myuser
userPassword: myuser

Rajoutez ces informations dans la base LDAP:

root@openldap:~# ldapadd -cxWD cn=admin,dc=mondomaine,dc=local -f ~/myuser.ldif
Enter LDAP Password:
adding new entry "cn=myuser,ou=Groupes,dc=mondomaine,dc=local"
adding new entry "uid=myuser,ou=Utilisateurs,dc=mondomaine,dc=local"

Vérifiez que l'utilisateur a bien été créé:

root@openldap:~# ldapsearch -xLLL uid=myuser
dn: uid=myuser,ou=Utilisateurs,dc=mondomaine,dc=local
uid: myuser
uidNumber: 20000
gidNumber: 20000
cn: myuser
sn: myuser
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
homeDirectory: /home/myuser

Administration avec phpldapadmin

Cette dernière permet une administration simplifiée au travers de n'importe quel navigateur. Pratique lorsque l'on n'est pas particulièrement à l'aise avec la ligne de commande.

root@openldap:~# apt-get install phpldapadmin
  • Adresse du serveur ldap : http://127.0.0.1
  • Faut-il utiliser le TLS : non
  • Nom distinctif de la base de données : dc=mondomaine,dc=local
  • Type d'authentification : session
  • Identifiants de connexion au serveur LDAP : cn=admin,dc=mondomaine,dc=local
  • Serveyr à gérer : apache2
  • Faut-il redémarrer le serveur web : oui

L'interface web est désormais accessible à l'URL : http://openldap.mondomaine.local

Source

chr0my.overblog.com