Installation d’OpenLDAP sous Ubuntu 9.10 ou 10.4
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
Étape 3: Ajouter le module de base de donnée et la créer.
Créer un fichier : db.ldif
vi db.ldif# 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 eqldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif
É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 -hCréer le fichier base.ldif:
vi base.ldifdn: 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 administratorldapadd -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: olcAccessInté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.ldifdn: 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
Bonjour,
Je viens de découvrir ce tutoriel et je suis arrivé à la même chose.
J’ai juste une question, j’ai créé des utilisateurs et des groupes.
Je souhaiterais forcer le changement de mot de passe à l’utilisateur lors de sa première connexion.
Nous devons faire appel à ppolicy.schema.
J’ai tenté de créer le fichier suivant :
olcDatabase: {1}hdb
olcSuffix: dc=local,dc=lan
overlay ppolicy
ppolicy_default “cn=default,dc=example,dc=com”
dn: ou=policies,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: policies
dn: cn=default,ou=policies,dc=example,dc=com
cn: default
objectClass: pwdPolicy
objectClass: Person
objectClass: top
pwdAllowUserChange: TRUE
pwdAttribute: 2.5.4.35
pwdMustchange: TRUE
Mais ce fichier est non fonctionnel.
Je n’arrive pas à arriver à ce que je veux, j’ai une erreur sur les lignes
overlay ppolicy
ppolicy_default “cn=default,dc=example,dc=com”
que je n’arrive pas à implémenter.
Auriez-vous une idée?
Merci.
hello,
Merci, vraiment pratique.
juste une remarque, il y à une erreur de copier/coller à la fin des fichiers db.ldif et config.ldif avec un bout en trop …
Merci, c’est corrigé.
Malheureursement pas pour l’instant. Mais je doit configurer c’est configuration bientôt. Je vais vous tenir au courrant.
Es ce possible de sauvegarder toute la configuration d’installation ? et la reutiliser en cas de reinstallation ?
Merci
Merci, OpenLDAP a integré les config avec “cn=config” pour permettre la modification en temps réel des configurations, sans avoir à redémarrer le service. Ubuntu a intégré ce mode de configuration avec 9.10 (a mon souvenir), mais la version qui venais de Ubuntu ne fonctionnait pas et était non documenter. Je suis d’accord que c’est plus complexe, mais on fini par s’habituer.
Oui tu peux faire un backup répertoire cn=config.
Salut et merci pour tes reponses. j’ai un petit souci c’est que j’ai essayer d’ajouter : core.ldif
root@ldapserver:/home/jamal# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/core.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry “cn=core,cn=schema,cn=config”
ldap_add: Insufficient access (50)
Il ne me donne pas l’autharisation. Ta pas une idée ?
Merci
C’est ok le core.ldif est installé par default.
Bonjour,
J’ai suivi votre tuto et j’ai une erreur
Lorsque je lance le config.ldiff, j’obtiens :
ldap_modify: No such attribute (16)
additional info: modify/delete: olcAuthzRegexp: no such attribute
Test fait sur ubuntu 10.04
Dans votre tuto, vous n’expliquez pas comment repartir sur une config neuve.
Ce tutoriel explique comment faire la configuration a partir d’un système vierge. L’idée de réinitialiser un serveur peut être le sujet d’un autre tutoriel.