Déploiement du serveur LDAP sur la machine Ubuntu 18.04

Publié le par berenger benam

          Déploiement du serveur LDAP sur la machine Ubuntu 18.04 

                                    Concept

OpenLDAP est un annuaire informatique qui fonctionne sur le modèle client/serveur. Il contient des informations de n'importe quelle nature qui sont rangées de manière hiérarchique. Pour bien comprendre le concept, il est souvent comparé aux Page Jaunes (Yellowpages), où le lecteur recherche un numéro de téléphone particulier: il va d'abord sélectionner la profession, puis la ville, puis le nom de l'entrée pour trouver au final le numéro de téléphone. En pratique, il est utilisé pour enregistrer une grande quantité d'utilisateurs ou de services (parfois des centaines de milliers) dans un réseau informatique. Il permet d'organiser hiérarchiquement les utilisateurs par département, par lieu géographique ou par n'importe quel autre critère.

                           Aspects techniques

                                                        Stockage

Le logiciel OpenLDAP ne stocke pas les données directement, il utilise une bibliothèque tierce pour le faire. Généralement c'est la base de données Berkeley DB qui est utilisée sous GNU/Linux. Mais il est possible d'utiliser MySQL, LDBM, des fichiers à plat, etc...

 

      1. Présentation de LDAP

LDAP (Lightweight Directory Access Protocol) : est l’héritier de l’annuaire X500 (proposé par l’ISO) qui est un standard conçu par les opérateurs télécoms pour interconnecter leurs annuaires téléphoniques. LDAP fournit un ensemble d'outils :

1. un protocole permettant d'accéder à l'information contenue dans l'annuaire,

2. un modèle d'information définissant l'organisation et le type des données contenues dans l'annuaire,

3. un modèle de nommage définissant comment l'information est organisé et référencée

4. un modèle fonctionnel qui définit comment accéder à l'information,

 5. un modèle de sécurité qui définit comment accéder aux données et comment celles-ci sont protégées. OpenLDAP est souvent configuré avec SASL (Simple Authentication and Security Layer), qui permet les transactions cryptées avec les protocoles fonctionnant en mode connecté.

6. un modèle de duplication qui définit comment la base est répartie entre serveurs,

 7. des APIs pour développer des applications clientes,

8. LDIF, (Ldap Data Interchange Format) un format d'échange de données.

    1.   Le protocole

Un protocole d'accès aux donnée, qui décrit comment ajouter, modifier, supprimer des données dans la base de donnée, quels protocoles de chiffrement (kerberos, ssl...), et quels mécanismes d'authentification sont utilisés. Ce protocole est utilisé dans la relation client/serveur, mais également entre serveurs (serveur/serveur) car une base de données LDAP peut être répartie.

                   Le format d'échange de donnée LDIF

 Le format d'échange permet l'import/export de données des bases, mais sert également pour l'ajout ou la modification. Les données sont en ASCII codées en UTF-8, sauf pour le binaire qui est codé en base64 (images par exemple). Les fichiers au format LDIF respectent une structure de description des objets et des commandes :

                         Définition de quelques mots clé :

 1. Chaque entrée dans un annuaire a un identifiant unique appelé DN (Distinguish Name)

2. Les informations dans un annuaire sont des objets qui appartiennent à des classes.

 3. La classe d’un objet définit l’ensemble des attributs que doit avoir l’objet et les règles définissant le contenu de chaque attribut.

4. Un attribut définit les caractéristiques de l’objet.

5. Les attributs obligatoires d’un sont la réunion des attributs obligatoires de chaque classe.

6. Un schéma permet de donner la liste de toutes les classe qu’un annuaire peut prendre.

7. Le schéma décrit les classes d’objet, leurs types d’attributs et leur syntaxe.

8. Une classe a toujours une mère, et une fille hérite des attributs de sa mère.

9. Le DN représente le chemin absolu d’accès à l’entrée

