Bonjour,

Tout dabord merci de me consacrer de votre temps.

N'étant pas un expert linux , je me tourne vers la communauté pour solliciter de l'aide :

J'ai monté deux serveurs LDAP sous Debian 8 pour mon entreprise, et je cherche à faire une réplication.

Après avoir potassé la doc officielle ldap et quelques dizaines de liens sur google j'ai pu réglé un certain nombre de problèmes. Cependant il en reste un qui persiste et auquel je ne trouve pas de solution :

Voilà, j'ai donc deux serveurs : le provider et le réplica (consumer).

Lorsque la réplication du provider sur le consumer commence, tout se déroule bien, je vois les trames qui passent sur wireshark avec les noms des utilisteurs / groupes etc... présent dans l'annuaire LDAP du provider. Donc il envoie bien les infos nécessaires à la réplication pour le server réplica. Cependant la base de données sur le replica ne se met pas à jour. Et surtout j'ai une erreur dans /var/log/syslog :

Serveur REPLICA : /var/log/syslog :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Dec 22 15:35:06 ldapsrv2 slapd[1930]: Entry (cn=admin,dc=mondomain,dc=local): object class 'simpleSecurityObject' requires attribute 'userPassword'
Dec 22 15:35:06 ldapsrv2 slapd[1930]: null_callback : error code 0x41
Dec 22 15:35:06 ldapsrv2 slapd[1930]: syncrepl_entry: rid=012 be_add cn=admin,dc=mondomain,dc=local failed (65)
Dec 22 15:35:06 ldapsrv2 slapd[1930]: do_syncrepl: rid=012 rc 65 quitting
La réplication se fait via un utilisateur créé pour cela qui se nomme "rpuser" (c'est bien celui-là qui est utilisé, il passe bien dans les trames sur WireShark lors de la requête)
Cet utilisateur est présent sur les annuaires des deux serveurs.

il s'agit certainement d'une erreur idiote de configuration que je ne vois pas.

Quelques infos :
J'utilise la dernière version de ldap, avec les fichiers "hdb" et je configure les fichiers via les commandes lapmodify / ldapadd et avec des .ldif comme recommandé dans la doc officielle.

Serveur REPLICA : fichier : olcDatabase={1}hdb.ldif dans /etc/ldap/slapd.d/cn\=config/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 76837017
dn: olcDatabase={1}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=mon_domain,dc=local
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonym
 ous auth by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=mon_domain,dc=local
olcDbCheckpoint: 512 30
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
olcDbIndex: objectClass eq
olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
structuralObjectClass: olcHdbConfig
entryUUID: f1401b2c-5af0-1036-9053-d3dbcc37fb96
creatorsName: cn=admin,cn=config
createTimestamp: 20161220111230Z
olcSyncrepl: {0}rid=012 provider=ldap://ip_de_mon_serveurLDAP_provider:389/ bindmethod=simple
  binddn="uid=rpuser,dc=mon_domain,dc=local" credentials=mon_password searchbase="dc=cg
 o,dc=local" scope=sub schemachecking=on type=refreshAndPersist retry="30 5 
 300 3" interval=00:00:05:00
olcRootPW:: bERXUjU3NDk=
entryCSN: 20161222140750.640561Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20161222140750Z
Auriez-vous une info qui pourrait m’aiguiller ? Et ou une idée de ce qu'est l'erreur "(65)" du syslog
Un grand merci !

Jonathan