Anda di halaman 1dari 9

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

Un livre de Wikibooks.

Les concepts fondamentaux LDAP


En attendant que cette partie soit crite, nous invitons le lecteur se rfrer ce tutoriel trs complet : Tutoriel LDAP de Laurent Mirtain (http://www-sop.inria.fr/members /Laurent.Mirtain/ldap-livre.html) [archive ]

Mise en pratique : OpenLDAP


Le logiciel libre OpenLDAP (http://www.openldap.org) [archive ]

Installation
# apt-get install slapd ldap-utils

Configuration
Pour Debian Squeeze le fichier slapd.conf se situe dans /usr/share/doc/slapd /examples/slapd.conf. Il faut donc changer son emplacement avec cp /usr/share/doc/slapd/examples/slapd.conf /etc/ldap/. Puis modifier le fichier /etc/default/slap et changer la ligne 'SLAPD_CONF=/etc/ldap/sldap.conf'. La configuration de OpenLDAP se situe dans le fichier /etc/ldap/slapd.conf :

1 of 9

06/12/2012 15:45

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

# more /etc/ldap/slapd.conf # Les schmas inclure l'annuaire include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema # le fichier contenant le PID du processus pidfile /var/run/slapd/slapd.pid # Le fichier contenant les arguments argsfile /var/run/slapd/slapd.args # La facilit utilise avec syslog loglevel none # Emplacement des modules modulepath /usr/lib/ldap # Chargment de modules permettant d'tendre les fonctionnalits de OpenLDAP moduleload back_hdb # Limites concernant les recherches sizelimit 500 tool-threads 1 ################################## # Dfinition du premier annuaire # ################################## # On utilise un stockage bas sur le format de fichier HDB backend hdb database hdb # On dfinit la racine de l'arbre (on parle de suffixe ou de basedn) suffix "dc=domaine,dc=fr" # Rpertoire stockant les donnes de l'annuaire, dans notre cas, des fichiers au format HDB directory "/var/lib/ldap" # L'administrateur de l'annuaire rootdn "cn=admin,dc=domaine,dc=fr" rootpw motdepasse # en clair ou gnr via la commande slappasswd # Des paramtres d'optimisation du format HDB dbconfig set_cachesize 0 2097152 0 dbconfig set_lk_max_objects 1500 dbconfig set_lk_max_locks 1500 dbconfig set_lk_max_lockers 1500 # Les attributs indexer en vue d'amliorer drastiquement les recherches index objectClass eq # commenter ... lastmod on checkpoint 512 30 # contrle d'accs aux attributs sensibles 2 of 9 access to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=domaine,dc=fr" write by anonymous auth by self write

06/12/2012 15:45

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

Aprs chaque modification de ce fichier, on relance OpenLDAP avec la commande suivante :


# /etc/init.d/slapd restart

Cration de l'annuaire
On cre le fichier LDIF qui va initialiser le sommet de l'arbre :
# cat cree_arbre.ldif dn: dc=domaine,dc=fr objectClass: top objectClass: dcObject objectClass: organization dc: domaine o: domaine

On injecte le fichier LDIF dans l'annuaire via la commande ldapadd :


# ldapadd -x -h localhost -W -D "cn=admin,dc=domaine,dc=fr" -f cree_arbre.ldif Enter LDAP Password: adding new entry "dc=domaine,dc=fr"

Pour crer les autres entres, on peut dsormais utiliser PhpLdapAdmin.

Les commandes d'administration OpenLDAP

Les programmes complmentaires


Les outils en ligne de commande
NB : les commandes suivantes sont fournies par le paquet Debian ldap-utils. Elles disposent des options gnriques suivantes : -h <adresse IP ou nom> : permet d'indiquer le serveur hbergeant l'annuaire LDAP -x : on utilise l'authentification simple et non l'authentification TLS/SSL. -b <basedn> : permet d'indiquer l'annuaire consulter (le basedn ou suffix) -D <dn d'un objet> : permet de s'authentifier avec le DN indiqu -W : demande la saisie du mot de passe du DN prcdement indiqu -f <fichier LDIF> : permet d'indiquer un fichier LDIF

3 of 9

06/12/2012 15:45

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

ldapadd La commande ldapadd permet d'ajouter des entres dans l'annuaire LDAP. Prenons par exemple le fichier LDIF suivant qui cre le suffixe (le basedn) de notre annuaire :
# cat cree_arbre.ldif dn: dc=domaine,dc=fr objectClass: top objectClass: dcObject objectClass: organization dc: domaine o: domaine

Pour injecter ce fichier LDIF dans notre annuaire :


# ldapadd -x -h localhost -D "cn=admin,dc=domaine,dc=fr" -f cree_arbre.ldif -W

Si tout se passe bien, vous devez voir des lignes :


adding new entry "dc=domaine,dc=fr"

ldapsearch La commande ldapsearch permet d'interroger l'annuaire LDAP. Affiche toutes les entres de l'annuaire :
# ldapsearch -x -h localhost -b "dc=domaine,dc=fr"

Affiche les attributs de l'utilisateur bob via l'utilisation d'un filtre :


# ldapsearch -LLL -x -h localhost -b "dc=domaine,dc=fr" "(cn=bob)"

Affiche uniquement les attributs uid et homeDirectory de l'utilisateur bob :


# ldapsearch -LLL -x -h localhost -b "dc=domaine,dc=fr" "(cn=bob)" uid homeDirectory

4 of 9

06/12/2012 15:45

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

ldapdelete La commande ldapdelete permet de supprimer une entre de l'annuaire LDAP. On indique cette commande le(s) dn(s) supprimer. Supprime l'utilisateur bob :
# ldapdelete -x -h localhost -D "cn=admin,dc=domaine,dc=fr" -W "cn=bob,ou=People,dc=domaine,dc=fr"

ldapmodify La commande ldapmodify permet de modifier une entre de l'annuaire LDAP.

ldapmodrdn La commande ldapmodrdn permet de renommer une entre de l'annuaire LDAP. Cette opration revient changer le dn (distinguished name) d'une entre.

ldapcompare La commande ldapcompare permet de comparer des entres de l'annuaire LDAP.

ldappasswd La commande ldappasswd permet de changer le mot de passe d'une entre de l'annuaire LDAP.

ldapwhoami La commande ldapwhoami permet de connatre avec quelle identit on est connect l'annuaire LDAP, c'est l'quivalent de la commande Unix whoami.
5 of 9 06/12/2012 15:45

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

PhpLdapAdmin
PhpLdapAdmin est un logiciel qui permet d'administrer un annuaire LDAP via une interface Web. Installation :
# apt-get install phpldapadmin

Configuration : PhpLdapAdmin s'est configur avec l'annuaire dfinit par dfaut dans OpenLDAP. Si on a chang ce dernier, il faut modifier les deux suivantes dans la configuration de PhpLdapAdmin :
# vi /etc/phpldapadmin/config.php ... $ldapservers->SetValue($i,'server','base',array('dc=domaine,dc=fr')); $ldapservers->SetValue($i,'login','dn','cn=admin,dc=domaine,dc=fr'); ...

chaque modification de ce fichier, il est prfrable de redmarrer apache :


# /etc/init.d/apache2 restart

Accs PhpLdapAdmin : http://localhost/phpldapadmin/

La rplication LDAP
Configuration du provider LDAP
On modifie le fichier /etc/ldap/slapd.conf du provider LDAP pour indiquer l'annuaire rpliquer, on rajoute les lignes en gras dans la configuration de l'annuaire et on modifie les attributs indexer :

6 of 9

06/12/2012 15:45

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

# vi /etc/ldap/slapd.conf ... # On indique OpenLDAP de charger le module # permettant la rplication moduleload syncprov.la ... database bdb suffix dc=domaine,dc=fr rootdn dc=domaine,dc=fr directory /var/ldap/db index objectclass,entryCSN,entryUUID eq overlay syncprov syncprov-checkpoint 100 10 syncprov-sessionlog 100

Configuration du consumer LDAP


On modifie /etc/ldap/slapd.conf du second OpenLDAP (le consumer) pour lui indiquer l'annuaire rpliquer et l'adresse du premier OpenLDAP (le provider).
# vi /etc/ldap/slapd.conf ... database hdb suffix dc=domaine,dc=fr rootdn dc=domaine,dc=fr directory /var/lib/ldap2 index objectclass,entryCSN,entryUUID eq syncrepl rid=123 provider=ldap://<adresse IP ou nom du provider LDAP>:389 type=refreshOnly interval=00:00:00:10 searchbase="dc=domaine,dc=fr" filter="(objectClass=*)" scope=sub attrs="*" schemachecking=off bindmethod=simple binddn="cn=admin,dc=domaine,dc=fr" credentials=admin

Il faut ensuite crer le rpertoire du nouvel annuaire et le donner l'utilisateur et au groupe openldap :
# mkdir /var/lib/ldap2 # chown openldap.openldap /var/lib/ldap2

Il ne reste plus qu' relancer OpenLDAP :


7 of 9 06/12/2012 15:45

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

# /etc/init.d/slapd restart

Validation de la rplication
L'objectif est de constater la rplication des objets de l'annuaire.

Procdure n1 : validation de l'ajout de donnes sur le rplicat


Cot Provider

on cre un fichier LDIF contenant l'utilisateur rajouter


# cat bob.ldif dn: cn=bob,ou=People,dc=domaine,dc=fr objectClass: inetOrgPerson objectClass: posixAccount objectClass: top givenName: Eponge sn: Eponge cn: bob uid: bob userPassword: {MD5}F7WfMlfPOGcecKZLEkmjTA== uidNumber: 1001 gidNumber: 1001 homeDirectory: /home/bob loginShell: /bin/sh mail: bob@domaine.fr

on injecte ce fichier LDIF dans notre annuaire


# ldapadd -x -h localhost -D "cn=admin,dc=domaine,dc=fr" -f bob.ldif -W

on vrifie que l'utilisateur a bien t cre


# ldapsearch -LLL -x -h localhost -b "dc=domaine,dc=fr" "(cn=bob)"

Cot Consumer

on attend quelques secondes et on constate que l'utilisateur a bien t cr sur

8 of 9

06/12/2012 15:45

Le systme d'exploitation GNU-Linux/Les annuaire...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

le rplicat
# ldapsearch -LLL -x -h localhost -b "dc=domaine,dc=fr" "(cn=bob)"

Procdure n2 : validation de la suppression de donnes sur le rplicat


Cot Provider

on supprime l'utilisateur de notre annuaire


# ldapdelete -x -h localhost -D "cn=admin,dc=domaine,dc=fr" -W "cn=bob,ou=People,dc=domaine,dc=fr"

on vrifie que l'utilisateur a bien t supprim


# ldapsearch -LLL -x -h localhost -b "dc=domaine,dc=fr" "(cn=bob)"

Cot Consumer

on attend quelques secondes et on constate que l'utilisateur a bien t supprim sur le rplicat
# ldapsearch -LLL -x -h localhost -b "dc=domaine,dc=fr" "(cn=bob)"

Rcupre de http://fr.wikibooks.org /w/index.php?title=Le_systme_d%27exploitation_GNULinux/Les_annuaires_LDAP&oldid=353918 Dernire modification de cette page le 10 fvrier 2012 14:47. Les textes sont disponibles sous licence Creative Commons attribution partage lidentique ; dautres termes peuvent sappliquer. Voyez les termes dutilisation pour plus de dtails.

9 of 9

06/12/2012 15:45