web-dev-qa-db-fra.com

Comment configurer la réplication LDAP maître-esclave

Comment configurer le serveur LDAP maître-esclave sur Ubuntu avec la réplication de session.

Par exemple, If et ldap client modifient son mot de passe sur le serveur maître. Je veux que le nouveau mot de passe soit automatiquement synchronisé avec le serveur esclave

4
Ishan Mate

Maître esclave dans LDAP s'appelle fournisseur et consommateur. Vous ne spécifiez pas le serveur LDAP que vous utilisez, je suppose donc que nous parlons d’openLDAP.

Dans l'ancienne version d'openLDAP, la configuration était enregistrée dans des fichiers de configuration. De nos jours, tous les paramètres sont stockés dans le serveur LDAP lui-même. Vous devez donc créer la configuration et l’injecter sur le serveur LDAP afin que nous puissions commencer par créer ces fichiers. Cette instruction répliquera automatiquement toutes les entrées sur votre serveur esclave.

Disons que le nom de votre entreprise est acmé et que le domaine est com. et que votre administrateur de serveur LDAP actuel se trouve dans: cn = admin, dc = acme, dc = com

First Nous devons créer un utilisateur LDAP autorisé à lire toutes les entrées LDAP pour le répliquer sur le serveur consommateur.

créer le fichier "create_repl_user.ldif"

dn: cn=ldaps2,dc=acme,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: ldaps2
description: LDAP server2 replicator

Deuxième nous devons activer le service de fournisseur sur le serveur LDAP maître et donner à l'utilisateur LDAP2 un accès en lecture à l'intégralité du serveur LDAP.

créer le fichier "enable_sync_prov.ldif"

dn: olcDatabase={1}hdb,cn=config
changetype: modify
delete: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn="cn=admin,dc=acme,dc=com write
  by * none
-
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by self write
  by dn="cn=admin,dc=acme,dc=com" write
  by dn="cn=ldaps2,dc=acme,dc=com" read
  by anonymous auth
  by * none
-
add: olcDbIndex
olcDbIndex: entryUUID eq
-
add: olcDbIndex
olcDbIndex: entryCSN eq

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: {1}syncprov

dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: {0}syncprov
olcSpCheckpoint: 100 10
olcSpSessionlog: 100

Troisième: Nous devons activer la réplication d'un serveur spécifié vers notre consommateur LDAP. créez le fichier enable_sync_consumer.ldif en remplaçant le fournisseur de la ligne = "ldap: //votre nom d'utilisateurserveur.com: 389 /", avec l'adresse IP de votre serveur LDAP maître. et credentials = yourencryptedldap2spassword, avec le mot de passe que vous avez choisi pour votre utilisateur ldap2s.

dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats

dn: olcDatabase={1}hdb,cn=config
changetype: modify
delete: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn="cn=admin,dc=acme,dc=com" write
  by * none
-
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by anonymous auth
  by * none
-
delete: olcAccess
olcAccess: {2}to *
  by self write
  by dn="cn=admin,dc=acme,dc=com" write
  by * read
-
add: olcAccess
olcAccess: {2}to *
  by * read
-
replace: olcRootDN
olcRootDN: cn=manager
-
delete: olcRootPW
-
add: olcDbIndex
olcDbIndex: entryCSN eq
-
add: olcDbIndex
olcDbIndex: entryUUID eq
-
add: olcDbIndex
olcDbIndex: uid eq
-
add: olcDbIndex
olcDbIndex: cn eq
-
add: olcDbIndex
olcDbIndex: ou eq
-
add: olcDbIndex
olcDbIndex: dc eq


add: olcSyncrepl
olcSyncrepl: rid=123
  provider="ldap://yourldapservername.com:389/"
  type=refreshAndPersist
  retry="60 30 300 +"
  searchbase="dc=acme,dc=com"
  bindmethod=simple
  binddn="cn=ldaps2,dc=acme,dc=com"
  credentials=yourencryptedldap2spassword

Maintenant que nous avons créé les fichiers de configuration, nous devons les injecter au fournisseur et au serveur consommateur.

dans le serveur fournisseur, créez l'utilisateur de réplication:

run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f  create_repl_user.ldif

activer le service fournisseur:

run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f  enable_sync_prov.ldif

dans le serveur consommateur, ajoutez les paramètres de synchronisation consommateur:

run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f enable_sync_consumer.ldif
4
tomodachi

excellent article, m'a beaucoup aidé à avancer, il y a cependant quelques erreurs dans les ldifs, à surveiller: enable_sync_prov.ldif

par dn = "cn = admin, dc = acme, dc = ncom write

devrait être

par dn = "cn = admin, dc = acme, dc = com" écrire

Ensuite, ldapadd/ldapmodify doit être exécuté sur la partie cn = admin, cn = config de l’arborescence et non sur cn = admin, dc = acme, dc = com.

1
vkersten