LDAP : Installation et configuration d'un Annuaire LDAP (secondaire)
Contents
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":
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:
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":
On modifie aussi le fichier pour déclarer le serveur maître:
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:
/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:
/usr/local/etc/rc.d/slapd start |
- Démarrer le daemon slurpd sur le serveur maître:
/usr/local/etc/rc.d/slurpd start |
- Démarrer le daemon slapd sur le serveur esclave:
/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