~~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]]