UCS Backup von Master abhängig

german

#1

Der Sinn eines UCS Domain Backup Servers ist doch, dass dieser die ganzen LDAP Informationen wie Benutzer, Gruppen, Berechtigungne, DNS und so weiter auch beim Ausfall (oder Reboot) des Masters vorhalten kann.

In zwei verschiedenen Umgebungen ist dies bei mir nicht der Fall!

Sobald der UCS Domain Master down ist funktioniert auf dem UCS Domain Backup Server nur:

  • ldapsearch -Y EXTERNAL -H ldapi:/// -LLL “(objectClass=posixAccount)” cn

Aber nicht:

  • udm users/user list

Die Fehlermeldung vom udm Befehl ist:

Traceback (most recent call last): File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 222, in doit output = univention.admincli.admin.doit(arglist) File "/usr/lib/pymodules/python2.7/univention/admincli/admin.py", line 393, in doit out=_doit(arglist) File "/usr/lib/pymodules/python2.7/univention/admincli/admin.py", line 540, in _doit co=univention.admin.config.config(configRegistry['ldap/master']) File "/usr/lib/pymodules/python2.7/univention/admin/config.py", line 38, in __init__ base=univention.admin.uldap.getBaseDN(host) File "/usr/lib/pymodules/python2.7/univention/admin/uldap.py", line 66, in getBaseDN result=l.search_s('',ldap.SCOPE_BASE,'objectClass=*',['NamingContexts']) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 559, in search_s return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 918, in search_ext_s return self._apply_method_s(SimpleLDAPObject.search_ext_s,*args,**kwargs) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 865, in _apply_method_s self.reconnect(self._uri,retry_max=self._retry_max,retry_delay=self._retry_delay) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 839, in reconnect raise e SERVER_DOWN: {'desc': "Can't contact LDAP server"}

Was ist hier los?
Es scheint, als ob der udm Befehl fix auf den Master zugreifen will! Ich habe aber keine disbezügliche EInstellung gesehen …
Habe ich etwas falsch gemacht? oder verstehe ich etwas nicht?

Grüsse, Radim


#2

Da udm hauptsächlich ein Tool zum modifizieren des LDAPs ist, verwendet es vermutlich immer den LDAP-Server das Masters, da Änderungen im LDAP immer über diesen erfolgen. Zum Durchsuchen des LDAPs gibt es ja auch noch univention-ldapsearch.


#3

Um das Suchen von Inhalten geht es nicht!

Die ganze Domain ist unbrauchbar sobald der Master nicht mehr läuft!
Es können - trotz laufendem Backup und korrekter DNS Einstellungen (alles doppelt, auf Master und Backup) - keine Authentifizierungen gemacht werden!

Zum Beispiel kann nicht mehr auf eine Dateifreigaben auf einem Memberserver zugegriffen werden. Zugriff wird verweigert, da keine Benutzer und Berechtigungen gefunden werden …

Anderes Beispiel: Auf dem UCS Backup Server werden in der Directory Console auch keine Benutzer oder Gruppen gelistet sobald der Master Server down ist - obwohl sie im lokalen LDAP (ldapsearch) vorhanden sin.

Sorry, falls das nicht klar war…


#4

Ok das war mir leider in der Tat nicht klar. Stimmen die ucr-Variablen ldap/server/name und ldap/server/ip? Läuft der slapd auf dem Backup-Server?

Also konkret bitte die Ausgabe von:

ucr get ldap/server/name
ucr get dap/server/ip
ucr get ldap/master
ps aux | grep slapd

#5

Alle Angaben sind stimmig:

Last login: Mon Jun 22 13:39:20 2015 from 10.9.22.84 root@v5078:~# ucr get ldap/server/name v5078.intra.balsec.ch root@v5078:~# ucr get ldap/server/ip 127.0.0.1 root@v5078:~# ucr get ldap/master v5046.intra.balsec.ch root@v5078:~# ps aux | grep slapd root 2626 0.0 0.9 2414512 18800 ? Ssl Jun20 1:36 /usr/sbin/slapd -h ldapi:/// ldap://:7389/ ldaps://:7636/ root 28283 0.0 0.0 10172 1728 pts/0 S+ 17:03 0:00 grep slapd
v5046 ist der UCS Domain Master
v5078 ist der UCS Domain Backup
Der Master läuft.


