Zum Inhalt springen

LDAP Datenbank replizieren


merenda

Empfohlene Beiträge

Hi @all,

mein LDAP Läuft, meine Benutzerauthentifizierung scheint auch so zu laufen wie es laufen soll.

Jetzt möchte ich bevor wir produktiv gehen meinen LDAP absichern, in dem ich noch einen LDAP-Slave aufbaue, der die Aufgaben des Masters übernimmt falls er mal ausfallen sollte. Ich hab schon damit angefangen, nur will das noch nicht so funktionieren wie es soll. Wie bin ich vorgegangen:

1. Ich hab die slapd.conf des LDAP - Master auf dem LDAP - Slave server kopiert

2. Dann habe ich die slapd.conf vom Master erweitert:

#~~~~~~~~~~~~~#

# Replikation #

#~~~~~~~~~~~~~#

replogfile /var/lib/openldap/slurp/slapd.replog

replica host=10.206.176.172:389

        binddn="cn=replicationsadmin,o=firma,c=de"

        bindmethod=simple

        credentials=test
3. Die Konfigurationsdatei vom LDAP-SLAVE hab ich auch erweitert:
#~~~~~~~~~~~~~#

# Replikation #

#~~~~~~~~~~~~~#


updatedn=cn"cn=replicationsadmin,o=firma,c=de"

updateref=10.206.176.97:389
4. Mit ldapadd habe ich Auf dem LDAP-MAster einen replicationsadmin angelegt:
dn: cn=replicationsadmin,o=firma,c=de

cn: replicationsadmin

description: LDAP-Administrator

objectClass: top

objectClass: Person

sn: admin

structuralObjectClass: Person

entryUUID: 353e68dc-b31a-1029-9941-c0d5d140754d

creatorsName: cn=admin,o=firma,c=de

createTimestamp: 20050906120506Z

entryCSN: 2005090612:05:06Z#0x0001#0#0000

modifiersName: cn=admin,o=firma,c=de

modifyTimestamp: 20050906120506Z
5. Nach dem ich alles eingestellt habe, hab ich mit slapcat habe ich die LDAP-Master Datenbank ausgelesen und eine LDIF Datei erzeugt, die ich dann auf dem LDAP-Slave mit dem ldapadd Befehl einlesen wollte. Leider bekomme ich da immer Folgende Meldung:
g8sxz002:~# ldapadd -x -D "cn=admin,o=firma,c=de" -W -f ldap-slave.ldif

Enter LDAP Password:

adding new entry "o=firma,c=de"

ldap_add: Constraint violation (19)

        additional info: structuralObjectClass: no user modification allowed
Hat jemand eine Ahnung was ich da falsch mache ? Kann es vielleicht daran liegen, dass der LDAP Master ein SLES8 Server mit LDAP Version 2.14 und der LDAP SLAVE ein SLES9 Server mit LDAP Version 2.2.24 ist ? Hier mal die Configs dann könnt ihr auch mal drauf schauen: LDAP - MASTER
include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/misc.schema

include         /etc/openldap/schema/krb5-kdc.schema




# Define global ACLs to disable default read access.



pidfile		/var/run/slapd/slapd.pid

argsfile	/var/run/slapd/slapd.args



loglevel 128 256 512


sizelimit 500 

timelimit 3600


#~~~~~~~~~~~~~~~#

# Access Regeln #

#~~~~~~~~~~~~~~~#


access to attrs=userPassword 

   by dn.base="cn=admin,o=firma,c=de" write 

   by self write 

   by anonymous auth 

   by * none


#### TEST - Maschinen ####


### Intel-TestMaschine

access to dn.subtree="ou=mars,ou=Test-Systeme,o=firma,c=de"

   by dn.base="cn=admin,o=firma,c=de" write

   by peername="53.139.198.186"  read

   by * none


### sxA

access to dn.subtree="ou=sxA,ou=Test-Systeme,o=firma,c=de"

   by dn.base="cn=admin,o=firma,c=de" write

   by peername="10.206.176.212"  read

   by peername="10.206.176.148"  read

   by peername="10.206.176.74"   read

   by * none



#######################################################################

# ldbm database definitions

#######################################################################


database        bdb 

checkpoint      1024    5 

cachesize       10000


suffix          "o=firma,c=de"

rootdn          "cn=admin,o=firma,c=de"

rootpw          test 


directory       /var/lib/ldap



#index   	default         	pres,eq

index   	objectClass     	eq


index           cn                      pres,sub,eq

index           sn                      pres,sub,eq

index           uid                     pres,sub,eq

index           displayName             pres,sub,eq


index           uidNumber               eq

index           gidNumber               eq

index           memberUid               eq



#~~~~~~~~~~~~~#

# Replikation #

#~~~~~~~~~~~~~#

