~~ODT~~
====== 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 :
{{:erik.local.ldap.png|}}
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 :
[[https://n40lab.wordpress.com/2013/11/22/creating-a-simple-ldap-directory-with-openldap-2-4-in-centos-6-4/|OpenLDAP sur CentOS 6.4]]
[[http://wawadeb.crdp.ac-caen.fr/iso/tmp/stage/divers/ldap/recherches_ldap.html|Recherche dans LDAP]]