Un annuaire se distingue d’une base de données relationnelle par le fait qu’il a une structure hiérarchique et qu’il est très rapide pour chercher et lire des éléments mais plus lent pour les modifier. Les annuaires sont couramment employés pour stocker les données d’authentification (login et mot de passe) ou pour obtenir des informations sur des personnes (email, téléphone, etc.) ou des objets (localisation, marque, modèle, etc.). Toutes les applications de votre entreprise (site web, e-mail, comptes système des ordinateurs, etc.) peuvent par exemple utiliser ce service d’annuaire pour valider les identifiants de connexion.

                       Le fonctionnement de LDAP

Tout d’abord, un annuaire LDAP est un organisation hiérarchique d’entrées. Cette organisation constitue un arbre appelé DIT (Directory Information Tree) dont une des entrées est la racine.

Chaque entrée peut contenir des attributs auxquels on assigne des valeurs. Chaque entrée appartient au moins à une classe d’objet qui définit les attributs de l’entrée. Par exemple, la classe d’objet “Employés” pourrait définir qu’un “élément” appartenant à cette classe doit contenir les attributs obligatoires :

•nom de famille

•prénom et peut contenir les attributs facultatifs :

 •e-mail

•téléphone

•date de naissance Chacun des attributs de cet élément aura une valeur. Par exemple, “nom de famille=Dupond”.

De nombreux attributs et classes d’objets sont prédéfinis mais il est possible de définir les vôtres si besoin. L’ensemble des classes d’objets et attributs utilisés est défini dans le schéma. Certains attributs sont particulièrement courants et intéressants à connaître :

                                     MISE EN ŒUVRE

                                        Installez OpenLDAP

 

OpenLDAP est un des annuaires les plus répandus. Pour l’installer, vous devrez installer le paquet slapd et Installez également le paquet ldap-utils qui contient les utilitaires clients pour pouvoir interroger ou modifier votre annuaire

#apt-get install slapd && s ldap-utils

À l’installation de slapd, on vous demandera d’entrer le mot de passe de l’administrateur de votre annuaire. (Voir les captures)

on valide puis confirmer le mot de passe

On confirme son mot de passe

On se dans le dossier : /etc/ldap

                           Répertoires de OpenLDAP

 L'installation génère un certain nombre de scripts de configuration et va créer les répertoires suivants

/etc/openldap : répertoire des fichiers de configuration

 •/var/lib/ldap : répertoire par défaut où va être stocké l'annuaire

 •/usr/share/openldap : répertoire contenant les documentations et les outils pour migrer par exemple un système NIS (yellow page) existant dans l'annuaire LDAP

      1.   Configuration du serveur

Voilà, vous avez installé votre annuaire. Vous allez maintenant utiliser l’outil de configuration deb.conf de Debian pour définir la configuration de base de votre annuaire :

Indiquez : Non pour la première question afin de pouvoir utiliser l’outil de configuration

•pour nom DNS : rtn.sn

 •pour nom d’organisation : rtn

 •le mot de passe administrateur : ping236

•choisissez le format de base par défaut : hdb

•Non pour savoir si la base doit être supprimée quand slapd est purgé

•oui pour déplacer l’ancienne base de données Comme mon DNS est mon-entreprise.com, la racine de votre DIT a été configurée à “dc= rtn,dc=sn”, vous pouvez utiliser la commande ldapsearch suivante pour visualiser votre DIT :

1- on lance la commande : dpkg-reconfigure slapd pour définir la configuration de base de notre annuaire.

Non pour savoir si la base doit être supprimée quand slapd est purgé

  1. Renseigner les paramètres du serveur à travers le fichier slapd.conf ,Il faudra donc copier un exemple de configuration dans le dossier /usr/share/slapd/

Puis on renomme le dossier slapd.d pour ne pas que le serveur fasse des confusions

Nous venons de renommer le dossier slapd.d en slapd.d.ancien

On édite le fichier slapd.conf pour paramétrer notre serveur