replogfile /var/lib/openldap/slurp/slapd.replog

replica host=10.206.176.172:389

        binddn="cn=replicationsadmin,o=firma,c=de"

        bindmethod=simple

        credentials=test
LDAP-SLAVE
include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/misc.schema

#include         /etc/openldap/schema/krb5-kdc.schema




# Define global ACLs to disable default read access.



pidfile         /var/run/slapd/slapd.pid

argsfile        /var/run/slapd/slapd.args



loglevel 128 256 512


sizelimit 500

timelimit 3600


#~~~~~~~~~~~~~~~#

# Access Regeln #

#~~~~~~~~~~~~~~~#


access to attrs=userPassword 

   by dn.base="cn=admin,o=firma,c=de" write 

   by self write 

   by anonymous auth 

   by * none


#### TEST - Maschinen ####


### Intel-TestMaschine

access to dn.subtree="ou=mars,ou=Test-Systeme,o=firma,c=de"

   by dn.base="cn=admin,o=firma,c=de" write

   by peername="53.139.198.186"  read

   by * none


### sxA

access to dn.subtree="ou=sxA,ou=Test-Systeme,o=firma,c=de"

   by dn.base="cn=admin,o=firma,c=de" write

   by peername="10.206.176.212"  read

   by peername="10.206.176.148"  read

   by peername="10.206.176.74"   read

   by * none



#######################################################################

# ldbm database definitions

#######################################################################


database        bdb

checkpoint      1024    5

cachesize       10000


suffix          "o=firma,c=de"

rootdn          "cn=admin,o=firma,c=de"

rootpw          test


directory       /var/lib/ldap



#index          default                 pres,eq

index           objectClass             eq


index           cn                      pres,sub,eq

index           sn                      pres,sub,eq

index           uid                     pres,sub,eq

index           displayName             pres,sub,eq


index           uidNumber               eq

index           gidNumber               eq

index           memberUid               eq


#~~~~~~~~~~~~~#

# Replikation #

#~~~~~~~~~~~~~#

updatedn=cn"cn=replicationsadmin,o=firma,c=de"

updateref=10.206.176.97:389

Danke schon mal für eure Hilfe.

Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

danke erst mal für dein Post

sorry das mit dem Schemas war mein Fehler, die sind auf beiden Seiten auskommentiert.

Auf dem Master läuft jetzt auch der slurpd-Deamon, aber wenn ich ihn starte bekomme ich folgende Meldung:

g8sxz001:~ # rcslurpd start

Starting slurpdError: Malformed "replica" line in slapd config file, line 82

Warning: failed to add replica "10.206.176.172:389 - ignoring replica   done

Aber der slurpd-Deamon ist gestartet.

