Ceci est une ancienne révision du document !


Version : 2021.01

Dernière mise-à-jour : 2021/02/03 16:39

SER704 - La Sauvegarde, la Restauration et la Réplication

Contenu du Module

  • SER704 - La Sauvegarde, la Restauration et la Réplication
    • Contenu du Module
    • LAB #1 - Configurer les Machines Virtuelles ldapmaster et ldapslave pour la Replication
    • LAB #2 - Sauvegarde et Restauration
    • LAB #3 - Replication
      • 3.1 - Activation de l'Overlay Syncprov
      • 3.2 - Modification du ServerID
      • 3.2 - Création d'un Fichier de Mot de Passe de l'Administrateur
      • 3.3 - Création d'un Utilisateur pour la Réplication
      • 3.4 - Authorisation des Modifications de la Configuration d'OpenLDAP
        • ACLs
        • Configuration
        • Paramétrage
      • 3.5 - Vérification du Fonctionnement de la Réplication

LAB #1 - Configurer les Machines Virtuelles ldapmaster et ldapslave pour la Replication

Arretez la machine virtuelle CentOS_7 :

[root@centos7 ~]# exit
[trainee@centos7 ~]$ exit
desktop@serverXX:~$ VBoxManage controlvm CentOS_7 poweroff

Restaurez le snapshot snapshot1 :

desktop@serverXX:~$ VBoxManage snapshot CentOS_7 restore snapshot1

Deux machines virtuelles ont été préparées et importées pour la suite de ce module. Ces deux machines doivent être mises dans le réseau réseau NAT NatNetwork.

Créez le réseau NAT NatNetwork :

desktop@serverXX:~$ VBoxManage natnetwork add --netname NatNetwork --network "10.0.2.0/24" --enable
desktop@serverXX:~$ VBoxManage natnetwork modify --netname NatNetwork --dhcp on
desktop@serverXX:~$ VBoxManage natnetwork start --netname NatNetwork

Configurez les cartes réseaux des machines virtuelles ldapmaster et ldapslave en “NatNetwork”.

desktop@serverXX:~$ VBoxManage controlvm ldapmaster nic1 natnetwork NatNetwork
desktop@serverXX:~$ VBoxManage controlvm ldapslave nic1 natnetwork NatNetwork

Créez les redirections de ports dans le réseau NAT NatNetwork de VirtualBox :

desktop@serverXX:~$ VBoxManage natnetwork modify --netname NatNetwork --port-forward-4 "ldapmaster:tcp:[]:3022:[10.0.2.15]:22"
desktop@serverXX:~$ VBoxManage natnetwork modify --netname NatNetwork --port-forward-4 "ldapslave:tcp:[]:4022:[10.0.2.16]:22"

Démarrez les deux machines virtuelles :

desktop@serverXX:~$ VBoxManage startvm ldapmaster --type headless
desktop@serverXX:~$ VBoxManage startvm ldapslave --type headless

En utilisant une première connexion SSH, tapez la commande suivante pour vous connecter à la machine ldapmaster :

desktop@serverXX:~$ ssh -l trainee localhost -p 3022

En utilisant une deuxième connexion SSH, tapez la commande suivante pour vous connecter à la machine ldapslave :

desktop@serverXX:~$ ssh -l trainee localhost -p 4022

Vérifiez votre configuration dans les deux machines ldapmaster et ldapslave :

[root@master ~]# ldapsearch -xLLL
dn: dc=i2tch,dc=com
objectClass: dcObject
objectClass: organization
dc: i2tch
o: i2tch.com
description: Exemple

dn: cn=Manager,dc=i2tch,dc=com
objectClass: organizationalRole
cn: Manager
description: Gestionnaire

dn: ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: France

dn: ou=Commercial,ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Commercial

dn: ou=Recherche,ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Recherche

dn: ou=Production,ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Production

dn: ou=Suisse,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Suisse

dn: ou=Commercial,ou=Suisse,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Commercial

dn: ou=USA,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: USA