#6

Ja, es ist in der Tat wirklich so, dass UDM Kommandozeile immer direkt gegen den konfigurierten LDAP Master geht.
Im Falle eines Totalausfall des Masters kann man den Backup via backup2master hochstufen, aber das ist vermutlich nicht das gewünschte Szenario.

Aber, es sollten trotzdem alle anderen Dienste funktionieren, vor allem die Authentifizierung. Dafür sollte DNS so konfiguriert sein, dass nicht nur der Master als Nameserver verwendet wird und bei Memberservern sollte eine LDAP-Server Richtlinie aktiviert werden, so dass nicht nur der Master verwendet wird, alternativ via UCR ldap/server/addition.


#7

Genau das ist der Punkt!

Der UCS Backup soll automatisch als Authentifikations- und DNS Quelle dienen wenn der Master mal nicht da ist.
Alle meine Systeme sind mit dualem LDAP ausgestattet (ldap host Einträge) sowie 2 DNS Servern für die interne Domain; das sollte eigentlich genügen.

Der Upgrade eines Backups zum Master sollte ultima ratio sein und nicht bei jedem 1-stündigen Ausfall notwendig sein.
Dazu sollte der Backup auch die User, Gruppen, DNS Einträge anzeigen können, auch wenn der Master nicht läuft (aber klar, keine neuen anlegen können …)

Die UCR Variable ldap/server/addition schaue ich mal an, aber es geht auch um Nicht-UCS Systeme, welche LDAP Authentication machen gegenüber der UCS Domäne sowie DNS auflösen müssen.

Gibt es Ideen für einen Workaround? Oder Pläne für die Behebung dieses Zustandes?


#8

Schön! :slight_smile:

[quote=“radim”]
Der UCS Backup soll automatisch als Authentifikations- und DNS Quelle dienen wenn der Master mal nicht da ist.
Alle meine Systeme sind mit dualem LDAP ausgestattet (ldap host Einträge) sowie 2 DNS Servern für die interne Domain; das sollte eigentlich genügen.[/quote]
Damit ist gemeint, dass die Systeme direkt den Master und Backup als LDAP und als DNS Server eingetragen haben? Wenn ja, dann sollte es funktionieren. Wenn das nicht geht, dann vielleicht mal Beispielkonfigurationen von den Systemen posten oder so erklären, dass ich es verstehe. :wink:

[quote=“radim”]
Der Upgrade eines Backups zum Master sollte ultima ratio sein und nicht bei jedem 1-stündigen Ausfall notwendig sein.
Dazu sollte der Backup auch die User, Gruppen, DNS Einträge anzeigen können, auch wenn der Master nicht läuft (aber klar, keine neuen anlegen können …)[/quote]
Genau, das sollte einfach gehen, aber nicht via UDM Kommandozeilen-Interface. Das funktioniert via getent oder ldapsearch. Aber da ist mir das Anwendungsszenario noch nicht klar.

[quote=“radim”]
Die UCR Variable ldap/server/addition schaue ich mal an, aber es geht auch um Nicht-UCS Systeme, welche LDAP Authentication machen gegenüber der UCS Domäne sowie DNS auflösen müssen. [/quote]
Bei Nicht-UCS-Systemen gibt es mehrere Möglichkeiten. Das einfachste dürfte sein, auf den Systemen einzustellen, dass beide UCS Systeme (Master und Backup) LDAP und DNS Server sind. Alternativ kann man auch SRV-Record im DNS dafür nutzen. Oder was sind das für Systeme / Dienste? Kann das dort nicht eingestellt werden?

Wie geschrieben, es sollte eigentlich funktionieren.


#9

Hallo Gohmann,

besten Dank für die Hinweise. Die Variable ldap/server/addition bewirkt tatsächlich dass ein zusätzlicher LDAP Server in die entsprechenden Konfigurationen geschrieben wird (libnss, pam, samba, postfix etc pp). Soweit so gut und das Resultat sieht ganz wie eine “normale” Linux LDAP Konfiguration aus.