Aber ich kann trozdem mit ldapadd die keine Daten einlesen :(

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo!

Die Versionen openldap 2.1 und openldap 2.2 unterscheiden sich gewaltig.

Ich habe damals auch ein problem gehabt welches sich durch ändern eines Wertes in den Schema Dateien behebte.

Ich hatte damals wie wild gegoogelt und bin zufällig auf eine kleine Seite gekommen wo das stand.

Man musste die Integer zahlen auf Boolean umstellen doch ich hab damals nur anhand des Beispiels auf der HP herausbekommen was ich ändern musste.

Erklären kann ich es leider nicht...

Aber wenn ich daheim bin kann ich mal in meinen .schema Dateien schauen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ich hab das mit dem slurpd-Deamon jetzt hinbekommen, da haben sie ein paar Fehler eingeschliechen, die ich übersehen hatte.

Ich hab mir jetzt einen SLES8 server besorgt und dort versucht den SLAVE aufzusetzen. Also jetzt habe ich folgenden Stand:

SLES8 - LDAP - Master Läuft mit folgender Konfiguration:

include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/misc.schema

#include         /etc/openldap/schema/krb5-kdc.schema




# Define global ACLs to disable default read access.



pidfile		/var/run/slapd/slapd.pid

argsfile	/var/run/slapd/slapd.args



loglevel 1024 


sizelimit 500 

timelimit 3600


#~~~~~~~~~~~~~~~#

# Access Regeln #

#~~~~~~~~~~~~~~~#


access to attrs=userPassword 

   by dn.base="cn=admin,o=firma,c=de" write 

   by self write 

   by anonymous auth 

   by * none


#### TEST - Maschinen ####


### Intel-TestMaschine

access to dn.subtree="ou=mars,ou=Test-Systeme,o=firma,c=de"

   by dn.base="cn=admin,o=firma,c=de" write

   by peername="53.139.198.186"  read

   by * none


### sxA

access to dn.subtree="ou=sxA,ou=Test-Systeme,o=firma,c=de"

   by dn.base="cn=admin,o=firma,c=de" write

   by peername="10.206.176.212"  read

   by peername="10.206.176.148"  read

   by peername="10.206.176.74"   read

   by * none



#######################################################################

# ldbm database definitions

#######################################################################


database        bdb 

checkpoint      1024    5 

cachesize       10000


suffix          "o=firma,c=de"

rootdn          "cn=admin,o=firma,c=de"

rootpw          test 


directory       /var/lib/ldap



#index   	default         	pres,eq

index   	objectClass     	eq


index           cn                      pres,sub,eq

index           sn                      pres,sub,eq

index           uid                     pres,sub,eq

index           displayName             pres,sub,eq


index           uidNumber               eq

index           gidNumber               eq

index           memberUid               eq



#~~~~~~~~~~~~~#

# Replikation #

#~~~~~~~~~~~~~#

replogfile /var/lib/openldap/slurp/slapd.replog

replica host=10.206.176.148:389 

        binddn="cn=replicationsadmin,o=firma,c=de"

        bindmethod=simple

        credentials=test

SLES8 - LDAP - SLAVE Läuft mit folgender Konfiguration:
include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/misc.schema

#include         /etc/openldap/schema/krb5-kdc.schema




# Define global ACLs to disable default read access.



pidfile         /var/run/slapd/slapd.pid

argsfile        /var/run/slapd/slapd.args



loglevel 1024


sizelimit 500

timelimit 3600


#~~~~~~~~~~~~~~~#

# Access Regeln #

#~~~~~~~~~~~~~~~#


access to attrs=userPassword

   by dn.base="cn=admin,o=firma,c=de" write

   by self write

   by anonymous auth

   by * none


#### TEST - Maschinen ####


### Intel-TestMaschine

access to dn.subtree="ou=mars,ou=Test-Systeme,o=firma,c=de"

   by dn.base="cn=admin,o=firma,c=de" write

   by peername="53.139.198.186"  read

   by * none


### sxA

access to dn.subtree="ou=sxA,ou=Test-Systeme,o=firma,c=de"

   by dn.base="cn=admin,o=firma,c=de" write

   by peername="10.206.176.212"  read

   by peername="10.206.176.148"  read

   by peername="10.206.176.74"   read

   by * none



#######################################################################

# ldbm database definitions

#######################################################################


database        bdb

checkpoint      1024    5

cachesize       10000


suffix          "o=firma,c=de"

rootdn          "cn=admin,o=firma,c=de"

rootpw          test


directory       /var/lib/ldap



#index          default                 pres,eq

index           objectClass             eq


index           cn                      pres,sub,eq

index           sn                      pres,sub,eq

index           uid                     pres,sub,eq

index           displayName             pres,sub,eq


index           uidNumber               eq

index           gidNumber               eq

index           memberUid               eq



#~~~~~~~~~~~~~#

# Replikation #

#~~~~~~~~~~~~~#

updatedn   "cn=replicationsadmin,o=firma,c=de"

updateref  10.206.176.97:389

Ich bin jetzt folgendermasen ran gegangen: 1. Konfigurations des Masters auf dem SLAVE Kopiert 2. Einstellungen fürs Repliziren in den 2 Konfigs eingestellt 3. Dann habe ich mit slapcat eine LDIF - Datei erstellt 4. Die LDIF - Datei habe ich auf dem SLAVE Server kopiert und versucht mit ldapadd einzulesen, doch leider funktioniert das troz SLES8 nicht hat jemand eine IDEE:
g8sxa:~ # ldapadd -x -D "cn=admin,o=firma,c=de" -W -f useradd.ldif

Enter LDAP Password:

adding new entry "o=firma,c=de"

ldapadd: update failed: o=firma,c=de

ldap_add: Constraint violation (19)

        additional info: structuralObjectClass: no user modification allowed

Danke und Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich hab das hinbekommen und zwar hätte ich das nicht mit dem Kommand ldapadd machen sollen sonsern mit dem slapadd.

Jetzt funktioniert es auch mit dem replizieren.

Was mir noch aufgedallen ist, wenn jetzt der LDAP-Slave Down ist, kann er ja keine informationen mehr empfanfen. Wenn ich ihn dann hochfahre, muss ich den slurpd-Deamon stopen und staren, damit die Änderungem an den LDAP-SLAVE weiter gegeben werden. Gibt es da eine andere Möglichkeit die daten an den SLAVE weiter zu reichen, z.B.: Automatisch ?

Und wie kann ich es bewerkstelligen, dass wenn der LDAP-Master augeschaltet wird, dass die LDAP-Clients auf dem SLAVE suchen und nicht weiter auf dem MASTER ? Muss ich das auf dem Clients einrichten oder an den LDAP-Servers ?

Danke schon mal für die Hilfe

Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...