dn: ou=Commercial,ou=USA,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Commercial

dn: ou=Recherche,ou=USA,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Recherche

dn: cn=Responsable Personnel,ou=France,dc=i2tch,dc=com
cn: Responsable Personnel
aliasedObjectName: cn=Directeur,ou=France,dc=i2tch,dc=com
objectClass: top
objectClass: alias
objectClass: extensibleObject

dn: cn=directeur,ou=France,dc=i2tch,dc=com
objectClass: person
objectClass: top
cn: directeur
sn: Guillaud
telephoneNumber: 12345678
telephoneNumber: 87654321

dn: ou=Angleterre,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Angleterre

dn: ou=Sales,ou=Angleterre,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Sales

dn: cn=Sales Director,ou=Sales,ou=Angleterre,dc=i2tch,dc=com
objectClass: person
objectClass: top
cn: Sales Director
sn: Smith

dn: cn=Sales Manager,cn=Sales Director,ou=Sales,ou=Angleterre,dc=i2tch,dc=com
objectClass: person
objectClass: top
cn: Sales Manager
sn: Brown

dn: cn=mail,ou=Commercial,ou=France,dc=i2tch,dc=com
objectClass: inetOrgPerson
objectClass: person
objectClass: top
cn: mail
mail: info@i2tch.com
sn: info

dn: cn=dupond,ou=Recherche,ou=France,dc=i2tch,dc=com
objectClass: inetOrgPerson
objectClass: top
cn: dupond
sn: dupond
mail: dupond@i2tch.com

dn: cn=dupois,ou=Production,ou=France,dc=i2tch,dc=com
objectClass: inetOrgPerson
objectClass: top
cn: dupois
sn: dupois
[root@slave ~]# ldapsearch -xLLL
dn: dc=i2tch,dc=com
objectClass: dcObject
objectClass: organization
dc: i2tch
o: i2tch.com
description: Exemple

dn: cn=Manager,dc=i2tch,dc=com
objectClass: organizationalRole
cn: Manager
description: Gestionnaire

dn: ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: France

dn: ou=Commercial,ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Commercial

dn: ou=Recherche,ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Recherche

dn: ou=Production,ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Production

dn: ou=Suisse,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Suisse

dn: ou=Commercial,ou=Suisse,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Commercial

dn: ou=USA,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: USA

dn: ou=Commercial,ou=USA,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Commercial

dn: ou=Recherche,ou=USA,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Recherche

dn: cn=Responsable Personnel,ou=France,dc=i2tch,dc=com
cn: Responsable Personnel
aliasedObjectName: cn=Directeur,ou=France,dc=i2tch,dc=com
objectClass: top
objectClass: alias
objectClass: extensibleObject

dn: cn=directeur,ou=France,dc=i2tch,dc=com
objectClass: person
objectClass: top
cn: directeur
sn: Guillaud
telephoneNumber: 12345678
telephoneNumber: 87654321

dn: ou=Angleterre,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Angleterre

dn: ou=Sales,ou=Angleterre,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Sales

dn: cn=Sales Director,ou=Sales,ou=Angleterre,dc=i2tch,dc=com
objectClass: person
objectClass: top
cn: Sales Director
sn: Smith

dn: cn=Sales Manager,cn=Sales Director,ou=Sales,ou=Angleterre,dc=i2tch,dc=com
objectClass: person
objectClass: top
cn: Sales Manager
sn: Brown

dn: cn=mail,ou=Commercial,ou=France,dc=i2tch,dc=com
objectClass: inetOrgPerson
objectClass: person
objectClass: top
cn: mail
mail: info@i2tch.com
sn: info

dn: cn=dupond,ou=Recherche,ou=France,dc=i2tch,dc=com
objectClass: inetOrgPerson
objectClass: top
cn: dupond
sn: dupond
mail: dupond@i2tch.com

dn: cn=dupois,ou=Production,ou=France,dc=i2tch,dc=com
objectClass: inetOrgPerson
objectClass: top
cn: dupois
sn: dupois