Aber:
a) Auf einem Member Server kann ich die Variable nicht setzen, Fehler is overridden by scope ldap, ganzer Output:

root@v5148:/# ucr set ldap/server/addition="v5078.intra.balsec.ch" Setting ldap/server/addition W: ldap/server/addition is overridden by scope "ldap" File: /etc/pam.d/smtp Multifile: /etc/postfix/ldap.virtualwithcanonical File: /etc/pam_ldap.conf File: /etc/krb5.conf Multifile: /etc/postfix/ldap.virtual Multifile: /etc/postfix/ldap.canonicalrecipient Multifile: /etc/postfix/ldap.transport File: /etc/libnss-ldap.conf Multifile: /etc/postfix/ldap.saslusermapping Multifile: /etc/postfix/ldap.virtualdomains Multifile: /etc/postfix/ldap.distlist Multifile: /etc/postfix/ldap.groups Multifile: /etc/postfix/ldap.sharedfolderlocal Multifile: /etc/postfix/ldap.sharedfolderremote Multifile: /etc/samba/smb.conf Multifile: /etc/postfix/ldap.canonicalsender File: /etc/ldap/ldap.conf

b) Auf einem Domain Backup Server kann ich die Variable setzen, aber das Verhalten ändert sich nicht, d.h. es können keine LDAP bezogenen Infos wie DNS, Benutzer oder Gruppen im UMC (Management Console / GUI) angeschaut werden.
Zudem ist die libnss, pam etc Konfiguration korrekt! Dort steht nicht der Domain Master drin, sondern der Domain Backup Server! Somit wäre ein Eintrag unter ldap/server/addition nur für einen zweiten oder dritten Backup Server relevant!

Könnte es sein, dass Kerberos das Problem ist?

Das Gute ist, DNS funktioniert, auch wenn der Master down ist (natürlich mit 2 DNS Einträgen, auf Master und auf Backup IP zeigend).

Wieso kann ich die Variable auf einem Domain Member nicht setzen? Was heisst “overrriden by scope ldap”

Grüsse, Radim


Anmeldung nur am Master, nicht am DC-Backup möglich
#10

Nachtrag:

Mir ist aufgefallen, dass auf den Sevren, welche ich zuerst mit DHCP aufgesetzt und erst später eine feste IP gesetzt habe, in vielen UCR Variablen die IP 127.0.0.1 steht. Zum Beispiel: ucr get ldap/server/ip: 127.0.0.1
Wird ein Server von Anbeginn mit fester IP installiert, so steht die feste IP drin (zumindest im Fall von LDAP auf einem Backup Server).

Auf meinem Master finde ich immer noch folgende localhost Adressen:

ucr dump | grep "127.0.0.1" dns/master/address: 127.0.0.1 kerberos/kdc: 127.0.0.1 kerberos/kpasswdserver: 127.0.0.1 mail/postfix/inet/interfaces: 127.0.0.1 umc/http/interface: 127.0.0.1
Da alle Backup und auch Member Server dieselben Kerberos Einträge haben macht mich das etwas stutzig …

Weiss jemand mehr?

PS: Ja ich weiss, Server sollten von Anbeginn eine feste IP haben … die Realität ist halt manchmal nicht ganz linear


#11

Dann würde ich mir mal die für den Server gültige ucr-Richtlinie angucken (geht am Rechnerobjekt in der UMC). Die scheint den Wert zu beeinflussen. Das besagt die Meldung is overridden by scope ldap

Das ist normal. Die LDAP-odule der UMC funktionieren auch nur, wenn der Master erreichbar ist. Poste mal bitte die Ausgabe von

univention-ldapsearch cn=Administrator

bei abgeschalteten Master.

Das sollte eigentlich so normal sein.


#12

Die Frage ist nun, was soll in die LDAP Policy rein? Sie ist für den Member Server auf “Inherited” (Vererbt) gesetzt…

univention-ldapsearch cn=Aministrator ergibt (auf dem Domain backup) das gleiche Resultat, egal ob Master läuft oder nicht:

[code]root@v5078:~# univention-ldapsearch cn=Administrator

extended LDIF

