Version : 2021.01
Dernière mise-à-jour : 2021/02/03 14:29
LDAP est une abbréviation de Lightweight Directory Access Protocol. Comme son nom indique, LDAP est un service d'annuaire.
Un service d'annuaire est une base de données spécialisée optimisée pour la consultation. Certains services d'annuaire peuvent être locaux tandis que d'autres sont appellés distribués. Un bon exemple d'une service d'annuaire distribué est le DNS.
Plusieurs points sont à retenir :
X.500 est un ensemble de normes qui s'appuie sur le modèle OSI :
LDAP est actuellement à la version 3. Cette version est notamment définie par :
Le protocole LDAP définit neuf opérations divisées en trois catégories :
Le modèle d'information de LDAP est basé sur des entrées :
Deux structures classiques des entrées sont :
Un DN est l'ensemble des RDN des noeuds supérieurs :
Un RDN est un couple composé d'un attribut et un valeur, par exemple :
Dans le cas de plusieurs couples, ceux-ci sont séparés par le caractère + :
Le format des valeurs de attributs ne doit pas contenir :
En plus des ces restrictions, les caractères suivants doivent être protégés par le caractère \ :
Un attribut est défini par un ensemble d'informations :
Ce sont des attributs pouvant être modifiés par des utilisateurs ayant le droit d'écriture.
Ce sont de attributs stockant les information sur le statut de l'annuaire.
Une classe d'objets est définie par :
Le type de classe d'objets peut être :
Chaque attribut et chaque classe d'objets est décrit par un OID (Oject IDentifier) :
Un schéma regroupe les informations suivantes :
Un schéma doit contenir au moins une classe d'objets.
Les schémas les plus utilisés sont :
Schéma | Description |
---|---|
core.schema | Obligatoire. Permet de stocker dans l'annuaire les Common Attribute Object Classes. C'est le noyau OpenLDAP. |
cosine.schema | Utile - Permet le support des annuaires cosine et X.500. |
inetorgperson.schema | Utile - Permet de stocker dans l'annuaire les informations concernant les personnes. |
bind.schema | Permet de stocker dans l'annuaire des objets DNS. |
dhcp.schema | Permet de stocker dans l'annuaire des objets DHCP. |
nis.scema | Permet de stocker dans l'annuaire les utilisateurs UNIX et les paramètres associés. |
samba3.schema | Permet l'intégration de samba et LDAP. |
cobra.schema | Permet de stocker dans l'annuaire des objets COBRA (Common Object Broker Request Architecture). |
openldap.schema | Expérimental. Concerne le projet OpenLDAP Project. |
dyngroup.schema | Expérimental. Dynamic Group - utilisé avec le Netscape Enterprise Server. |
collective.schema | Expérimental. Permet de stocker dans l'annuaire des objets collectifs. |
java.schema | Expérimental. Permet de stocker dans l'annuaire des objets java. |
misc.schema | Expérimental. Permet le routage des messages électroniques (emails). |
ppolicy.schema | Expérimental. Schéma de stratégie de mots de passe. |
Avant d'installer OpenLDAP, passez SELinux en mode permissive :
[root@centos7 ~]# setenforce permissive [root@centos7 ~]# vi /etc/sysconfig/selinux [root@centos7 ~]# cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
Ensuite désactivez le pare feu firewalld :
[root@centos7 ~]# systemctl stop firewalld [root@centos7 ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. [root@centos7 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) Jan 10 08:25:43 centos7.fenestros.loc systemd[1]: Starting firewalld - dynamic firewall daemon... Jan 10 08:25:44 centos7.fenestros.loc systemd[1]: Started firewalld - dynamic firewall daemon. Jan 10 12:15:48 centos7.fenestros.loc systemd[1]: Stopping firewalld - dynamic firewall daemon... Jan 10 12:15:48 centos7.fenestros.loc systemd[1]: Stopped firewalld - dynamic firewall daemon.
Pour installer le serveur OpenLDAP sous GNU/Linux ou Unix vous pouvez soit utiliser la version binaire fournie par les dépôts de paquets de votre distribution GNU/Linux ou Unix soit télécharger la dernière version à compiler du site d'OpenLDAP.
Dans notre cas, nous allons installer OpenLDAP à partir des dépôts sur un système RHEL / CentOS. Commencez par mettre à jour le système :
[trainee@centos7 ~]$ su - Mot de passe : fenestros [root@centos7 ~]# yum update ... [root@centos7 ~]# reboot
Puis installez OpenLDAP :
[root@centos7 ~]# yum install openldap-servers openldap-clients openldap
Sous RHEL / CentOS le service OpenLDAP s'appelle slapd. Une vérification de son état démontre qi'il n'est pas activé :
[root@centos7 ~]# systemctl status slapd ● slapd.service - OpenLDAP Server Daemon Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:slapd man:slapd-config man:slapd-hdb man:slapd-mdb file:///usr/share/doc/openldap-servers/guide.html
Il convient donc d'activer le service sans le démarrer :
[root@centos7 ~]# systemctl enable slapd Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service. [root@centos7 ~]# systemctl status slapd ● slapd.service - OpenLDAP Server Daemon Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled) Active: inactive (dead) Docs: man:slapd man:slapd-config man:slapd-hdb man:slapd-mdb file:///usr/share/doc/openldap-servers/guide.html
<html>
Copyright © 2020 Hugh Norris.<br><br>
</html>