Important - Dans ce cas les deux machines possèdent un DIT identique.

LAB #2 - Sauvegarde et Restauration

Dans le cas où les deux machines ne contiennent pas de DIT identique, il convient de dupliquer le DIT du master dans l'esclave.

Retournez à la machine virtuelle ldapmaster.

Sauvegardez les données de la configuration :

[root@master ~]# slapcat -b cn=config > save_config.ldif

Sauvegardez les données de la configuration :

[root@master ~]# slapcat -b dc=i2tch,dc=com > save_data.ldif

Transférez les deux fichiers à la machine virtuelle ldapslave :

[root@master ~]# scp save_*.ldif trainee@10.0.2.16:/tmp
The authenticity of host '10.0.2.16 (10.0.2.16)' can't be established.
ECDSA key fingerprint is SHA256:RgOsp/XI7JHNq+oIfHKw+jkHdtTnBIh+Dd7kVmHRxtU.
ECDSA key fingerprint is MD5:19:cd:05:58:af:2c:10:82:52:ba:e3:31:df:bd:72:54.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.2.16' (ECDSA) to the list of known hosts.
trainee@10.0.2.16's password: 
save_config.ldif                                                                                                                       100%   55KB  10.9MB/s   00:00    
save_data.ldif                                                                                                                         100% 8118     2.8MB/s   00:00 

Retournez à la machine virtuelle ldapslave et arrêtez le service slapd :

[root@slave ~]# systemctl stop slapd

Supprimez la configuration existante :

[root@slave ~]# rm -rf /etc/openldap/slapd.d/*

Injectez la sauvegarde de la configuration en provenence de la machine virtuelle master :

[root@slave ~]# slapadd -F /etc/openldap/slapd.d -b cn=config -l /tmp/save_config.ldif
_#################### 100.00% eta   none elapsed            none fast!         
Closing DB...

Modifiez le propriétaire et le groupe :

root@debian10:~# chown -R ldap:ldap /etc/openldap/slapd.d/

Supprimez maintenant les données existantes :

[root@slave ~]# rm -rf /var/lib/ldap/*

Injectez la sauvegarde des données en provenance de la machine virtuelle master :

[root@slave ~]# slapadd -b dc=i2tch,dc=com -l /tmp/save_data.ldif
5e1c9ee9 hdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).
Expect poor performance for suffix "dc=i2tch,dc=com".
_#################### 100.00% eta   none elapsed            none fast!         
Closing DB...

Important - Notez l'avertissement concernant le fichier DB_CONFIG.

Remettez en place donc ce fichier :