LDAPv3

base <dc=intra,dc=balsec,dc=ch> (default) with scope subtree

filter: cn=Administrator

requesting: ALL

Administrator, users, intra.balsec.ch

dn: uid=Administrator,cn=users,dc=intra,dc=balsec,dc=ch
uid: Administrator
krb5PrincipalName: Administrator@INTRA.BALSEC.CH
objectClass: top
objectClass: person
objectClass: univentionPWHistory
objectClass: posixAccount
objectClass: shadowAccount
objectClass: univentionMail
objectClass: sambaSamAccount
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: krb5Principal
objectClass: krb5KDCEntry
objectClass: univentionObject
objectClass: univentionPolicyReference
objectClass: univentionPerson
uidNumber: 2002
sambaAcctFlags: [U ]
sambaPasswordHistory: A11E4E0244DE3C3C18E06D4D64703D5DDC95E14D958BBAFB4E2A79DC
A119FFAF
univentionUMCProperty: appcenterSeen=true
univentionUMCProperty: favorites=udm:users/user,udm:groups/group,udm:computers
/computer,appcenter:appcenter,updater,udm:shares/share
krb5MaxLife: 86400
cn: Administrator
userPassword:: e2NyeXB0fSQ2JEc5MjZLcnNJMWVINmZmUEwkYWtHREN4aHhYcm52ZlRIVHRreHR
4am9seENHdXNZLkpCWUVnajFkOEs0V2txLmJ2UFFLWmt1V0ljOGgucUtmdUE3Nml3VmlLdFVBQ2Z4
akxjRnFpdS4=
krb5Key:: MFahKzApoAMCARKhIgQgCtOlhCRaoN884B4TuFN/9OIIP7F9cp1u9uYHFV4zn5uiJzAl
oAMCAQOhHgQcSU5UUkEuQkFMU0VDLkNIQWRtaW5pc3RyYXRvcg==
krb5Key:: MEahGzAZoAMCARGhEgQQmm1FSjBxYv0H/srzRSI7maInMCWgAwIBA6EeBBxJTlRSQS5C
QUxTRUMuQ0hBZG1pbmlzdHJhdG9y
krb5Key:: ME6hIzAhoAMCARChGgQYbuXlIwR53GjmVBMV1fdr+HDs3Ik7SdDToicwJaADAgEDoR4E
HElOVFJBLkJBTFNFQy5DSEFkbWluaXN0cmF0b3I=
krb5Key:: MEahGzAZoAMCARehEgQQAFDx/04OjIAoi6Aoh+mKmKInMCWgAwIBA6EeBBxJTlRSQS5C
QUxTRUMuQ0hBZG1pbmlzdHJhdG9y
krb5Key:: MD6hEzARoAMCAQOhCgQIeSNXMcJiZ0qiJzAloAMCAQOhHgQcSU5UUkEuQkFMU0VDLkNI
QWRtaW5pc3RyYXRvcg==
krb5Key:: MD6hEzARoAMCAQKhCgQIeSNXMcJiZ0qiJzAloAMCAQOhHgQcSU5UUkEuQkFMU0VDLkNI
QWRtaW5pc3RyYXRvcg==
krb5Key:: MD6hEzARoAMCAQGhCgQIeSNXMcJiZ0qiJzAloAMCAQOhHgQcSU5UUkEuQkFMU0VDLkNI
QWRtaW5pc3RyYXRvcg==
krb5MaxRenew: 604800
gecos: Administrator
description: Built-in account for administering the computer/domain
loginShell: /bin/bash
univentionObjectType: users/user
krb5KDCFlags: 126
gidNumber: 5000
sambaPwdLastSet: 1424094415
sambaPrimaryGroupSID: S-1-5-21-2891663317-578611801-1386921140-512
sambaNTPassword: 0050F1FF4E0E8C80288BA02887E98A98
displayName: Administrator
univentionPolicyReference: cn=default-admins,cn=admin-settings,cn=users,cn=pol
icies,dc=intra,dc=balsec,dc=ch
sambaSID: S-1-5-21-2891663317-578611801-1386921140-500
krb5KeyVersionNumber: 1
sn: Administrator
pwhistory: $6$/NiZ3vdTojDR//Qu$O8D2IR3GMoNJ/EEu5v7Zfqb28RAbKtmm35LEtA9rFzU/zXi
L1DhERXlVQOUjPdolPzjM3G3ZTByWje5V7VlZx.
homeDirectory: /home/Administrator

