Bug 26522 - Synchronisation des sysvol
Synchronisation des sysvol
Status: CLOSED FIXED
Product: UCS@school
Classification: Unclassified
Component: Samba
UCS@school 3.0
Other Linux
: P5 normal (vote)
: UCS@school 3.0 MS2
Assigned To: Stefan Gohmann
Arvid Requate
:
Depends on: 26926
Blocks: 27249 27250
  Show dependency treegraph
 
Reported: 2012-03-15 11:03 CET by Stefan Gohmann
Modified: 2012-06-11 06:29 CEST (History)
1 user (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:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Gohmann univentionstaff 2012-03-15 11:03:03 CET
In UCS@school wurde die Synchronisation der Netlogon-Shares deaktiviert bzw. auf download konfiguriert, so dass Änderungen vom Master synchronisiert wurden.

Die eigentlichen Skripte für die Benutzer werden lokal auf dem Slave generiert.

Das müsste im S4 Setup ebenfalls abgebildet werden.
Comment 1 Arvid Requate univentionstaff 2012-03-15 12:58:13 CET
Da bei deaktiverter DRS-Replikation die GPOs und GPO-Versionen im Samba4-Verteichnis mit denen im sysvol auseinanderlaufen können, wäre zu überlegen, ob die sysvol-Replikation nicht komplett deaktivert wird, indem z.B. samba4/sysvol/sync/host nicht/leer gesetzt wird.
Comment 2 Stefan Gohmann univentionstaff 2012-04-18 14:07:44 CEST
(In reply to comment #1)
> Da bei deaktiverter DRS-Replikation die GPOs und GPO-Versionen im
> Samba4-Verteichnis mit denen im sysvol auseinanderlaufen können, wäre zu
> überlegen, ob die sysvol-Replikation nicht komplett deaktivert wird, indem z.B.
> samba4/sysvol/sync/host nicht/leer gesetzt wird.

Wir sollten die GPO Informationen durch den Connector replizieren.
Comment 3 Stefan Gohmann univentionstaff 2012-04-18 14:08:58 CEST
(In reply to comment #0)
> In UCS@school wurde die Synchronisation der Netlogon-Shares deaktiviert bzw.
> auf download konfiguriert, so dass Änderungen vom Master synchronisiert wurden.
> 
> Die eigentlichen Skripte für die Benutzer werden lokal auf dem Slave generiert.
> 
> Das müsste im S4 Setup ebenfalls abgebildet werden.

Es sollte dann auf dem Slave verhindert werden, dass die GPOs angepasst werden. Vielleicht kann einfach das Share Read-Only sein?
Comment 4 Stefan Gohmann univentionstaff 2012-04-26 14:54:26 CEST
Es wird ein weiteres UDM Modul für die GPO selbst benötigt:

dn: CN={7FF64F40-713A-4B60-9DD9-3BFDB7C2D103},CN=Policies,CN=System,DC=deadlock10,DC=local
objectClass: top
objectClass: container
objectClass: groupPolicyContainer
cn: {7FF64F40-713A-4B60-9DD9-3BFDB7C2D103}
instanceType: 4
name: {7FF64F40-713A-4B60-9DD9-3BFDB7C2D103}
gPCFileSysPath: \\deadlock10.local\SysVol\deadlock10.local\Policies\{7FF64F40-71
 3A-4B60-9DD9-3BFDB7C2D103}
gPCFunctionalityVersion: 2
flags: 0
displayName: s
versionNumber: 65536
gPCUserExtensionNames: [{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{D02B1F73-3407-4
 8AE-BA88-E8213C6761F1}]


An der OU wird dann entsprechend der Link gespeichert:

dn: OU=school1,DC=deadlock10,DC=local
gPLink: [LDAP://CN={7FF64F40-713A-4B60-9DD9-3BFDB7C2D103},CN=Policies,CN=Syste
 m,DC=deadlock10,DC=local;0]


Die Synchronisation dieser Attribute sollte per UCR deaktivierbar sein, falls in den Schulen eigenständig die Attribute gepflegt werden sollen.
Comment 5 Stefan Gohmann univentionstaff 2012-05-03 08:28:01 CEST
Die Synchronisation der GPO Attribute kann jetzt per UCR (connector/s4/mapping/gpo) deaktiviert werden. Default ist true.

Wenn die sysvol Synchronisation deaktiviert werden soll, dann kann die UCR Variable samba4/sysvol/sync/cron mit '#' beginnen, beispielsweise:
 ucr set samba4/sysvol/sync/cron="#*/5 * * * *"
Comment 6 Stefan Gohmann univentionstaff 2012-05-03 13:57:24 CEST
In einem Test wurden die Container cn=system und cn=policies,cn=system nicht automatisch im UCS LDAP angelegt.
Comment 7 Stefan Gohmann univentionstaff 2012-05-08 14:59:30 CEST
(In reply to comment #5)
> Die Synchronisation der GPO Attribute kann jetzt per UCR
> (connector/s4/mapping/gpo) deaktiviert werden. Default ist true.
> 
> Wenn die sysvol Synchronisation deaktiviert werden soll, dann kann die UCR
> Variable samba4/sysvol/sync/cron mit '#' beginnen, beispielsweise:
>  ucr set samba4/sysvol/sync/cron="#*/5 * * * *"

Mit samba/share/sysvol/readonly=yes wird das sysvol Share read only eingebunden.

Wenn die GPOs eigenständig auf den Schul-DCs gepflegt werden sollen, dann sind die folgenden Einstellungen notwendig:

ucr set connector/s4/mapping/gpo=false \
        samba4/sysvol/sync/cron="#*/5 * * * *" \
        samba/share/sysvol/readonly=no
Comment 8 Stefan Gohmann univentionstaff 2012-05-08 16:03:23 CEST
(In reply to comment #6)
> In einem Test wurden die Container cn=system und cn=policies,cn=system nicht
> automatisch im UCS LDAP angelegt.

Dafür gibt es jetzt einen eigenen Bug: Bug #27042.
Comment 9 Stefan Gohmann univentionstaff 2012-05-09 08:05:54 CEST
Die Änderungen sind umgesetzt
Comment 10 Stefan Gohmann univentionstaff 2012-05-23 11:53:46 CEST
Auf den Slaves wird aktuell samba4/sysvol/sync/host nicht gesetzt. Die Synchronisation sollte über den Master erfolgen (unabhängig, ob dort Samba 4 installiert ist).

Folgende Vorgehensweise:
 - Auf dem Master wird das sysvol-Share angelegt (per ucs-school-master)
 - Auf den Slaves wird der Master als sync host gesetzt
 - Zukünftig sollte ein UCS System den Service SYSVOL bekommen können (aktuell wird der S4 Connector Server verwendet.
Comment 11 Stefan Gohmann univentionstaff 2012-05-23 12:33:42 CEST
(In reply to comment #10)
> Auf den Slaves wird aktuell samba4/sysvol/sync/host nicht gesetzt. Die
> Synchronisation sollte über den Master erfolgen (unabhängig, ob dort Samba 4
> installiert ist).
> 
> Folgende Vorgehensweise:
>  - Auf dem Master wird das sysvol-Share angelegt (per ucs-school-master)
>  - Auf den Slaves wird der Master als sync host gesetzt
>  - Zukünftig sollte ein UCS System den Service SYSVOL bekommen können (aktuell
> wird der S4 Connector Server verwendet.

Zusätzlich muss auf dem Master der cron-Job und das sysvol-sync Skript installiert werden. Deshalb sollte der Teil aus dem univention-samba4 Paket ausgegliedert werden.
Comment 12 Stefan Gohmann univentionstaff 2012-05-24 08:29:11 CEST
Per Default wird jetzt der Master als sysvol Sync Host verwendet.
Comment 13 Arvid Requate univentionstaff 2012-05-24 20:51:33 CEST
Verified:
 * ucs-school-master zieht univention-samba4-sysvol-sync nach
 * Changelog OK
 * Replikation auf Dateisystemebene scheint zu funktionieren, Ich hatte schon extra direkt etwas mehr logging (rsync -v) in /var/log/univention/sysvol-sync.log eingebaut, das sieht ok aus.


=== Testaufbau: ===

Von Windows7 Client aus wurden in SITE1 folgende GPOs und GPO Links angelegt:
 1. GPO Objekt gpo1site1 im Container "Gruppenrichtlinenobjekte" / "Group Policy Objects"
 2. Dieses Objekt wurde im nächsten Schritt mit der SITE1 verknüpft
 3. GPO Objekt gpo2site1 im Container "Gruppenrichtlinenobjekte" / "Group Policy Objects"
 4. Dieses Objekt wurde im nächsten Schritt mit der Domäne verknüpft

Login als testschueler1 an Client in SITE1 OK
Die beiden GPOs (Lautstärkesymbol weg, "Bilder" link aus Starmenü entfernen) werden am Windows 7 Client in SITE1 korrekt ausgewertet.

Ein zweiter Windows7 Client (Besonderheit: win7pro english) wurde in SITE2 gejoined. Dafür wurde explizit vorübergehend der DC in SITE1 ausgeschaltet (samba4 stop), da beide im gleichen Subnetz sind (ohne diese Massname wurde der Client immer in SITE1 gejoined..).

Login als testschueler2 an Client in SITE2 OK


=== Failed: ===

1. Nach login mit Domänenbenutzer an Client@SITE2, kann man zwar erfolgreich "gpupdate /force" ausführen, aber die Domänen-GPO wird nicht ausgewertet.

2. Der GPO-Editor gibt eine eine Fehlermeldung mit Link auf folgenden MS-Knowledgebase Artikel:

http://support.microsoft.com/default.aspx?scid=kb;en-us;828760

Am Client in SITE2 werden die Objekte zu "gpo1site1" und "gpo2site1" im GPO-Editor-Baum beide als "[Name not available]" dargestellt und der Link am Domänenobjekt zum gpo2site1 Objekt fehlt.


=== Testumgebung steht noch: ===

Master ohne S4: 10.200.8.158 (VM arequate_schoolM0)
DC Slave "slave" in SITE1: 10.200.8.142 (VM arequate_ucs3s4x1DCS142)
DC Slave "otherhost" in SITE2: 10.200.8.152 (VM arequate_ucs3s4x2.152)
"win7pro" in SITE1: 10.200.8.231 (VM arequate_Win7SP1.231)
"win7pro1" in SITE2: 10.200.8.100 (VM arequate_Win7_Pro32)


=== Bisherige Analyse: ===

Ein Vergleich der Datei-ACLs (Posix, FACL und FATTR) zeigen auf den ersten Blick keinen Unterschied.

Man sieht in sam.ldb der SITE2, das z.B. am replizierten gpo2site1-Objekt folgende Attribute fehlen:
dn: CN={1F41DE20-0DF4-485C-ACE5-79952DFDF4DE},CN=Policies,CN=System,$ldap_base
displayName: gpo2site1
gPCUserExtensionNames: [{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{D02B1F73-3407-4
 8AE-BA88-E8213C6761F1}]

Ausserdem fehlt der Link am Domänenobjekt:
gPLink: [LDAP://cn={1F41DE20-0DF4-485C-ACE5-79952DFDF4DE},cn=policies,cn=syste
 m,DC=nos4,DC=local;0][LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Pol
 icies,CN=System,DC=nos4,DC=local;0]
Comment 14 Arvid Requate univentionstaff 2012-05-24 20:56:06 CEST
Note: In SITE2 habe ich jetzt noch einen zweiten Win7 Client (deutsch) gejoined, da sind aber die RSAT noch nicht installiert (VM arequate_win7-125, host "win7125").
Comment 15 Stefan Gohmann univentionstaff 2012-05-25 09:16:53 CEST
(In reply to comment #13)
> Man sieht in sam.ldb der SITE2, das z.B. am replizierten gpo2site1-Objekt
> folgende Attribute fehlen:
> dn: CN={1F41DE20-0DF4-485C-ACE5-79952DFDF4DE},CN=Policies,CN=System,$ldap_base
> displayName: gpo2site1
> gPCUserExtensionNames: [{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{D02B1F73-3407-4
>  8AE-BA88-E8213C6761F1}]

Die beiden Attribute habe ich noch ins Mapping und das UDM Modul aufgenommen.
 
> Ausserdem fehlt der Link am Domänenobjekt:
> gPLink: [LDAP://cn={1F41DE20-0DF4-485C-ACE5-79952DFDF4DE},cn=policies,cn=syste
>  m,DC=nos4,DC=local;0][LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Pol
>  icies,CN=System,DC=nos4,DC=local;0]

Das konnte ich nicht nachvollziehen. Ich habe deine aktuellen Systeme gestartet und dort sah es auch gut aus:

------------------------------------------------------------------------------
root@slave:~# univention-ldapsearch -s base -LLL msGPOLink
dn: dc=nos4,dc=local
msGPOLink: [LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=Sy
 stem,DC=nos4,DC=local;0]

root@slave:~# univention-s4search -s base gPLink
# record 1
dn: DC=nos4,DC=local
gPLink: [LDAP://cn={1F41DE20-0DF4-485C-ACE5-79952DFDF4DE},cn=policies,cn=syste
 m,DC=nos4,DC=local;0][LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Pol
 icies,CN=System,DC=nos4,DC=local;0]

# returned 1 records
# 1 entries
# 0 referrals
root@slave:~# 
------------------------------------------------------------------------------

------------------------------------------------------------------------------
root@otherhost:~# univention-ldapsearch -s base -LLL msGPOLink
dn: dc=nos4,dc=local
msGPOLink: [LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=Sy
 stem,DC=nos4,DC=local;0]

root@otherhost:~# univention-s4search -s base gPLink
# record 1
dn: DC=nos4,DC=local
gPLink: [LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=Syste
 m,DC=nos4,DC=local;0]

# returned 1 records
# 1 entries
# 0 referrals
root@otherhost:~# 
------------------------------------------------------------------------------


Folgender Aufbau war bei mir erfolgreich:

- Master ohne S4
- Schul-Slave mit S4 school1
- Schul-Slave mit S4 school2

Die beiden Schul-Server stehen in eigenen Subnetzen. 10.200.32/24 und 10.201/16.

Vorgehen:
- Join der Slaves
- Join Win7 jeweils in die Sites
- Join W2k8r2 mit AD Tols in Site2
- Modifizieren der Default Domain GPO auf dem W2k8r2

- gpupdate auf beiden Win7 Clients ausgeführt, diese wurde angewendet (Benutzereinstellung -Taskleiste fixieren)

- Erstellen einer GPO für ou school2

- gpupdate auf beiden Win7 Clients ausgeführt, diese wurde erwartungsgemäß nur auf dem school2 Win7 Client angewendet (Benutzereinstellung - Lautstärkesymbol entfernen)

- Installation Win7 englisch und Joinen in Site school1. Die Default Domain GPO wurde erfolgreich angewendet.

- Anmeldung als Domänenadministrator und Installation Remote ADS Tools

- Erstellen einer GPO mit dme englischen AD für Site school1. Die Policy wurde korrekt angewendet (Hilfe aus der Startleiste entfernen).
Comment 16 Arvid Requate univentionstaff 2012-05-25 15:29:49 CEST
Verified:
 * GPOs konnten an beiden Sites angelegt, ausgewertet und bearbeitet werden.
 * Der gPLink am Domänenobjekt fehlte, weil ich ihn erst nach dem Join des DC an SITE2 gesetzt hatte. Dafür gibt es jetzt Bug 27294. Wenn man ihn z.B. per UDM CLI auf dem Master anlegt, wird die entsprechende GP an beiden sites ausgewertet.
Comment 17 Stefan Gohmann univentionstaff 2012-06-11 06:29:23 CEST
UCS@school 3.0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer  neueren Version von UCS@school erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"