Contact Me

Evocatio - Solutions Technologiques

514.667.0559

Installation d’OpenLDAP sous Ubuntu 9.10 ou 10.4

Posted on Wednesday, 31st March, 2010

Description

La configuration d’OpenLDAP c’est un peu compliquer. cn=config est toujours utilisé, par contre lors de l’installation du paquet, uniquement un squelette de la configuration est installé.

On ne vous demande plus de mot de passe lors de l’installation du paquet et “dpkg-reconfigure slapd” ne fait que restaurer le squelette de la configuration initial.  Vous devez utiliser le compte root (ou sudo) pour configurer la base de donnée, dn et acl.

Voici une procédure sur comment installer OpenLDAP sous Ubuntu 9.10 ou 10.4.

Le guide officiel sur help.ubuntu.com n’est pas à jour et ne spécifie pas comment installer OpenLDAP sous Karmic ou Lucid.

Dans ce tutoriel nous utiliserons dc=example,dc=com comme arbre LDAP.  Ajuster en conséquence.

Pré-requis

Avoir installé Ubuntu

Paquets à installer :

 apt-get -y install slapd ldap-utils

Configuration

Étape 1: Changer de répertoire pour /etc/ldap :

cd /etc/ldap

Étape 2: Ajouter les schéma que vous avez de besoin, car uniquement le schema core est ajouté par défaut :

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

Note: Il faut entrer CHAQUE LIGNE, ce ne sont pas des commentaires.

Étape 3:  Ajouter le module de base de donnée et la créer.

Créer un fichier : db.ldif

vi db.ldif

et ajouter le text suivant :

# Load dynamic backend modules
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: {0}back_hdb
 
# Create the database
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example,dc=com
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: example
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq

ldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif

Prendre note que olcRootPW: example spécifie le mot de passe. Remplacer example par le mot de passe désiré.

Étape 4: Créer le dn de base et ajouter le compte administrateur pour le serveur OpenLDAP.

Modifer le text suivant a vos besoins the text below to your needs and wants and generate a password for the admin account. La chaine MD5 présente dans l’exemple représente : example

Créer un mot de passe encrypter pour le compte administrateur, avec la commande suivante :

slappasswd -h

Entrer le mot de passe désiré 2 fois et copier le résultat dans le text plus bas.

Créer le fichier base.ldif:

vi base.ldif

Contenu du fichier base.ldif:

dn: dc=example,dc=com
objectClass: dcObject
objectclass: organization
o: example.com
dc: example
description: My LDAP Root
 
dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword:{MD5}Gnmk1g3mcY6OWzJuM4rlMw==
description: LDAP administrator

Ajouter à la base de donnée avec la commande suivante :

ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif

Étape 5: Modifier le système d’acl (liste de contrôle d’accès)

Il y a quelques acl dans la configuration d’OpenLDAP qui prévient la connexion à partir d’un client ldap comme phpldapadmin ou Apache Directory Sudio, alors nous allons ajuster les droits pour cn=admin,cn=config. Après cette modification l’option -D cn=admin,cn=config sera nécessaire pour ce connecter au serveur LDAP.

Créer un fichier config.ldif

vi config.ldif

Contenu du fichier config.ldif:

dn: cn=config
changetype: modify
delete: olcAuthzRegexp
 
dn: olcDatabase={-1}frontend,cn=config
changetype: modify
delete: olcAccess
 
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcRootDN
 
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=config
 
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {MD5}Gnmk1g3mcY6OWzJuM4rlMw==
 
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess

Prendre note de ne pas oublier de changer la valeur de olcRootPW par le mot de passe en MD5 créé plutôt.

Intégrer dans OpenLDAP :

ldapadd -Y EXTERNAL -H ldapi:/// -f config.ldif

Étape 6: Ajuster les acl du LDAP

Maintenant nous devons ajouter quelques droits au LDAP, root possède les droits de lecture et d’écriture, parcontre l’acl suivant représente celui qui à toujours été livré avec OpenLDAP dans le passé.

Créer un fichier nommé acl.ldif :

vi acl.ldif

Contenu du fichier acl.ldif:

dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * readNow load the acl into the openldap server:

ldapmodify -x -D cn=admin,cn=config -W -f acl.ldif

Voilà!  Un OpenLDAP fonctionnel.

Références

 

  1. Fabien Danos
  2. ToniO
  3. mike

 

avatar

Your name

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Etienne Lachance - Copyright © 2009 - Dragon Technologie - Tout droits réservés