[root@slave ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Modifiez le propriétaire et le groupe :

root@debian10:~# chown -R ldap:ldap /var/lib/ldap/

Ré-indexez la base de données :

[root@slave ~]# slapindex
5e1ca06f The first database does not allow slapindex; using the first available one (2)

Démarrez le serveur OpenLDAP :

[root@slave ~]# systemctl start slapd

Vérifiez les restaurations :

[root@slave ~]# ldapsearch -xLLL | more
dn: dc=i2tch,dc=com
objectClass: dcObject
objectClass: organization
dc: i2tch
o: i2tch.com
description: Exemple

dn: cn=Manager,dc=i2tch,dc=com
objectClass: organizationalRole
cn: Manager
description: Gestionnaire

dn: ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: France

dn: ou=Commercial,ou=France,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Commercial

dn: ou=Recherche,ou=France,dc=i2tch,dc=com
--More--

LAB #3 - Replication

Le mécanisme de réplication syncrepl est basé sur l'architecture de serveurs homologues. Le serveur dit consommateur lance le démon syncrepl dans un thread. Ce dernier contact le serveur fournisseur et charge une première version de l'annuaire. Ensuite il se maintient à jour. La fonctionalité syncrepl fournit la réplication :

  • maître - esclave,
  • maître - maître.

Le consommateur initie la réplication soit en prenant les mises à jour du fournisseur, processus appelé refreshOnly, soit en demandant au fournisseur de fournir les mises à jour d'une manière périodique, processus appelé refreshAndPersist.

Pour que syncrepl fonctionne, il faut que l'Overlay syncprov soit chargé dans les deux serveurs.

3.1 - Activation de l'Overlay Syncprov

Créez le fichier syncrepl.ldif suivant dans les machines virtuelles ldapmaster et ldapslave :

[root@master ~]# vi syncrepl.ldif
[root@master ~]# cat syncrepl.ldif
dn: cn=module,cn=config
cn: module
objectclass: olcModuleList
objectclass: top
olcmoduleload: syncprov.la
olcmodulepath: /usr/lib/ldap
[root@slave ~]# vi syncrepl.ldif
[root@slave ~]# cat syncrepl.ldif
dn: cn=module,cn=config
cn: module
objectclass: olcModuleList
objectclass: top
olcmoduleload: syncprov.la
olcmodulepath: /usr/lib/ldap

Injectez la configuration dans chaque machine :

[root@slave ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f syncrepl.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module,cn=config"
[root@slave ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f syncrepl.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module,cn=config"

Vérifiez la mise en place de la configuration :

[root@master ~]# ldapsearch -LLLY external -H ldapi:/// -b "cn=config" "objectClass=olcModuleList"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=module{0},cn=config
objectClass: olcModuleList
objectClass: top
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}syncprov.la
[root@slave ~]# ldapsearch -LLLY external -H ldapi:/// -b "cn=config" "objectClass=olcModuleList"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=module{0},cn=config
objectClass: olcModuleList
objectClass: top
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}syncprov.la

3.2 - Modification du ServerID

Chaque serveur homologue doit être identifié par une entrée olcServerID différente. Créez donc les fichiers serverid.ldif suivants dans ldapmaster et ldapslave respectivement :

[root@master ~]# vi serverid.ldif
[root@master ~]# cat serverid.ldif
dn: cn=config
changetype: modify
add: olcServerID
olcServerID: 1
[root@slave ~]# vi serverid.ldif
[root@slave ~]# cat serverid.ldif
dn: cn=config
changetype: modify
add: olcServerID
olcServerID: 2

Injectez la configuration dans chaque machine :

[root@master ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f serverid.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
[root@slave ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f serverid.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

Vérifiez la mise en place de la configuration :

[root@master ~]# ldapsearch -LLLY external -H ldapi:/// -b "cn=config" "objectClass=olcGlobal" olcServerID
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config
olcServerID: 1
[root@slave ~]# ldapsearch -LLLY external -H ldapi:/// -b "cn=config" "objectClass=olcGlobal" olcServerID
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config
olcServerID: 2

3.3 - Création d'un Fichier de Mot de Passe de l'Administrateur

Afin d'éviter de passer le mot de passe de l'administrateur d'OpenLDAP sur la ligne de commande, créez le fichier /root/passwdldap dans chaque machine virtuelle :

[root@master ~]# echo -n "fenestros" > /root/passwdldap
[root@master ~]# chmod 600 /root/passwdldap
[root@slave ~]# echo -n "fenestros" > /root/passwdldap
[root@slave ~]# chmod 600 /root/passwdldap

3.4 - Création d'un Utilisateur pour la Réplication

Créez le fichier repuser.ldif suivant dans les machines virtuelles ldapmaster et ldapslave :

[root@master ~]# vi repuser.ldif
[root@master ~]# cat repuser.ldif
dn: ou=system,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: system

dn: cn=replicant,ou=system,dc=i2tch,dc=com
userPassword: password
cn: replicant
objectclass: top
objectclass: person
sn: replicant
[root@slave ~]# vi repuser.ldif
[root@slave ~]# cat repuser.ldif
dn: ou=system,dc=i2tch,dc=com
objectClass: organizationalUnit
objectClass: top
ou: system

dn: cn=replicant,ou=system,dc=i2tch,dc=com
userPassword: password
cn: replicant
objectclass: top
objectclass: person
sn: replicant

Injectez la configuration dans chaque machine :

[root@master ~]# ldapadd -x -H ldap://localhost -D cn=Manager,dc=i2tch,dc=com -y /root/passwdldap -f repuser.ldif
adding new entry "ou=system,dc=i2tch,dc=com"

adding new entry "cn=replicant,ou=system,dc=i2tch,dc=com"
[root@slave ~]# ldapadd -x -H ldap://localhost -D cn=Manager,dc=i2tch,dc=com -y /root/passwdldap -f repuser.ldif
adding new entry "ou=system,dc=i2tch,dc=com"

adding new entry "cn=replicant,ou=system,dc=i2tch,dc=com"

Authorisation des Modifications de la Configuration d'OpenLDAP

Il est maintenant necéssaire d'authoriser des modifications de la configuration d'OpenLDAP par l'utilisateur cn=replicant,ou=system,dc=i2tch,dc=com.

ACLs

Créez le fichier acls.ldif dans les machines virtuelles ldapmaster et ldapslave :

[root@master ~]# vi acls.ldif
[root@master ~]# cat acls.ldif
dn: olcDatabase={0}config,cn=config
changeType: modify
add: olcAccess
olcAccess: to * by dn.exact=cn=replicant,ou=system,dc=i2tch,dc=com manage by * break
[root@slave ~]# vi acls.ldif
[root@slave ~]# cat acls.ldif
dn: olcDatabase={0}config,cn=config
changeType: modify
add: olcAccess
olcAccess: to * by dn.exact=cn=replicant,ou=system,dc=i2tch,dc=com manage by * break

Injectez la configuration dans chaque machine :

[root@master ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f acls.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
[root@slave ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f acls.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

Configuration

Créez le fichier configuration.ldif dans les machines virtuelles ldapmaster et ldapslave :

[root@master ~]# vi configuration.ldif
[root@master ~]# cat configuration.ldif
dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
[root@master ~]# vi configuration.ldif
[root@master ~]# cat configuration.ldif
dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

Injectez la configuration dans chaque machine :

[root@master ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f configuration.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={0}config,cn=config"
[root@slave ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f configuration.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={0}config,cn=config"

Paramétrage

Créez le fichier settings.ldif dans les machines virtuelles ldapmaster et ldapslave :

[root@master ~]# vi settings.ldif
[root@master ~]# cat settings.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=01 provider=ldap://10.0.2.15
  binddn="cn=replicant,ou=system,dc=i2tch,dc=com" bindmethod=simple
  credentials=password searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncRepl: rid=02 provider=ldap://10.0.2.16
  binddn="cn=replicant,ou=system,dc=i2tch,dc=com" bindmethod=simple
  credentials=password searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE
[root@slave ~]# vi settings.ldif
[root@slave ~]# cat settings.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=01 provider=ldap://10.0.2.15
  binddn="cn=replicant,ou=system,dc=i2tch,dc=com" bindmethod=simple
  credentials=password searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncRepl: rid=02 provider=ldap://10.0.2.16
  binddn="cn=replicant,ou=system,dc=i2tch,dc=com" bindmethod=simple
  credentials=password searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE

Injectez la configuration dans chaque machine :

[root@master ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f settings.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
[root@slave ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f settings.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

3.5 - Vérification du Fonctionnement de la Réplication

Vérifiez la configuration :

[root@master ~]# ldapsearch -QLLLY external -H ldapi:/// -b "cn=config" "olcDatabase={0}config" olcSyncRepl
dn: olcDatabase={0}config,cn=config
olcSyncrepl: {0}rid=01 provider=ldap://10.0.2.15 binddn="cn=replicant,ou=syste
 m,dc=i2tch,dc=com" bindmethod=simple credentials=password searchbase="cn=conf
 ig" type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncrepl: {1}rid=02 provider=ldap://10.0.2.16 binddn="cn=replicant,ou=syste
 m,dc=i2tch,dc=com" bindmethod=simple credentials=password searchbase="cn=conf
 ig" type=refreshAndPersist retry="5 5 300 5" timeout=1
[root@slave ~]# ldapsearch -QLLLY external -H ldapi:/// -b "cn=config" "olcDatabase={0}config" olcSyncRepl
dn: olcDatabase={0}config,cn=config
olcSyncrepl: {0}rid=01 provider=ldap://10.0.2.15 binddn="cn=replicant,ou=syste
 m,dc=i2tch,dc=com" bindmethod=simple credentials=password searchbase="cn=conf
 ig" type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncrepl: {1}rid=02 provider=ldap://10.0.2.16 binddn="cn=replicant,ou=syste
 m,dc=i2tch,dc=com" bindmethod=simple credentials=password searchbase="cn=conf
 ig" type=refreshAndPersist retry="5 5 300 5" timeout=1

Créez le fichier LDIF director.ldif et éditez-le ainsi :

[root@master ~]# vi director.ldif
[root@master ~]# cat director.ldif
version: 1
dn: cn=director,ou=Angleterre,dc=i2tch,dc=com
objectClass: person
objectClass: top
cn: director
sn: Smith
telephoneNumber: 11111111
telephoneNumber: 99999999

Injectez la configuration dans la machine ldapmaster :

[root@master ~]# ldapadd -x -H ldap://localhost -D cn=Manager,dc=i2tch,dc=com -y /root/passwdldap -f director.ldif
adding new entry "cn=director,ou=Angleterre,dc=i2tch,dc=com"

Vérifiez que l'ajout de l'utilisateur s'est déroulé correctement dans la machine ldapmaster :

[root@master log]# ldapsearch -x -LLL -S ou -s children -u -b "ou=Angleterre,dc=i2tch,dc=com"
dn: cn=Sales Director,ou=Sales,ou=Angleterre,dc=i2tch,dc=com
ufn: Sales Director, Sales, Angleterre, i2tch.com
objectClass: person
objectClass: top
cn: Sales Director
sn: Smith

dn: cn=Sales Manager,cn=Sales Director,ou=Sales,ou=Angleterre,dc=i2tch,dc=com
ufn: Sales Manager, Sales Director, Sales, Angleterre, i2tch.com
objectClass: person
objectClass: top
cn: Sales Manager
sn: Brown

dn: cn=director,ou=Angleterre,dc=i2tch,dc=com
ufn: director, Angleterre, i2tch.com
objectClass: person
objectClass: top
cn: director
sn: Smith
telephoneNumber: 11111111
telephoneNumber: 99999999

dn: ou=Sales,ou=Angleterre,dc=i2tch,dc=com
ufn: Sales, Angleterre, i2tch.com
objectClass: organizationalUnit
objectClass: top
ou: Sales

Dernièrement, vérifiez que la réplication fonctionne :

[root@slave ~]# ldapsearch -x -LLL -S ou -s children -u -b "ou=Angleterre,dc=i2tch,dc=com"
dn: cn=Sales Director,ou=Sales,ou=Angleterre,dc=i2tch,dc=com
ufn: Sales Director, Sales, Angleterre, i2tch.com
objectClass: person
objectClass: top
cn: Sales Director
sn: Smith

dn: cn=Sales Manager,cn=Sales Director,ou=Sales,ou=Angleterre,dc=i2tch,dc=com
ufn: Sales Manager, Sales Director, Sales, Angleterre, i2tch.com
objectClass: person
objectClass: top
cn: Sales Manager
sn: Brown

dn: cn=director,ou=Angleterre,dc=i2tch,dc=com
ufn: director, Angleterre, i2tch.com
objectClass: person
objectClass: top
cn: director
sn: Smith
telephoneNumber: 11111111
telephoneNumber: 99999999

dn: ou=Sales,ou=Angleterre,dc=i2tch,dc=com
ufn: Sales, Angleterre, i2tch.com
objectClass: organizationalUnit
objectClass: top
ou: Sales

<html>

Copyright © 2020 Hugh Norris.<br><br>

</html>

Menu