Introduction

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 :

réseau

ssh

rsyslog

for i in $(chkconfig --list | cut -f1);do chkconfig --del $i;done
chkconfig network on
chkconfig sshd on
chkconfig rsyslog on

Installation de Openldap

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.

Mot de passe

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.

Pré-requis

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.

Initialisation de l'annuaire

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

Ajouter une entrée

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.

Modifier une entrée

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

Finalisation de l'annuaire

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

Conclusion

Ce document ne fait qu'effleurer la configuration de LDAP.

Article de référence :

OpenLDAP sur CentOS 6.4

Recherche dans LDAP