Anbei meine Vorgehensweise:
LDAP1
sudo nano /tmp/provider_sync.ldif
Code: Alles auswählen
# Add indexes to the frontend db.
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: entryCSN eq
-
add: olcDbIndex
olcDbIndex: entryUUID eq
#Load the syncprov and accesslog modules.
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov
-
add: olcModuleLoad
olcModuleLoad: accesslog
# Accesslog database definitions
dn: olcDatabase={2}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {2}mdb
olcDbDirectory: /var/lib/ldap/accesslog
olcSuffix: cn=accesslog
olcRootDN: cn=admin,dc=local,dc=net
olcDbIndex: default eq
olcDbIndex: entryCSN,objectClass,reqEnd,reqResult,reqStart
# Accesslog db syncprov.
dn: olcOverlay=syncprov,olcDatabase={2}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpNoPresent: TRUE
olcSpReloadHint: TRUE
# syncrepl Provider for primary db
dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpNoPresent: TRUE
# accesslog overlay definitions for primary db
dn: olcOverlay=accesslog,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcAccessLogConfig
olcOverlay: accesslog
olcAccessLogDB: cn=accesslog
olcAccessLogOps: writes
olcAccessLogSuccess: TRUE
# scan the accesslog DB every day, and purge entries older than 7 days
olcAccessLogPurge: 07+00:00 01+00:00
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /tmp/provider_sync.ldif
LDAP2
sudo nano /tmp/consumer_sync.ldif
Code: Alles auswählen
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: entryUUID eq
-
add: olcSyncRepl
olcSyncRepl: rid=0 provider=ldap://LDAP1.local.net bindmethod=simple binddn="cn=admin,dc=local,dc=net"
credentials=secretpassword searchbase="dc=local,dc=net" logbase="cn=accesslog"
logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=on
type=refreshAndPersist retry="60 +" syncdata=accesslog
-
add: olcUpdateRef
olcUpdateRef: ldap://LDAP1.local.net
Meine Replication zwischen meinen beiden LDAP Servern hatte eigentlich funktioniert. Wenn ich den Status der beiden LDAP Server abfrage erhalte ich jetzt unterschiedliche Werte.
Code: Alles auswählen
ldapsearch -z1 -LLLQY EXTERNAL -H ldapi:/// -s base -b dc=local,dc=net contextCSN
dn: dc=local,dc=net
contextCSN: 20180702122323.909412Z#000000#000#000000
LDAP2
dn: dc=local,dc=net
contextCSN: 20180615100130.647912Z#000000#000#000000
Ich hab anschließend lediglich die Verschlüsselung (SSL) aktiviert. Hier hab ich selbstverständlich auch die Einträge in dem LDAP2 bearbeitet.
sudo nano /tmp/consumer_sync.ldif
Code: Alles auswählen
dn: olcDatabase={1}mdb,cn=config
replace: olcSyncRepl
olcSyncRepl: rid=0 provider=ldaps://LDAP1.local.net bindmethod=simple binddn="cn=admin,dc=local,dc=net" credentials=secretpassword searchbase="dc=local,dc=net" logbase="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=on type=refreshAndPersist retry="60 +" syncdata=accesslog starttls=critical tls_reqcert=demand
-
replace: olcUpdateRef
olcUpdateRef: ldaps://LDAP1.local.net
Ich komm nicht ganz dahinter, weshalb die Replication nicht mehr funktioniert? Der folgende Befehl zeigt mir auch, dass diverse Inhalte fehlen.
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b dc=local,dc=net dn
Gibt es einen Befehl um die Replication direkt noch einmal zu starten?
Was mich auch wunder... Folgender Befehl liefert mir eine Fehlermeldung. Funktioniert das mit ldaps:/// nicht?
ldapsearch -z1 -LLLQY EXTERNAL -H ldaps:/// -s base -b dc=local,dc=net contextCSN
Code: Alles auswählen
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
additional info: SASL(-4): no mechanism available: