Samba4 Migration 2. Anlauf

german

#1

wir haben versucht unsere Samba3 Umgebung mit UCS 3.2 auf Samba 4 zu migrieren.

/usr/share/univention-directory-manager-tools/proof_uniqueMembers brachte im Vorfeld bei einem Benutzer die Nachricht:

Checking if users are member of their primary group... Checked 176 posixAccounts, fixed 0 issues. Checking if group-members exist... Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=Domain Admins,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=Domain Users,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=Printer-Admins,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=everyone,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=bib,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=orgakitt,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=biblaus,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=homepage,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=groupware,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'mmustermann' of group 'cn=postille,cn=groups,dc=local,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'smmustermann of group 'cn=vpn,cn=groups,dc=local,dc=hdomaindc=de' Checked 153 posixGroups, fixed 0 issues. There were 11 warning(s)!

Vergeblich habe ich versucht, den doppelten Eintrag zu finden. Ich gehe aber davon aus, das diesem Hinweis nachzugehen ist, wenn die Migration klappen soll, richtig?

Da unser DC keine Samba Dienste anbietet, haben wir zusĂ€tzlichen BDC aufgesetzt. Dort wurde Samba3 installiert, und das inplace Upgrade ausgefĂŒhrt.

ucr set samba4/ignore/mixsetup=yes samba4/ntacl/backend=native samba/debug/level=1 connector/s4/mapping/group/grouptype=false univention-install univention-s4-connector samba-tool domain passwordsettings set --max-pwd-age 0 /usr/share/univention-s4-connector/univention-s4-position-sync --dry-run /usr/share/univention-s4-connector/univention-s4-position-sync univention-run-join-scripts samba-tool dbcheck --fix --yes samba-tool ntacl sysvolreset

Der univention-s4-connector wurde dort offenbar erfolgreich installiert. Die Joinscripte sind mit “successful” durchgelaufen.

Auf einem bestehenden BackupDC kann der Connetor dann nicht mehr in Betrieb genommen werden, und das Join-Script schlÀgt fehl.


Migration auf Samba 4
#2

Hallo,

das habe ich noch nicht so genau verstanden.

Nur am das direkt vorwegzunehmen und so eventuell MissverstÀndnisse auszurÀumen: Es gibt nur einen S4-Connector in einer UCS-Umgebung (UCS@School Szenarien ausgeklammert).

Unter dieser PrĂ€misse: Was fĂŒr DC’s sind in der Umgebung vorhanden und wo lĂ€uft was? :slight_smile:

Mit freundlichen GrĂŒĂŸen,
Tim Petersen


#3

Hallo Herr Petersen,

wir haben folgenden Aufbau:

1x UCS DC ohne Samba Services
1x UCS BDC (soll abgeschaltet werden)
1x UCS BDC (neu installiert, mit samba4connector)
1x UCS Slave Fileserver mit Samba3 (soll auf Samba4 migriert werden), hier laufen auch DHCP und DNS

Den UCS BDC mit Samba4Connector konnten wir erfolgreich aufsetzen. Zumindest sind die Join Scripte erfolgreich abgeschlossen worden.

Der UCS Slave konnte bei unserem bisherigen Versucht nicht gejoint werden. Ich habe jetzt leider das Testszenario zurĂŒckgesetzt. Versuche es aber gerade noch einmal.

mfG
Sebastian


#4

Hallo,

aus dem Wiki:
Migration of the first Samba 3 DC
[
]
Migration of all other Samba 3 DCs
[
]
After the first UCS DC has been upgraded into a Samba 4 DC, all other UCS Samba 3 Servers must be upgraded in turn, starting with UCS DC Backup systems and finishing with UCS DC Slave systems.
On UCS DC Slave systems the upgrade can be initiated by the following commands:

ucr set samba4/ignore/mixsetup=yes \ samba4/ntacl/backend=native \ samba/debug/level=1 univention-install univention-samba4 univention-run-join-scripts --ask-pass
Note that the package univention-s4-connector is not installed on UCS DC Slaves.

Mit freundlichen GrĂŒĂŸen,
Tim Petersen


#5

das ist genau das, was ich versucht habe :slight_smile:


#6

also die Meldung, die auf dem UCS Slave beim Join kommt, lautet:

[code]Partition[DC=local,DC=somedomain,DC=de] objects[500/735] linked_values[0/0]
Failed to apply records: 
/ldb_tdb/ldb_index.c:1216: Failed to re-index objectGUID in CN=Authenticated Users\0ACN
F:1704e085-757b-4b61-8080-cfaebe628f31,CN=Groups,DC=local,DC=somedomain,DC=de - 
/ldb_tdb/ldb_index.c:1
148: unique index violation on objectGUID in CN=Authenticated Users\0ACNF:1704e085-757b-4b61-8080-cfaebe628f31,CN=
Groups,DC=local,DC=somedomain,DC=de: Entry already exists
Failed to commit objects: WERR_GENERAL_FAILURE
ERROR(<type ‘exceptions.TypeError’>): uncaught exception - Failed to process chunk: NT_STATUS_UNSUCCESSFUL
File “/usr/lib/python2.6/dist-packages/samba/netcmd/init.py”, line 175, in _run
return self.run(*args, **kwargs)
File “/usr/lib/python2.6/dist-packages/samba/netcmd/domain.py”, line 560, in run
machinepass=machinepass, use_ntvfs=use_ntvfs, dns_backend=dns_backend)
File “/usr/lib/python2.6/dist-packages/samba/join.py”, line 1220, in join_DC
ctx.do_join()
File “/usr/lib/python2.6/dist-packages/samba/join.py”, line 1102, in do_join
ctx.join_replicate()
File “/usr/lib/python2.6/dist-packages/samba/join.py”, line 842, in join_replicate
replica_flags=ctx.domain_replica_flags)
File “/usr/lib/python2.6/dist-packages/samba/drs_utils.py”, line 256, in replicate
schema=schema, req_level=req_level, req=req)
Provision OK for domain DN DC=local,DC=somedomain,DC=de
Starting replication
Replicating critical objects from the base DN of the domain
Join failed - cleaning up
checking sAMAccountName
removing samaccount: CN=DELPHI,OU=Domain Controllers,DC=local,DC=somedomain,DC=de
Deleted CN=DELPHI,OU=Domain Controllers,DC=local,DC=somedomain,DC=de
Deleted CN=NTDS Settings,CN=DELPHI,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=local,DC=somedomain,DC=de
Deleted CN=DELPHI,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=local,DC=somedomain,DC=de
Failed to join the domain local.somedomain.de.
EXITCODE=1
RUNNING 98univention-pkgdb-tools.inst
EXITCODE=already_executed
RUNNING 98univention-samba4-dns.inst
Samba4 backend database not available yet, exiting joinscript 98univention-samba4-dns.
EXITCODE=1
RUNNING 74univention-samba.uinst
EXITCODE=0

[/code]


#7

Hallo,

es sieht so aus, als wĂŒrde ein conflicted object fĂŒr Authenticated Users existieren und den Join verhindern:
CN=Authenticated Users\0ACNF:1704e085-757b-4b61-8080-cfaebe628f31,CN=Groups,DC=local,DC=somedomain,DC=de
Konflikte können im AD entstehen, wenn Objekte z.B. zeitgleich von verschiedenen DC’s verĂ€ndert werden und sind Teil des Konzepts.

conflicted objects können Sie mit samba-tool bereinigen - das Tool fragt interaktiv welche Variante die richtige ist:

samba-tool check-for-conflicts

Wenn die Objekte keine Unterschiede aufweisen, können Sie den Konflikt alternativ auch direkt (ohne Check ĂŒber samba-tool) entfernen:

ldbdel -H /var/lib/samba/private/sam.ldb "CN=Authenticated Users\0ACNF:1704e085-757b-4b61-8080-cfaebe628f31,CN=Groups,DC=local,DC=somedomain,DC=de"

Da hier keine neue Samba 4 DomĂ€ne provisioniert wird, ist der Datenstand auf dem Backup DC betroffen (Ihr primĂ€rer Samba 4 DC) - das heißt die Daten wĂ€ren dort zu bereinigen.

Mit freundlichen GrĂŒĂŸen,
Tim Petersen


#8

Hallo nochmals,

vielen Dank fĂŒr Ihre Hinweise. Leider kann ich diese Befehle auf den Systemen nicht ausfĂŒhren. Auf dem Backup DC (auf dem der s4connector lĂ€uft) findet der dbcheck keine Fehler. Demzufolge kann ich sie dort auch nicht löschen:

ldbdel -H /var/lib/samba/private/sam.ldb "CN=Authenticated Users\0ACNF:1704e085-757b-4b61-8080-cfaebe628f31,CN=Groups,DC=local,DC=somedomain,DC=de" delete of 'CN=Authenticated Users\0ACNF:1704e085-757b-4b61-8080-cfaebe628f31,CN=Groups,DC=local,DC=somedomain,DC=de' failed - (No such object) objectclass: Cannot delete CN=Authenticated Users\0ACNF:1704e085-757b-4b61-8080-cfaebe628f31,CN=Groups,DC=local,DC=somedomain,DC=de, entry does not exist!

Auf dem DC Slave (der unser Samba3 Domaincontroller war) komme ich gar nicht erst so weit:

[code]samba-tool dbcheck --check-for-conflicts
Searching for dsServiceName in rootDSE failed: operations error at 
/source4/dsdb/samdb/ldb_modules/rootdse.c:518
Failed to find our own NTDS Settings DN in the ldb!
schema_load_init: no schema head present: (skip schema loading)

module schema_load initialization failed : No such object
module rootdse initialization failed : No such object
module samba_dsdb initialization failed : No such object
Unable to load modules for tdb:///var/lib/samba/private/sam.ldb: (null)
ERROR: Failed to connect to DB at None. If this is a really old sam.ldb (before alpha9), then try again with --force-module

ldbdel -H /var/lib/samba/private/sam.ldb “CN=Authenticated Users\0ACNF:1704e085-757b-4b61-8080-cfaebe628f31,CN=Groups,DC=local,DC=somedomain,DC=de”
Searching for dsServiceName in rootDSE failed: operations error at 
/source4/dsdb/samdb/ldb_modules/rootdse.c:518
Failed to find our own NTDS Settings DN in the ldb!
schema_load_init: no schema head present: (skip schema loading)

module schema_load initialization failed : No such object
module rootdse initialization failed : No such object
module samba_dsdb initialization failed : No such object
Unable to load modules for /var/lib/samba/private/sam.ldb: (null)
Failed to connect to /var/lib/samba/private/sam.ldb - (null)[/code]


#9

Hallo,

ist der Status auf dem primÀren Samba 4 DC ansonsten soweit in Ordnung?

univention-s4connector-list-rejected

Mir ist gerade noch aufgefallen, dass die hier problematische Gruppe gar nicht nach Samba 4 synchronisiert werden sollte:

root@master:~# ucr get connector/s4/mapping/group/ignorelist Windows Hosts,Authenticated Users,World Authority,Everyone,Null Authority,Nobody

Gibt es die Gruppe auf dem DC Backup? Wie ist die Variable dort gesetzt?

univention-s4search cn="Authenticated Users" ucr get connector/s4/mapping/group/ignorelist

Mit freundlichen GrĂŒĂŸen,
Tim Petersen


#10

Hallo Herr Petersen,

nachdem immer wieder neue Fehler aufgetreten sind, habe ich jetzt noch einmal ganz von vorne begonnen. Auf dem DC Backup scheint bei der Installation des Connectors doch etwas schief zu laufen. Die Installation wurde mit

univention-install univention-s4connector

angeworfen. Der erste Fehler tritt im Abschnitt MSGPO auf. Es dauert eine Weile:

Wating for activation of the extension object msgpo:.......................................................................................ERROR ERROR: Master did not mark the extension object active within 180 seconds. ucs_registerLDAPExtension: registration of /usr/share/univention-s4-connector/ldap/msgpo.schema failed. Joinscript 97univention-s4-connector.inst finished with exitcode 1 Stopping univention-s4-connector daemon failed. Starting univention-s4-connector daemon. done.
Ich habe den DC Backup mit installiertem Connector bis dahin keinen join versucht. Die DB Checks laufen alle ok durch:

samba-tool dbcheck --fix --yes Checking 488 objects Checked 488 objects (0 errors) samba-tool dbcheck --check-for-conflicts Checking 597 objects Checked 507 objects (0 errors)

Da auf dem DC Master kein Samba installiert ist, sind dort die Variablen nicht gesetzt.
Auf dem DC Backup bringt

ucr get connector/s4/mapping/group/ignorelist Windows Hosts,Authenticated Users,World Authority,Everyone,Null Authority,Nobody,Enterprise Domain Controllers,Remote Interactive Logon,SChannel Authentication,Digest Authentication,Terminal Server User,NTLM Authentication,Other Organization,This Organization,Anonymous Logon,Network Service,Creator Group,Creator Owner,Local Service,Owner Rights,Interactive,Restricted,Network,Service,Dialup,System,Batch,Proxy,IUSR,Self
und die Suche nach der Gruppe bringt tatsÀchlich ein Ergebnis:

[code]# record 1
dn: CN=Authenticated Users,CN=Groups,DC=local,DC=somedomain,DC=de
objectClass: top
objectClass: group
cn: Authenticated Users
instanceType: 4
whenCreated: 20141016130411.0Z
whenChanged: 20141016130411.0Z
uSNCreated: 4304
uSNChanged: 4304
name: Authenticated Users
objectGUID: c6544759-b470-4531-932a-dd3331de07a0
objectSid: S-1-5-11
sAMAccountName: Authenticated Users
sAMAccountType: 268435456
groupType: -2147483646
objectCategory: CN=Group,CN=Schema,CN=Configuration,DC=local,DC=somedomain,DC=de
distinguishedName: CN=Authenticated Users,CN=Groups,DC=local,DC=somedomain,DC=de

Referral

ref: ldap://local.somedomain.de/CN=Configuration,DC=local,DC=somedomain,DC=de

Referral

ref: ldap://local.somedomain.de/DC=DomainDnsZones,DC=local,DC=somedomain,DC=de

Referral

ref: ldap://local.somedomain.de/DC=ForestDnsZones,DC=local,DC=somedomain,DC=de

returned 4 records

1 entries

3 referrals[/code]

Soweit so gut. Leider kann ich mich jetzt aber nicht mehr am LDAP als Administrator in irgend einer Form anmelden :frowning: Der Join klappt also wieder nicht.

[code]univention-run-join-scripts
Enter DC Master Account : Administrator
Enter DC Master Password:

Search LDAP binddn Permission denied, please try again.
[/code]


#11

Hallo,

das habe ich so leider ĂŒberhaupt noch nicht gesehen
 die Tatsache dass der “Administrator”-Account augenscheinlich sein Passwort verliert, ist besonders merkwĂŒrdig - gibt es zufĂ€llig ein weiteres AD-System in der Umgebung?

Mit freundlichen GrĂŒĂŸen,
Tim Petersen


#12

Hallo nochmals,

nein. Es gibt kein weiteres AD system. Die Testumgebung lĂ€uft isloiert in einem NAT (UCS als KVM Virtualisierungsserver). Ich habe die IPs und Netzwerke der VMs entsprechend angepasst und die Namensauflösung geprĂŒft. Allerdings kann man die Systeme in der produktiv Umgebung ĂŒber ihre IPs erreichen. Aber auch dort gibt es keinen AD Server.

Ich konnte das Passwort inzwischen zurĂŒcksetzen. Der Join des DC Backup mit dem S4 Connector lief erfolgreich durch.

Aber wie bereits ganz am Anfang bekomme ich den DC Slave mit Samba 4 nicht in die Domain. Der Join hĂ€ngt wieder an der gleichen Stelle mit “Authenticated Users”. Sobald ich den join versuche, wird auf dem DC Backup mit dem S4Connector ein Konflikt angezeigt.

[code]univention-s4connector-list-rejected
UCS rejected

1:   UCS DN: cn=Subschema
      S4 DN: <not found>
     Filename: /var/lib/univention-connector/s4/1413465597.050774

S4 rejected

last synced USN: 5761

[/code]


#13

Der Reject (vgl. CNF/Conflict ist etwas anderes) ist denke ich nicht so entscheidend, das habe ich an anderer Stelle bereits (ohne negative Auswirkungen) gesehen.

MerkwĂŒrdig bleibt, dass die Gruppe Authenticated Users auf dem S4 DC ĂŒberhaupt nach S4 synchronisiert wurde.
Ich gehe davon aus, dass es sich bei der Testumgebung um einen Klon der Produktivumgebung und nicht um neue Systeme mit frischem Datenstand handelt?

Sie können natĂŒrlich versuchen, die Gruppe im S4 zu löschen (denn da gehört sie nicht hin - siehe ignore filter) und den Join zu wiederholen, etc.
Alternativ können Sie einmal versuchen nachzuvollziehen, warum die Gruppe initial synchronisiert wurde - taucht sie namentlich in der connector-s4.log auf?

Mit freundlichen GrĂŒĂŸen,
Tim Petersen


#14

Hallo nochmals,

ja es ist ein Abbild unserer Produktivumgebung. Wir haben seinerzeit mit UCS 2.3 gestartet.

Die “Authenticated Users” Gruppe taucht nicht im connector-s4.log auf. Auf dem S4 connector Server kriege ich sie auch nicht zu fassen (siehe weiter oben). Meinen Sie im LDAP löschen?
Die ignore Filter waren ja auch korrekt gesetzt.