# nano slapd.conf

  1. On définit le module du deamon en hdb

2 - Mettre le moteur permettant de récupérer les données en réponse à une requête en hdb

3. On choisit notre base de données qui sera hdb

Notre annuaire a pour base dc=rtn,dc=sn

5. On définit le Distinguish Name de l’administrateur notre administrateur a comme DN

cn=admin, dc=rtn,dc=sn et a comme mot de passe ping236

On donne aussi à l’administrateur les droits de lecture de tout le contenu de l’annuaire

La configuration est terminée, il faudra redémarrer le serveur

# systemctl restart slapd.service

      1.      Configuration du client

 Cela se fait dans le fichier /etc/ldap/ldap.conf

À savoir : le client pourrait bien se trouver sur une autre machine, en ce moment il faudra préciser l’adresse IP du serveur au lieu de 127.0.0.1 mais dans mon exemple le serveur et le client se trouvent sur la même machine c’est pourquoi je précise l’adresse de loopback

      1.   Création de la racine de notre annuaire

Toutes les entrées de l’annuaire se font à travers des fichier LDIF.

 Pour la mise en place de la racine, nous avons choisi un fichier du nom de racine.ldif pour abriter les informations.

Dans notre cas, la racine est rtn mais elle s ‘écrit dc=rtn,dc=sn en langage LDAP

      1.  Insertion de la racine dans l’annuaire

Nous voyons bien que la racine est présente dans l’annuaire !

Puisque les données dans un annuaire sont représentées sous forme d’arborescence, il vaut mieux mettre en place des unités organisationnelles ou départements qui seront directement rattachés à la racine, et qui abriterons peut-être des employés, des comptes système ou autre chose.

Nous allons créer deux départements : telecoms et devops Le fichier aura pour nom ou.ldif

Règle : Il est possible de créer plusieurs entrées dans un même fichier en les séparant par une ligne vide. C’est d’ailleurs ce que nous venons de faire lors de la création de nos deux unités organisationnelles.

Alimentation de l’annuaire

Lorsque nous consultons l’annuaire avec la commande : ldapsearch –x

A Savoir : on va utiliser notre annuaire pour stocker des comptes systèmes. De ce fait, nous sommes tenus obligés de créer tout d’abord les comptes.

      1.  Création de comptes systèmes

Les utilisateurs berenger et morez qui seront créés tout à l’heure seront respectivement dans les départements télécoms et devops .

On crée un dossier images dans /etc/ldap pour stocker les photos des utilisateurs

Le fichier qui abritera ces informations sera users.ldif dont voici le contenu :

Compte de Berenger

 

Compte Neymar

Et le dernier compte c’est Messi

On sauvegarde la configuration puis Alimenter le fichier users.ldif

 

Affichons les informations concernant l’utilisateur berenger

ldapsearch -xLLLb "dc=rtn,dc=sn" "(uid=berenger)"

                                Création de groupes systèmes

Nous avons créé les comptes systèmes certes, mais il faudra créer un groupe pour chaque compte (comme avec les systèmes UNIX). De préférence, nous allons tout d’abord créer une unité organisationnelle nommée groupes qui abritera les groupes systèmes. Voici le contenu du fichier groupes.ldif

On sauvegarde et Alimente le fichier groupes.ldif

 

                                        LDAP en mode graphique

Notre annuaire a maintenant du contenu. Pour y voir clair, utilisons une application Web pour afficher son contenu en mode graphique.

  1.  LDAP-ACCOUNT-MANAGER LDAP-ACCOUNT-MANAGER

Est une application Web permettant de gérer différents types de comptes dans un annuaire LDAP. Il permet de créer, supprimer et même modifier les informations d’un compte.

      1.                 Prérequis

# apt install apache2 php libapache2-mod-php ldap-account-manager

,                               Configuration de l’application

 Le fichier de configuration est ldap-account-manager.conf se trouvant dans /etc/apache2/confa-vailable

