LDAP : Installation et configuration d'un Annuaire LDAP (secondaire)

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Ce document va expliquer comment configurer OpenLDAP pour avoir une réplication d'arbre LDAP entre 2 serveurs.

Pour cela, nous allons utiliser slapd et slurpd de la suite OpenLDAP.

Cela s'applique aussi bien à une distribution Linux, testé sur Debian Sarge, que sur FreeBSD, testé en 6.1.

2 Prérequis

Il sera nécessaire d'avoir configuré les daemons slapd sur les deux serveurs. Pour cela, vous pouvez suivre le document suivant: Configuration SLAPD standard.

3 Le serveur maître

Sur le serveur maître, nous allons créer un utilisateur dédié à la réplication qui n'aura que les droits en lecture mais qui pourra lire tout l'arbre.

Pour cela, on modifie le fichier slapd.conf pour ajouter la ligne de l'utilisateur "cn=replication,o=deimos,dc=fr":

Configuration File slapd.conf
## Acces Lists
# Admin can change all, watcher and all authentified users can read all
access to *     by dn.regex="cn=manager,o=deimos,dc=fr" write
                by dn.regex="cn=watcher,o=deimos,dc=fr" read
                by dn.regex="cn=replication,o=deimos,dc=fr" read
                by * auth

Son fichier LDIF sera de la forme:

# replication, deimos, net
dn: cn=replication,o=deimos,dc=fr
objectClass: top
objectClass: person
userPassword: {SSHA}hSixML09eyZsQncyqSebQq5tFpXgXT63
cn: replication
sn: LDAP replication user

Pour l'ajouter à notre arbre, vous pouvez utiliser les outils clients.

Une fois cela fait, il faut encore expliquer au serveur maître qui sont les serveurs esclaves et comment les mettre à jour.

Pour cela nous allons ajouter quelques directives dans le le fichier de configuration slapd.conf:

Configuration File slapd.conf
 # Réplication
 # Comment joindre le serveur esclave
 replica
     # L'url pour le serveur esclave
     uri=ldaps://ldap2.deimos.fr
     # Le DN distant que l'on utilise pour mettre à jour l'arbre distant
     binddn="cn=replication,o=deimos,dc=fr"
     # La méthode d'authentification et le mot de passe associé en clair !!
     bindmethod=simple credentials=<mdp_de_replication>
 # le fichier de log de la réplication
 replogfile /var/db/openldap-slurp/replica/replog

Attention aux droits sur le répertoire /var/db/openldap-slurpd/ !

Il faut que le daemon slurpd soit démarré automatique au démarrage du serveur. Il n'y a pas de configuration spécifique hormis ce que nous avons mis dans le fichier slapd.conf.

Notre serveur maître est maintenant correctement configuré.

4 Le serveur esclave

Sur le serveur esclave, il n'y pas trop de changements à faire dans la configuration de SLAPD. Le principal étant que l'utilisateur "cn=replication,o=deimos,dc=fr" doit avoir les droits en écriture pour pouvoir mettre à jour l'arbre !

Puis il faudra aussi définir qui est le serveur maître.

Pour cela, on modifie le fichier slapd.conf pour ajouter la ligne de l'utilisateur "cn=replication,o=deimos,dc=fr":

Configuration File slapd.conf
## Acces Lists
# Admin can change all, watcher and all authentified users can read all
access to *     by dn.regex="cn=manager,o=deimos,dc=fr" write
                by dn.regex="cn=watcher,o=deimos,dc=fr" read
                by dn.regex="cn=replication,o=deimos,dc=fr" write
                by * auth

On modifie aussi le fichier pour déclarer le serveur maître:

Configuration File slapd.conf
 # Réplication
 # l'utilisateur qui met à jour l'arbre
 updatedn        "cn=replication,o=deimos,dc=fr"
 # L'URL du serveur maître
 updateref       "ldaps://openldap.deimos.fr"

Notre serveur esclave est maintenant configuré.

5 Mise en service

Pour mettre en service nos serveurs, il y a quelques étapes simples:

  • Arrêter le daemon slapd sur les deux serveurs:
Command
/usr/local/etc/rc.d/slapd stop

  • Copier le contenu du répertoire /var/db/openldap-slapd/ du serveur maître dans le répertoire /var/db/openldap-slapd/ sur serveur esclave
  • Démarrer le daemon slapd sur le serveur maître:
Command
/usr/local/etc/rc.d/slapd start

  • Démarrer le daemon slurpd sur le serveur maître:
Command
/usr/local/etc/rc.d/slurpd start

  • Démarrer le daemon slapd sur le serveur esclave:
Command
/usr/local/etc/rc.d/slapd start

Notre arbre est maintenant synchronisé entre les deux serveurs.


6 Mot de la fin

Les modifications ne sont possibles que sur le serveur maître. Si on tente des modifications sur un serveur esclave, même avec un DN qui a les droits en écriture, on a un message d'erreur qui nous indique l'URL du serveur maître.

Toutes les modifications faites sur le serveur maître sont répliquées "instantanément" sur les serveurs esclaves, selon les charges des serveurs biensur !

Pour les ajouts et modifications, cela se fait exactement comme si le serveur maître était en autonome. Pour les accès en lecture, on peut les faire sur tous les serveurs.

7 Ressources

http://www.free-4ever.net/index.php/Openldap:configuration_slapd_replication
Mise en place d'un OpenLDAP multimaitre