
Die Erkenntnis, dass ich in die Importsubstitution geraten bin, kam nicht sofort. Erst als die frischen PC-Lieferungen von der ĂŒbergeordneten Organisation stabil mit dem âAlt Linuxâ-Distribution eintrafen, ahnte ich, dass etwas nicht stimmte.
Doch im Laufe des Prozesses der Akzeptanz des Unvermeidlichen bin ich hineingezogen worden und habe sogar ein wenig Freude am Prozess gefunden. Irgendwann dachte ich, dass es angesichts des Tempos nur eine Frage der Zeit sei, bis ich mich von den Lösungen zur Organisation des Verzeichnisdienstes von Microsoft trennen und mich in Richtung von etwas Exotischerem bewegen mĂŒsse. Daher wurde entschieden, um mich auf das Unvermeidliche vorzubereiten und möglichst viele Stolpersteine zu entdecken, einen Teststand einzurichten, der Folgendes umfasst:
- DC1 â Windows Server 2012R2
- DC2 â Alt Server 8.2
- File Server â Windows Server 2012R2
- PC1 â Windows 7
- PC2 â Alt Arbeitsplatz 8.2
Aufgaben des Standes:
- Ein DomĂ€ne auf Basis von w2k12r2 aufbauen. Eine minimale Sammlung von Gruppenrichtlinien erstellen (Ă€hnlich den verwendeten in der Arbeitsinfrastruktur), einschlieĂlich der Richtlinie zur Umleitung der Benutzerarbeitsordner (Downloads/Dokumente/Arbeitsplatz). Am Ende möchte ich, dass der Benutzer beim Wechsel des Arbeitsplatzes von Windows zu Linux und zurĂŒck komfortabel auf seine Arbeitsdokumente zugreifen kann.
- EinfĂŒhrung von Samba DC als zweiten Controller. ĂberprĂŒfung der Replikation des Verzeichnisdienstes und DNS.
- Konfiguration von Linux-Clients zur Arbeit mit verschiebbaren Ordnern.
Umsetzung:
- Installation und Inbetriebnahme des neuen Controllers.Bei der Installation von MS Windows 2012R2 ist alles einfach und mehr oder weniger verstĂ€ndlich. Es gibt 1001 Anleitungen im Internet, um eine DomĂ€ne unter Windows sowohl via GUI als auch mit Powershell aufzubauen, daher werde ich nicht alles wiederholen, sondern nur auf die offizielle Dokumentation verweisen, fĂŒr Interessierte und diejenigen, die ihr GedĂ€chtnis auffrischen möchten. Doch es gibt einen wichtigen Punkt in diesem Abschnitt. Heute kann Samba nicht mit Verzeichnisdienst-Schemata höher als 2008R2 arbeiten.
Genauer gesagt, haben die Entwickler diese UnterstĂŒtzung als experimentell deklariert. Aber in der Praxis wird der Versuch, Samba als zweiten DC in eine bestehende Windows-DomĂ€ne mit Schema 69 einzufĂŒhren, mit dem folgenden Fehler konfrontiert werden.
Spoiler-Ăberschrift DsAddEntry failed with status WERR_ACCESS_DENIED info (8567, âWERR_DS_INCOMPATIBLE_VERSIONâ)
DsAddEntry failed with status WERR_ACCESS_DENIED info (8567, âWERR_DS_INCOMPATIBLE_VERSIONâ)
Das Problem ist, dass Windows 2012 und 2012R2 WMI-Tools zur Verwaltung von DomĂ€nen und Forests verwenden, deren stabile UnterstĂŒtzung erst fĂŒr die Version Samba 4.11 angekĂŒndigt wurde, die bis Ende dieses Jahres erscheinen soll.
Daraus folgt, dass die einzige Möglichkeit, Samba in eine auf dem 2012R2-Server bereitgestellte AD-DomĂ€ne einzufĂŒhren, ein Downgrade des Schemas von 69 auf 47 ist. NatĂŒrlich sollte man das in einer Produktionsumgebung ohne triftigen Grund nicht tun, aber wir haben hier eine Testumgebung, also warum eigentlich nicht.Wir installieren Alt Server 8.2. WĂ€hrend der Installation wĂ€hlen wir das Profil âSamba-DC-Server (AD-Controller)â. Auf dem bereitgestellten Server fĂŒhren wir ein vollstĂ€ndiges Systemupdate durch und installieren das Paket task-samba-dc, das alles Notwendige mit sich zieht.
# apt-get install task-samba-dcFalls task-samba-dc entgegen den Behauptungen der Alt-Dokumentation nicht alles Notwendige installieren möchte.
# apt-get install python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-common-libs libpytalloc-develAls NĂ€chstes gehen wir zur Konfiguration von Kerberos und zur Beantragung eines Tickets ĂŒber. Wir öffnen die Datei krb5.conf, gehen zum Abschnitt [libdefaults] und bringen ihn in die folgende Form:
# vim /etc/krb5.confdns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCALWir fordern ein Ticket an.
# kinit administrator Password for administrator@TEST.LOCAL:Wir ĂŒberprĂŒfen die Liste der erhaltenen Kerberos-Tickets.
# klist Ticket cache: KEYRING:persistent:0:0 Default principal: administrator@TEST.LOCAL Valid starting Expires Service principal 16.05.2019 11:51:38 16.05.2019 21:51:38 krbtgt/TEST.LOCAL@TEST.LOCAL renew until 23.05.2019 11:51:35Nun löschen oder benennen wir die vorhandene Samba-Konfiguration um.
# mv smb.conf smb.conf.bak1Und schlieĂlich fĂŒgen wir den zweiten Controller in die AD-DomĂ€ne ein:
# samba-tool domain join test.local DC -U"TESTadministrator"Der erfolgreiche Eintrag wird mit folgendem Protokoll begleitet.
Suche nach einem beschreibbaren DC fĂŒr die DomĂ€ne 'test.local' Gefundener DC DC1.TEST.LOCAL Passwort fĂŒr [TESTadministrator]: Wiederverbinden mit dem Namensmaster e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL Der DNS-Name des neuen Namensmasters ist DC1.TEST.LOCAL Arbeitsgruppe ist TEST Realm ist TEST.LOCAL HinzufĂŒgen von CN=DC2,OU=Domain Controller,DC=TEST,DC=LOCAL HinzufĂŒgen von CN=DC2,CN=Server,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL HinzufĂŒgen von CN=NTDS-Einstellungen,CN=DC2,CN=Server,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL HinzufĂŒgen von SPNs zu CN=DC2,OU=Domain Controller,DC=TEST,DC=LOCAL Kontoeinstellungen fĂŒr DC2$ Passwort Konto aktivieren Bare Provisionierung aufrufen Suche nach IPv4-Adressen Suche nach IPv6-Adressen Es wird keine IPv6-Adresse zugewiesen Einrichtung von share.ldb Einrichtung von secrets.ldb Einrichtung des Registrierungsdatenbank Einrichtung der Berechtigungsdatenbank Einrichtung der idmap-Datenbank Einrichtung der SAM-Datenbank Einrichtung der sam.ldb-Partitionen und -Einstellungen Einrichtung von sam.ldb rootDSE Vorab-Laden des Samba 4 und AD-Schemas Eine fĂŒr Samba AD geeignete Kerberos-Konfiguration wurde unter /var/lib/samba/private/krb5.conf generiert Provisionierung OK fĂŒr die DomĂ€ne DN DC=TEST,DC=LOCAL Replikation starten Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] Objekte[402/1426] verlinkte_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] Objekte[804/1426] verlinkte_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] Objekte[1206/1426] verlinkte_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] Objekte[1608/1426] verlinkte_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] Objekte[1743/1426] verlinkte_values[0/0] Analysieren und Anwenden von Schemaobjekten Partition[CN=Configuration,DC=TEST,DC=LOCAL] Objekte[402/2240] verlinkte_values[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] Objekte[804/2240] verlinkte_values[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] Objekte[1206/2240] verlinkte_values[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] Objekte[1608/2240] verlinkte_values[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] Objekte[1772/2240] verlinkte_values[24/24] Replizieren von kritischen Objekten aus der Basis-DN der DomĂ€ne Partition[DC=TEST,DC=LOCAL] Objekte[109/110] verlinkte_values[26/29] Partition[DC=TEST,DC=LOCAL] Objekte[394/5008] verlinkte_values[29/29] Fertig mit immer replizierten NC (Basis, Konfiguration, Schema) Replizieren von DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] Objekte[42/42] verlinkte_values[0/0] Replizieren von DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] Objekte[20/20] verlinkte_values[0/0] Exop auf[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] Objekte[3] verlinkte_values[0] Commit der SAM-Datenbank HinzufĂŒgen von 1 entfernten DNS-EintrĂ€gen fĂŒr DC2.TEST.LOCAL HinzufĂŒgen des DNS A-Eintrags DC2.TEST.LOCAL fĂŒr IPv4 IP: 192.168.90.201 HinzufĂŒgen des DNS CNAME-Datensatzes 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL fĂŒr DC2.TEST.LOCAL Alle anderen DNS-EintrĂ€ge (wie _ldap SRV-EintrĂ€ge) werden bei der ersten Startdauer durch samba_dnsupdate erstellt Replizieren neuer DNS-EintrĂ€ge in DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] Objekte[1/42] verlinkte_values[0/0] Replizieren neuer DNS-EintrĂ€ge in DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] Objekte[1/20] verlinkte_values[0/0] Senden von DsReplicaUpdateRefs fĂŒr alle replizierten Partitionen Einstellung von isSynchronized und dsServiceName Einrichten der Geheimnisdatenbank Der DomĂ€ne TEST (SID S-1-5-21-3959064270-1572045903-2556826204) als DC beigetretenIm ADUC sollte ein Eintrag fĂŒr den neuen DC in der DomĂ€ne TEST.LOCAL erscheinen, und im DNS-Manager sollte ein neuer A-Eintrag erscheinen, der zu DC2 gehört.
- Replikation zwischen den ControllernLassen Sie uns zunĂ€chst die Funktionsweise des Verzeichnisreplikationsdienstes (DRS) ĂŒberprĂŒfen.
# samba-tool drs showreplAlle Replikationsversuche in der Ausgabe sollten erfolgreich sein. In der KCC-Objektliste sollte unser DC1 innerhalb von 15 Minuten nach der Eingabe erscheinen.
Standard-First-Site-NameDC2 DSA-Optionen: 0x00000001 DSA-Objekt-GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf DSA-Invokations-ID: 017997b5-d718-41d7-a3f3-e57ab5151b5c ==== EINGEHENDE NACHBARN ==== DC=ForestDnsZones,DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Mo, 27. Mai 2019 12:56:31 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Mo, 27. Mai 2019 12:56:31 MSK DC=DomainDnsZones,DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Mo, 27. Mai 2019 12:56:32 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Mo, 27. Mai 2019 12:56:32 MSK CN=Schema,CN=Configuration,DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Mo, 27. Mai 2019 12:56:32 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Mo, 27. Mai 2019 12:56:32 MSK DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Mo, 27. Mai 2019 12:56:32 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Mo, 27. Mai 2019 12:56:32 MSK CN=Configuration,DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Mo, 27. Mai 2019 12:56:33 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Mo, 27. Mai 2019 12:56:33 MSK ==== AUSGEHENDE NACHBARN ==== DC=ForestDnsZones,DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Do, 23. Mai 2019 16:40:03 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Do, 23. Mai 2019 16:40:03 MSK DC=DomainDnsZones,DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Do, 23. Mai 2019 16:40:03 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Do, 23. Mai 2019 16:40:03 MSK CN=Schema,CN=Configuration,DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Do, 23. Mai 2019 16:40:08 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Do, 23. Mai 2019 16:40:08 MSK DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Do, 23. Mai 2019 16:40:08 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Do, 23. Mai 2019 16:40:08 MSK CN=Configuration,DC=test,DC=local Standard-First-Site-NameDC1 ĂŒber RPC DSA-Objekt-GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Letzter Versuch am Mo, 27. Mai 2019 12:12:17 MSK war erfolgreich 0 aufeinanderfolgende Fehler. Letzter Erfolg am Mo, 27. Mai 2019 12:12:17 MSK ==== KCC-VERBINDUNGSOBJEKTE ==== Verbindung -- Verbindungsname: 6d2652b3-e723-4af7-a19f-1ee48915753c Aktiviert : WAHR Server-DNS-Name : DC1.test.local Server-DN-Name : CN=NTDS Einstellungen,CN=DC1,CN=Server,CN=Standard-First-Site-Name,CN=Standorte,CN=Konfiguration,DC=test,DC=local Transporttyp: RPC Optionen: 0x00000001 Warnung: Kein NC repliziert fĂŒr Verbindung!Warnung «Kein NC fĂŒr Verbindung repliziert!» Kann ruhig ignoriert werden. Es tritt auf, weil bei der Registrierung eines neuen Samba-DC einige Replikationsflags falsch gesetzt werden.
Es wĂ€re auch gut, die LDAP-Replikation zu ĂŒberprĂŒfen.
# samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -UadministratorDer oben angegebene Befehl vergleicht die Attributwerte von Objekten im gesamten Verzeichnis auf DC1 und DC2.
Beispiel fĂŒr erfolgreiche Replikation
* Vergleiche [DOMAIN]-Kontext... * Zu vergleichende Objekte: 249 * Ergebnis fĂŒr [DOMAIN]: ERFOLG * Vergleiche [CONFIGURATION]-Kontext... * Zu vergleichende Objekte: 1750 * Ergebnis fĂŒr [CONFIGURATION]: ERFOLG * Vergleiche [SCHEMA]-Kontext... * Zu vergleichende Objekte: 1739 * Ergebnis fĂŒr [SCHEMA]: ERFOLG * Vergleiche [DNSDOMAIN]-Kontext... * Zu vergleichende Objekte: 42 * Ergebnis fĂŒr [DNSDOMAIN]: ERFOLG * Vergleiche [DNSFOREST]-Kontext... * Zu vergleichende Objekte: 20 * Ergebnis fĂŒr [DNSFOREST]: ERFOLGIn einigen FĂ€llen können die Attribute von Objekten auf verschiedenen Controllern abweichen, und die Ausgabe des Befehls wird darĂŒber informieren. Aber nicht in allen FĂ€llen ist dies ein Anzeichen fĂŒr ein Replikationsproblem.
Im nÀchsten Schritt muss die stabile Replikation des SysVol-Verzeichnisses manuell konfiguriert werden.
Das liegt daran, dass Samba derzeit DFS-R nicht unterstĂŒtzt, genau wie es die frĂŒhere FRS auch nicht unterstĂŒtzt hat. Daher ist die einzige derzeit funktionierende Lösung fĂŒr die Replikation zwischen Samba-DC und Windows die unidirektionale Replikation mit dem Dienstprogramm Robocopy aus dem Paket .Die Entwickler von Samba empfehlen zur Vermeidung von KompatibilitĂ€tsproblemen, das Dienstprogramm zunĂ€chst auf einem normalen Arbeitsplatzrechner zu installieren und danach Robocopy auf den Controller in den Ordner âC:Program Files (x86)Windows Resource KitsToolsâ zu kopieren.
Nach der Installation erstellen wir im Aufgabenplaner auf dem Windows-Controller einen Job zur DurchfĂŒhrung der Replikation mit den folgenden Parametern:
â FĂŒr alle Benutzer ausfĂŒhren
â Trigger fĂŒr die AusfĂŒhrung jeden Tag alle 5 Minuten wĂ€hrend des Tages
â In den Aktionen geben wir den Pfad zum Dienstprogramm Robocopy an, wobei wir folgende Argumente angeben:DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /secIm konkreten Fall kopieren wir den Inhalt des SysVol-Verzeichnisses von DC1 nach DC2.
- Benutzerordner mit Hilfe der pam_mount-Konfiguration ĂŒbertragenDurch Versuch und Irrtum habe ich zwei tragfĂ€hige Optionen gefunden, um diese Aufgabe damit zu lösen.
- VollstĂ€ndige Montage des Profilordners aus dem Netzwerk im Verzeichnis /home. Einfache Variante. Funktioniert hervorragend, wenn die Ordnernamen âDokumenteâ, âDownloadsâ und âDesktopâ in beiden Betriebssystemen ĂŒbereinstimmen. Es wird vorausgesetzt, dass der PC mit Linux bereits in die DomĂ€ne eingegeben wurde und die Benutzer sich mit ihren DomĂ€nenkonten anmelden, wobei sssd als Authentifizierungs- und Autorisierungsmechanismus verwendet wird.
# vim /etc/security/pam_mount.conf.xml<volume uid="100000000-2000000000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)" mountpoint="~" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/>{REPOSITORY_ABSOLUTE_PATH}
- uid=â100000000-2000000000â â der UID-Bereich, der den DomĂ€nenbenutzern von SSSD zugewiesen wird.
- server=âdfsâ â der Name des Dateiservers.
- path=âProfile_Users/%(USER)â â Ressource auf dem Dateiserver, die das Benutzerprofil enthĂ€lt.
- mountpoint=â~â â der EinhĂ€ngepunkt im Heimatverzeichnis des Benutzers.
Der Benutzer-Login wird in die Makrovariable â%(USER)â ĂŒbergeben, die pam_mount verwendet, um unsere Netzwerkressource so zu verbinden, wie sie im Display-Manager eingegeben wurde. Daher ist es wichtig, dass der Login im DM ohne explizite Angabe des DomĂ€nennamens eingegeben wird.
In der sssd.conf kann dies durch Kommentierung oder durch Setzen des Wertes False in der Option use_fully_qualified_names, die den Modus fĂŒr vollstĂ€ndige Namen (einschlieĂlich DomĂ€ne) fĂŒr Benutzer und Gruppen aktiviert.
- Eine zweite Methode ist weniger direkt und umstÀndlich, und meiner Meinung nach praktischer und bevorzugter. Der Unterschied zur ersten besteht nur in der Konfiguration von pam_mount.
# vim /etc/security/pam_mount.conf.xmlDas bedeutet, dass wir einfach jeden unserer Ordner separat in das entsprechende Verzeichnis einhÀngen.
- VollstĂ€ndige Montage des Profilordners aus dem Netzwerk im Verzeichnis /home. Einfache Variante. Funktioniert hervorragend, wenn die Ordnernamen âDokumenteâ, âDownloadsâ und âDesktopâ in beiden Betriebssystemen ĂŒbereinstimmen. Es wird vorausgesetzt, dass der PC mit Linux bereits in die DomĂ€ne eingegeben wurde und die Benutzer sich mit ihren DomĂ€nenkonten anmelden, wobei sssd als Authentifizierungs- und Autorisierungsmechanismus verwendet wird.
Das DBMS Tarantool ist ein attraktives, zukunftstrÀchtiges Produkt zur Erstellung von hochbelasteten Anwendungen.
In einem halben Monat im Teststand hat dieses Setup mehrere wechselnde langfristige und kurzfristige AusfĂ€lle beider Controller erfolgreich ĂŒberstanden, fast ohne Auswirkungen auf die Clients (einmal hat ein Windows7-Client die Vertrauensstellung verloren).
Insgesamt habe ich ziemlich positive EindrĂŒcke von der Arbeit mit diesem Produkt, trotz aller Nuancen, mit denen ich sowohl in dem Artikel als auch âhinter den Kulissenâ konfrontiert wurde.
Es gibt viele Fallstricke, die in groĂer Zahl wĂ€hrend der Arbeit mit Samba aufgefangen werden mĂŒssen. Dennoch gibt es derzeit keine anderen Lösungen, die es ermöglichen, eine hybride Umgebung mit einem Verzeichnisdienst und ohne den Einsatz von Windows zu organisieren.
Quelle: habr.com