Dans ce fichier nous avons deux actions à faire :

Commenter la ligne Require all denied

  1. Ajouter la ligne Require ip 127.0.0.1 192.168.1.0/24
        1. Commentaires
        2. 127.0.0.1 : est l’adresse IP du serveur (le serveur et l’application sont sur la même machine)
        3. 192.168.1.0/24 :  est notre adresse réseau Ensuite redémarrer le serveur apache2

 # systemctl restart apache2

      1.   Étape suivante : Installer php-cgi

php-cgi : est une extension PHP qui va dans le sens du ‘bien-être’ de notre application Web.

 # apt install php-cgi

Concernant cette extension, il n’y a pas grand-chose à faire il faut juste l’activer et recharger apache2

            Étape 3 : Accéder à l’interface de l’application lam

Lam est une application Web, donc pour y accéder il faut un navigateur. Il faudra donc accéder à l’interface de l’application afin de l’adapter à notre situation en saisissant dans le navigateur de la machine serveur localhost/lam

On a vu l’interface s’ouvre et ensuite on précise la langue et le mot de passe voir la capture

# Note : Il faudra tout d’abord changer de langue pour mieux comprendre le sens des paramètres en cliquant sur la flèche déroulante de langue et choisir celle qui nous convient.

Adoptons l’interface à notre situation

 # Règle : Pour qu’une base de données puisse être utilisée par une application, il faudrait que cette dernière ait tous les paramètres de connexion de la base de données

. Tout se passe dans la Configuration de LAM puis dans Modifier les profils pour tomber sur cette fenêtre :

 On clique sur LAM configuration et après on verra cette interface

On clique sur Edit server profiles

Ok et le mot de passe par défaut est lam

 Dans l’onglet paramètres généraux

1. Il faudra définir le mot de passe de l’annuaire dans la rubrique Mot de passe profil

 

      1.   Définissons le DN de l’administrateur
      2. Cette information servira de login pour l’ouverture de sessions afin d’accéder aux informations de l’annuaire, mais c’est aussi le DN de l’administrateur bien-sûr !

 

      1.       Dans l’onglet Types de compte

 Dans cet onglet, nous allons préciser le lieu de recherche des informations qui seront indiquées dans les requêtes.

 

correct : « ping236 » puis on clique sur connexion, Voici les utilisateurs enregistrés dans notre annuaire.

Nous pouvons afficher les informations sous forme d’arborescence, en cliquant sur Vue arborescente

Nous pouvons afficher les infos de nos utilisateurs et les modifier à volonté.

      1.    Modification d’informations

 Pour ajouter ou modifier des infos d’un utilisateur, il suffit de cliquer sur le uid de l’utilisateur.

Si on clique sur le user berenger, nous aurons cette fenêtre (ce n’est rien d’autre que ses informations insérées à travers les fichiers ldif qu’on a vu précédemment).

Si nous voulons lui ajouter un nouvel attribut, on clique sur Ajouter un nouvel attribut puis on clique sur la flèche qui apparaît pour la dérouler afin de voir la liste des attributs disponibles comme suit :

 

Nous pouvons faire de même avec d’autres utilisateurs !

    1. Création d’un nouveau compte système en mode graphique

 On clique sur Nouvel utilisateur comme sur la figure ci-dessous

On affecte le mot de passe à bouki

On sauvegarde

 

 

On remarque nos deux comptes.

      1.      Conclusion :

LDAP, du fait de sa standardisation, permet au annuaires d'entreprise d'être interopérables. Ils sont simples, fiables et centralisent l'information au sein d'une entreprise : Identifiant/mot de passe, comptes POSIX/ utilisateur... Vous savez maintenant ce qu'est un annuaire LDAP, mais ça n'est qu'un début... ! Il faut maintenant mettre en œuvre un véritable système d'informations centralisé. Il s'agit là d'un message à caractère informatif, et j'espère que c'était vraiment très intéressant

 

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
bravo
Répondre