OpenLDAP Master/Slave und Samba

mincer

Well-Known Member
Hi Forum

Ich bin gerade dabei mittels OpenLDAP die Benutzerverwaltung zu zentralisieren.
Meine Frage bezieht sich nun auf die Master/Slave-LDAP-Umgebung im Zusammenhang mit Samba.

Hier mal eine Übersichtsgrafik

attachment.php


srv01.SPRE.LOCAL Ist der Master-LDAP-Server
srv01.SPAE.LOCAL Ist z.B. einer der Slave-Server in einer anderen Filiale (per IPSec vernetzt)

Die OpenLDAP Master-Slave Umgebung läuft einwandfrei. Alle Änderungen werden vom Master-Server zu den Slaves übertragen.

Nun zu der eigentlichen Fragen:
Wie muss ich Samba auf den Slave-Servern konfigurieren damit Lesebefehle (LDAP) an den Slave-Server gesendet werden und Schreibbefehle an den Master-Server gesendet werden?

Ich habe schon viele Stunden versucht das so zum laufen zu kriegen, leider bisher ohne Erfolg.

Meine smb.conf (Slave-Server)

[global]

netbios name = srv01
server string =
workgroup = SPAE.LOCAL

passdb backend = ldapsam:ldaps://srv01.SPAE.LOCAL (Slave-Server)

...

# LDAP-Konfiguration
ldap ssl = Yes
ldap passwd sync = Yes
ldap suffix = dc=SP,dc=GLOBAL
ldap machine suffix = ou=Machines
ldap user suffix = ou=People
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=ldapAdmin,dc=SP,dc=GLOBAL
idmap backend = ldap:ldaps://srv01.SPRE.LOCAL
idmap uid = 10000-20000
idmap gid = 10000-20000

Meine smbldap.conf

SID="S-1-5-21-2196196116-2481739541-1567073650"
sambaDomain="SPAE.LOCAL"
masterLDAP="srv01.SPRE.LOCAL" (Master-Server)
masterPort="389"
slaveLDAP="srv01.SPAE.LOCAL" (Slave-Server)
slavePort="389"
ldapTLS="1"
verify=""
cafile="/usr/local/etc/openldap/ssl/srv01.SPRE.LOCAL/CA.cer"
clientcert=""
clientkey=""
suffix="dc=SP,dc=GLOBAL"
usersdn="ou=People,${suffix}"
computersdn="ou=Machines,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=SPAE.LOCAL,${suffix}"
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format=""
...

Im Netz habe ich gelesen, das man bei "masterLDAP" den Master-LDAP-Server eintragen soll für alle Schreiboperationen, und bei "slaveLDAP" den Slave-LDAP-Server für die Leseoperationen. Auch wird teilweise etwas von einem Idealix Samba Patch für Dual-Head erzählt.

Vielen Dank für eure Hilfe

mInCEr
 

Anhänge

  • openldap_master_slave.png
    openldap_master_slave.png
    35,2 KB · Aufrufe: 2.927
Moin mincer,

ich habe hier ein ähnliches Szenario, allerdings synchronisiere ich die drei OpenLDAP Srv. mittels slurpd auf dem Master. Ob es auch mit Syncrepl geht, kann ich Dir nicht beantworten.

Bei uns ist den in zwei Samba-Servern der lokale Slave-OpenLDAP-Srv eingetragen und zusätzlich in der slapd.conf der Slaves die Option 'updateref URI VOM MASTER' konfiguriert, dadurch werden alle Schreiboperationen auf den Master umgeleitet und von dort mit slurpd auf die beiden Slaves synchronisiert.

Vielleicht hilft Dir der Tipp ja.
Hier noch ein Link http://www.ureader.de/msg/1263242.aspx

Gruß c.
 
Ich kenne das auch nur mit Replikation ueber slurpd und jeder Client hat eine updateref URI, an die er schreibende Clients verweist. Diese muessen diesem referral dann allerdings auch folgende.

Test am besten erstmal mit zB ldapvi(1) ob deine Referrals funktionieren.
 
Vielen Dank schon mal für die Antworten.

Sollte es eigentlich grundsätzlich nicht so sein, das Samba selber nur Lese-Zugriffe auf das LDAP-Directory macht und das für alle Schreibvorgänge die smbldap-tools verwendet werden?
In der smb.conf wird ja folgendes definiert:

# Befehle fuer die Benutzer- und Gruppenverwaltung
add user script = /usr/local/sbin/smbldap-useradd -a -m %u
delete user script = /usr/local/sbin/smbldap-userdel -r %u
add group script = /usr/local/sbin/smbldap-groupadd -p %g
delete group script = /usr/local/sbin/smbldap-groupdel %g
add user to group script = /usr/local/sbin/smbldap-groupmod -m %u %g
delete user from group script = /usr/local/sbin/smbldap-groupmod -x %u %g
set primary group script = /usr/local/sbin/smbldap-usermod -g %g %u
add machine script = /usr/local/sbin/smbldap-useradd -w %m

Oder was schreibt Samba denn direkt auf den LDAP-Server?

Ich werde das mit updateref versuchen, könnte ja evtl. sogar zusammen mit syncrepl funktionieren?!
 
...
Nun habe ich nochmals im WWW gestöbert und gesehen das viele Konfigurationen einfach zusätzlich mit der Zeile

...
updateref ldaps://master.server:636
...

am laufen sind. Also eigentlich wie meine Konfiguration einfach zusätzlich diese Zeile.
Leider funktioniert das bis jetzt bei mir nicht.

...
 
Hi Leute

Ich habe nochmals etwas Zeit gefunden mich mit dem Problem auseinander zu setzen.
Leider habe ich das Problem immernoch nicht isolieren können. Auf beiden Servern erscheint immer wieder folgende Fehlermeldung:
tail -f /var/log/debug.log

...conn=573 fd=16 closed (TLS negotiation failure)...

Also habe ich mal alle Zertifikate neu erstellt (OpenSSL), ohne Erfolg.
Die Synchronisation per Syncrepl funktioniert nach wie vor.
Ich kann auch z.b. mit jexplorer (LDAP-Client, GUI) auf beide Server über LDAPS zugreifen.

Hat jemand eine Idee wo ich noch suchen könnte?

Schöne Weihnachten und vielen Dank

mInCEr
 
Wenn du nicht ueber ein oeffentliches Netz routen musst, dann lass TLS zu Testzwecken erstmal weg. Das ist eine riesige Fehlerquelle und das wuerde ich erst zum Schluss einrichten (es sei denn, du bist TLS Experte und machst das schon seit Jahren :).

Wie hast du denn die Zertifikate abgelegt? Was steht in deiner slapd.conf, wie sind die Clients konfiguriert? etc.
 
so, ich nehme nochmals einen Anlauf um noch die restliche Probleme meiner LDAP-Umgebung zu beheben.

Problem 1: Updateref
Ich habe TLS nun deaktiviert aber leider funktioniert updateref immer noch nicht. Das Problem scheint also nicht daran zu liegen. Wunderbar funktioniert immernoch syncrepl. Alle Änderungen werden vom Master zum Slave gesendet.
Braucht es noch evtl. weitere Einträge zu "updateref"? Ich habe es noch mit zus. "updatedn" versucht, aber leider kein Erfolg.

Weiss jemand von euch wie "updateref" funktioniert? Braucht es das noch irgendwelche Logininformationen oder werden die Anfragen direkt an den Master-Server weitergeleitet?

Problem 2: Start des Slave-LDAP-Servers
Es dauert ca. 10 Minuten bis SLAPD auf dem Slave-Server aufgestartet ist. Im Log steht gar nichts. (Log-level -1)
Der Master-Server hat keine Probleme und startet super schnell.
Hat hier jemand von euch einen Tip?

Vielen Dank
 
Zurück
Oben