Bug 29083 - Reinstall eines Samba 4 Servers
Reinstall eines Samba 4 Servers
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Samba4
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.1-0-errata
Assigned To: Arvid Requate
Stefan Gohmann
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-11-06 20:38 CET by Arvid Requate
Modified: 2013-01-29 13:23 CET (History)
4 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:
requate: Patch_Available+


Attachments
kerberos-retry.patch (26.02 KB, patch)
2012-11-13 12:33 CET, Arvid Requate
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Arvid Requate univentionstaff 2012-11-06 20:38:57 CET
Der in Bug #25393 Comment 4 beschriebene Workaround funktioniert nicht für allgemeinere Problem der Neuinstallation eines DCs under gleichem Namen (wo dann die alte keytab nicht zur Verfügung steht).

Wir warten hier noch auf einen upstream commit.

+++ This bug was initially created as a clone of Bug #25393 +++
Comment 1 Arvid Requate univentionstaff 2012-11-13 12:33:36 CET
Created attachment 4786 [details]
kerberos-retry.patch
Comment 2 Ingo Steuwer univentionstaff 2012-11-28 11:19:54 CET
Wurde bei einem Kunden im Rahmen von 2012112021000764 kommuniziert (UCS 3.0-2)
Comment 3 Arvid Requate univentionstaff 2012-11-28 11:53:29 CET
Zusätzlich zu dem Kerberos Keyversion Problem tritt hier auch Bug 28373 in verschärfter Form auf: Wenn ein Samba4 DC ausfällt ond durch einen neuen ersetzt wird geht der nur lokal auf dem DC gepfegte Zählerstand "rIDNextRID" verlohren.

Wenn der Samba4 DC beim Join per --keep-existing das alte DC-Konto weiter verwendet, dann behält er auch seinen "rIDAllocationPool". Aus diesem Pool werden lokal angelegte Samba4-Konten mit RIDs versorgt (z.B. das dns-service Konto). Wenn der Zählerstand "rIDNextRID" verlohren geht, dann versucht der DC beim anlegen neuer Benutzer schon vergebene RIDs zu verwenden, sodass das Anlegen von Benutzern scheitert.

Die einfachste Lösung wäre hier, die Option "--keep-existing" nur dann zu verwenden, wenn das System schonmal gejoined war, und eine lokale sam.ldb hat.
z.B.

 samba_join_options=()
 if [ -n "$samba4_ldap_base" ] && \
 ldbsearch -H  /var/lib/samba/private/sam.ldb -b "$samba4_ldap_base" \
           -s base dn 2>/dev/null | grep -qi ^"dn: $samba4_ldap_base"
 then
     samba_join_options+=(--keep-existing)
 fi
Comment 4 Arvid Requate univentionstaff 2012-12-01 12:20:23 CET
Beim Re-Install eines DCs unter gleichem Namen sollte dieser die dns/alias Objekte folgenden Musters entfernen, falls sie eine Alias für den eigenen FQDN sind:

 relativeDomainName=[^.]*._msdcs

Diese Records enthalten eine GUID, die das SAM/LDB-Datenbestand eines DCs identifiziert und anscheinend bei jedem Join wechselt. Während Samba 4 selbst beim join ohne --keep-existing diese GUID aus dem Samba 4 Verzeichnis löscht, verbleiben diese dann noch im DNS.
Comment 5 Arvid Requate univentionstaff 2012-12-18 18:29:30 CET
Der Lösungs-Ansatz aus Comment 3 ist jetzt umgesetzt: Nur wenn der eigene System-Account lokal schon in der sam.ldb auffindbar ist, wird beim samba join die Option --keep-exisitng verwendet.

Außerdem wird vor dem Aufruf von "samba-tool domain join" DNS alias records mit relativeDomainName=[^.]*._msdcs entfernt, die den FQDN des joinenden DCs referenzieren. Das deckt insbesondere Bug 29504 mit ab.

Advisory: 2012-12-18-univention-samba4.yaml
Comment 6 Stefan Gohmann univentionstaff 2013-01-28 17:30:46 CET
OK, soweit funktioniert es. Da wir noch keine neue DVD haben, ist die Reihenfolge so:

 1. Neuinstallation Slave mit S4 und der alten DVD
 2. Direktes Joinen beim Installieren
 3. Einspielen der errata Updates
 4. Erneutes Joinen

Zwischen 3 und 4 muss jetzt noch einmal /var/lib/samba/private gelöscht werden. ein Hinweis sollte in die YAML Datei aufgenommen werden.

Alternativ hätte man auch /var/lib/samba/private beim Join automatisch löschen können, das ist aber für einige Szenarien ungünstig, da der Server eine neue RID bekommt.
Comment 7 Arvid Requate univentionstaff 2013-01-28 19:54:27 CET
Advisory und changelog-3.1-1 sind entsprechend angepasst.
In meinen Tests hatte ich das Errata immer vor dem initialen Join des neu installierten Slaves eingespielt, aber das ist unter anderem wegen der Repository-Server-IP ggf. in der Praxis zu kompliziert.
Comment 8 Stefan Gohmann univentionstaff 2013-01-29 07:48:53 CET
(In reply to comment #7)
> Advisory und changelog-3.1-1 sind entsprechend angepasst.
> In meinen Tests hatte ich das Errata immer vor dem initialen Join des neu
> installierten Slaves eingespielt, aber das ist unter anderem wegen der
> Repository-Server-IP ggf. in der Praxis zu kompliziert.

Genau, sobald es eine neue DVD gibt funktioniert es. Alternativ bei der Installation nicht joinen, Updates einspielen und dann joinen.


→ Verified
Comment 9 Moritz Muehlenhoff univentionstaff 2013-01-29 13:23:29 CET
http://errata.univention.de/3.1-errata27.html