Allerdings habe ich einige Tracebacks im connector-s4.log gefunden. Kann ich Ihnen das zukommen lassen? Es ist ja gespickt mit Daten aus unserer Umgebung :slight_smile:

Beste GrĂŒĂŸe

Sebastian


#15

Hallo,

ja, senden Sie uns das Logfile gern per E-Mail an feedback@univention.de

Viele GrĂŒĂŸe,
Tim Petersen


#16

Hallo,

ich habe mir die Daten angesehen.
Leider kann ich die genaue Ursache leider so nicht ohne weiteres erkennen - in den Samba 4 Migrationen die ich bisher betreut und analysiert habe, habe ich dieses Fehlerbild noch nicht gesehen (der in Ihrer E-Mail erwĂ€hnte Bug bezieht sich ausschließlich auf UCS@School spezifische Eigenarten die hier nicht vorkommen dĂŒrften).

Ich glaube, dass man sich die Umgebung sehr genau anschauen muss, um alle möglichen Fehlerquellen ausschließen zu können.
Wir können Ihnen hierzu gern mögliche Partner empfehlen - ich schlage vor, dass Sie sich diesbezĂŒglich an sales@univention.de wenden.

Viele GrĂŒĂŸe,
Tim Petersen


#17

Wurde das Problem behoben und wenn ja wie?


#18

Hallo in die Runde,

inzwischen konnten wir in unserer Testumgebung die Migration erfolgreich durchfĂŒhren. Wir sind wie folgt vorgegangen

UCS DC

[code]# Samba 3 Installieren
univention-install univention-samba
ucr set samba4/ignore/mixsetup=yes samba4/ntacl/backend=native samba/debug/level=1 connector/s4/mapping/group/grouptype=false
univention-install univention-s4-connector
samba-tool domain passwordsettings set --max-pwd-age 0
/usr/share/univention-s4-connector/univention-s4-position-sync --dry-run
/usr/share/univention-s4-connector/univention-s4-position-sync
univention-run-join-scripts
samba-tool dbcheck --fix --yes
samba-tool ntacl sysvolreset

Samba Passwort Datenbank aufrĂ€umen, wg. “Authenticated Users” Eintrag

/etc/init.d/samba-ad-dc stop
ldbdel -H /var/lib/samba/private/sam.ldb.d/DC%3DSOME,DC%3DOMAIN,DC%3DE.ldb “cn=Authenticated Users,cn=groups,dc=some,dc=domain,dc=de” cn=Administrator,cn=users,dc=domain,dc=de"
/etc/init.d/samba-ad-dc start
[/code]

UCS DC-Slave

[code]ucr set samba4/ignore/mixsetup=yes samba4/ntacl/backend=native samba/debug/level=1 connector/s4/mapping/group/grouptype=false
univention-install univention-samba4

u.U. wird das Machinen Passwort nicht richtig abgeglichen, weshalb der Join fehlschlÀgt.

univention-run-join-scripts -dcname ucsmaster.some.domain.de -dcaccount Administrator
[/code]
Danach ist auf den Rechnern Samba4 installiert und einsatzbereit. Die Anmeldung eines Windows Clients in die Testumgebung klappte auf Anhieb, ohne zusÀtzlichen Join.

Als einziges “Problem” haben wir einen einzigen Benutzeraccount, der ganz am Anfang schon durch die PrĂŒfung von

/usr/share/univention-directory-manager-tools/proof_uniqueMembers

gefallen ist:

Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=Domain Admins,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=Domain Users,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=Printer-Admins,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=everyone,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=bib,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=orgakitt,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=biblaus,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=groupware,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=postille,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=vpn,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=wpadmins,cn=groups,dc=some,dc=domain,dc=de' Warning: Manual: Multiple members for UID 'audiolinux' of group 'cn=iteam,cn=groups,dc=some,dc=domain,dc=de'

In der Testumgebung Ă€ußerte sich das so, das Dateien, die mit diesem Benutzer an einem Windows PC angelegt wurden, auf Linux-Ebene die Benutzer ID 300000 bekamen. Deshalb ist meine Vermutung, das etwas mit dem IDMAP nicht funktioniert. Aber wo kann man diese EintrĂ€ge korrigieren?

lG
Sebastian


#19

Das Listener Modul samba4-idmap pflegt das IDMAP. Von daher könnten in der listener.log weitere Infos stehen. Mit ldbedit -H /var/lib/samba/private/idmap.ldb kann die Datenbank auch direkt bearbeitet werden.