search result

search: 3
result: 0 Success

numResponses: 2

numEntries: 1

[/code]
Das war eigentlich zu erwarten, da LDAP an sich ja läuft und auch synchronisiert ist …

Aber, ein SMB Connect eines Shares - auf einem Member Server liegend - geht nur falls der Master läuft! Das ist ein echtes Problem!

Ich denke immer noch, dass Kerberos hier eine Rolle spielt, sprich dass es “nur” die Kerberos Authentifizierung ist, welche nicht geht.

Zur Vollständigkeit: UCS Domain Master und Backups sind auch Samba4 DCs, der Member Server hat Samba 3 installiert (also das, was Univention als Samba 3 bezeichnet … siehe anderer Threat).

Dank und Grüsse, Radim


#13

Ich hab leider überlesen, daß das Problem beim Memberserver liegt. Also wo ich das Problem jetzt hoffentlich richtig verstehe: Die ucr-Variable muß wie ja schon erwähnt auf dem Memberserver ldap/server/addition die IP des Backup DCs enthalten. Dies scheint ja nicht zu gehen. Die Fehlermeldung is overridden by scope ldap besagt, daß ldap/server/addition über eine Richtlinie gesetzt wird.

Sofern in der UMC aber keine Richtlinie gesetzt ist, die diese Variable enthält, würde ich eine Richtlinie anlegen und die Variable auf die IP des Backup DCs setzten. Sollten die Änderungen nach 2 Stunden nicht übernommen werden, würde ich einen Rejoin des Memberservers in Erwägung ziehen. Vorher würde ich mir aber noch die Datei /var/log/univention/listener.log ansehen.

EDIT: Bezüglich Kerberos: Funktioniert kinit Administrator auf dem Meberserver bei abgeschalteten Master?


#14

Samba hat mit dem openLDAP ja in einer Samba 4-Umgebung ja eher wenig mit zu tun. Wie sieht eigentlich die /etc/samba/smb.conf auf einem Memberserver aus? Ich kann mangels Meberserver nicht selber nachgucken.


#15

Hallo SirTux

besten Dank für die Hilfe und Anregungen. Aber wir driften ab (Samba an sich ist kaum das Problem) und was mir fehlt ist die Grundkonfiguration (Manual, Hilfe, Konfig) damit eine gesamte UCS Domäne (inkl. Samba4 AD) auch ohne Master noch funktioniert!

Ein kurzer (wenige Stunden) Ausfall eines Masters aufgrund von Hardware Ausbau oder Maintenance muss doch ohne Funktionseinbusse für den Rest der Domäne möglich sein!
Selbstverständlich mit der Einschränkug dass keine “Domain Einstellungen” (Benutzer, Gruppen, DNS) während dieser Zeit angelegt oder verändert werden können …

Links zu Dokumenten, Anleitungen, etc. sind herzlich willkommen!

Da ich nächste Woche ausser Haus bin kann ich leider nicht weiter testen. Melde mich (spätestens) danach wieder


#16

Hilft der SDB-Artikel: Fail-safe domain setup? :slight_smile:


#17

Hi Tim (nehme ich an…)

Danke für den Artikel und den Link dazu. Schaut auf den ersten Blick super aus. Werde ich austesten sobald die Zeit es erlaubt :slight_smile:

Grüsse, Radim


#18

Mein Problem ist gelöst. Vielen Dank an alle für die Hilfe!

Es ist mir zwar etwas unverständlich weshalb man eine UCR Variable (kerberos/kdc) löschen muss wo doch alle DNS Service Records betreffend Kerberos korrekt und vollständig vom System angelegt werden, aber ich denke Univention wird auch dies noch hinbekommen.
Ebenso für die fehlende “ldap/server/addition” Variable. An anderer Stelle werden die Backup Server ja auch korrekt registriert :slight_smile:

beste Grüsse, Radim