Installer un serveur Openldap sous CentOS 6.
Version de CentOS : 6.6 en 32 bits. Installation sur VM VirtualBox.
Mise en place d'une configuration minimale de CentOS ( package Core ) et services minimaux :
for i in $(chkconfig --list | cut -f1);do chkconfig --del $i;done chkconfig network on chkconfig sshd on chkconfig rsyslog on
Utilisation classique de yum
yum -y install openldap-servers openldap-clients
La configuration de Openldap est modifiée à partir de la version 2.3. Le fichier slapd.conf n'existe plus. La configuration se fait par fichiers ldif dans le répertoire /etc/openldap/slapd.d/cn=config.
Il reste toutefois possible de configurer openldap avec un fichier slapd.conf, utile dans le cadre d'une migration.
Dans l'exemple présenté ici sera mis en place une structure type erik.local.
La connexion se fera en admin/root01.
Définir le mot de passe de l'administrateur de l'annuaire LDAP. Utilisation de la commande slappasswd
slappasswd New password: Re-enter new password: {SSHA}DeGPy63Jd6bfBKJlS5Ax0cTOy78UNB97
Le codage est de type SSHA, dans l'exemple il correspond à root01. Attention le codage change à chaque exécution.
Dans un premier temps créer un fichier /etc/openldap/slapd.conf.
include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args database bdb suffix "dc=erik,dc=local" rootdn "cn=admin,dc=erik,dc=local" #rootpw root01 rootpw {SSHA}DeGPy63Jd6bfBKJlS5Ax0cTOy78UNB97 directory /var/lib/ldap index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub
Copier la base de données exemple.
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
Très important stopper le démon slapd le cas échéant.
Supprimer la configuration actuelle
rm -rf /etc/openldap/slapd.d/*
Activer la nouvele configuration
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
Modifier les droits d'accès
chown -R ldap:ldap /var/lib/ldap chown -R ldap:ldap /etc/openldap/slapd.d
Démarrer openldap et activer au boot.
service slapd start chkconfig slapd on
Le démon slapd écoute sur le port 389 en tcp
netstat -ltaupen | grep slapd tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 0 14843 874/slapd tcp 0 0 :::389 :::* LISTEN 0 14844 874/slapd
La seconde ligne correspond à IPV6.
Dans les commandes, l'option -x permet de passer outre le cryptage SSL.
L'annuaire LDAP est structuré ainsi :
Créer le fichier erik.local.ldif suivant :
dn: dc=erik,dc=local objectClass: top objectClass: dcObject objectClass: organization o: ERIK dc: erik dn: cn=admin,dc=erik,dc=local objectClass: top objectclass: organizationalRole cn: admin dn: ou=informatique,dc=erik,dc=local objectClass: top objectClass: organizationalUnit ou: informatique dn: ou=RH,dc=erik,dc=local objectClass: top objectClass: organizationalUnit ou: RH dn: ou=compta,dc=erik,dc=local objectClass: top objectClass: organizationalUnit ou: compta
Insérer les informations dans l'annuaire.
ldapadd -x -D "cn=admin,dc=erik,dc=local" -W -f erik.local.ldif
Le mot de passe ( root01 ) sera demandé. Vérification en interrogeant l'annuaire
ldapsearch -x -b dc=erik,dc=local
Création d'un utilisateur Alice Cooper dans l'unité informatique. Créer le fichier alice.cooper.ldif
dn: cn=Alice Cooper,ou=informatique,dc=erik,dc=local objectClass: top objectClass: inetOrgPerson cn: Alice Cooper sn: ACO
Insertion dans l'annuaire
ldapadd -x -W -f alice.cooper.ldif -D "cn=admin,dc=erik,dc=local"
Vérification par l’interrogation, l'option -b spécifie la branche de l'annuaire à interroger.
ldapsearch -x -b cn=Alice\ Cooper,ou=informatique,dc=erik,dc=local -LLL
"\" est indispensable en raison de l'espace dans le cn. L'option -LLL supprime le surplus de lignes.
Utilisation de la commande ldapmodify. Dans cet exemple ajout d'un email au compte Alice Cooper. Création d'un fichier alice.cooper.mail.ldif
dn: cn=Alice Cooper,ou=informatique,dc=erik,dc=local changetype: modify add: mail mail: alice.cooper@erik.local
Modification de l'annuaire
ldapmodify -x -W -f alice.cooper.mail.ldif -D "cn=admin,dc=erik,dc=local"
Vérification
ldapsearch -x -b cn=Alice\ Cooper,ou=informatique,dc=erik,dc=local -LLL
Création des 3 autres entrées dans l'annuaire. Fichier autres.entrees.ldif
dn: cn=Bob Woodward,ou=RH,dc=erik,dc=local objectClass: top objectClass: inetOrgPerson cn: Bob Woodward sn: BWO mail: bob.woodward@erik.local dn: cn=Carmen Mota,ou=compta,dc=erik,dc=local objectClass: top objectClass: inetOrgPerson cn: Carmen Mota sn: CMO dn: cn=Denise Richards,ou=RH,dc=erik,dc=local objectClass: top objectClass: inetOrgPerson cn: Denise Richards sn: DRI
Insertion des données
ldapadd -x -D "cn=admin,dc=erik,dc=local" -W -f autres.entrees.ldif
Ce document ne fait qu'effleurer la configuration de LDAP.
Article de référence :