Samba/Active-Directory

Aus Foxwiki
Version vom 20. August 2022, 09:04 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= TMP = == Samba4-Server als Active-Directory Domain-Controller =? === Archivierte Anleitung === Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesper…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

TMP

== Samba4-Server als Active-Directory Domain-Controller =?

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Achtung!

Die Verwendung dieses Howto geschieht wie üblich auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.

Hinweis:

Diese Howto-Anleitung wurde zuletzt von luftpumpe am 28.03.2015 unter Xubuntu 14.04 erfolgreich getestet.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen
  2. ⚓︎ Starten von Programmen
  3. ⚓︎ Ein Terminal öffnen
  4. ⚓︎ Root-Rechte
  5. ⚓︎ Samba (Übersichtsartikel)
  6. ⚓︎ Samba Server
  7. ⚓︎ Archiv/Kerberos
  8. ⚓︎ Dnsmasq


Inhaltsverzeichnis# Grundlagen

  1. Voraussetzungen
    1. Daten des Testkonfiguration
  2. Administrationstools
    1. samba-tool
    2. RSAT für Windows-Client
  3. Installation des 1. DCs
    1. Feste IP-Adresse einstellen
    2. NTP-Dienst einrichten
    3. Anpassung in der fstab
    4. Samba-Version überprüfen
    5. Samba installieren
    6. DNS-Service konfigurieren
    7. Samba-Server provisionieren
    8. Kerberos installieren
  4. Funktionstests des Servers
    1. Netzwerkports überprüfen
    2. Samba-Konfiguration überprüfen
    3. Alle Shares auflisten
    4. Authentifizierung testen
    5. DNS testen
    6. Kerberos testen
  5. Installation des 2. DCs
    1. Vorarbeiten und Tests
    2. Samba-Server provisionieren
    3. Test der Samba-Konfiguration
    4. Anpassen der DNS-Einstellung
    5. DNS-Einträge überprüfen
    6. Directory Replikation überprüfen
    7. manuelle Replikationstests
    8. SYSVOL-Replikation


Grundlagen

"Samba_Server/samba-logo.png"

Ab Samba Version 4.x kann man Samba im Microsoft-kompatiblen Modus "Active-Directory Domain-Controller" (kurz AD DC) laufen lassen. Dieser Artikel beschreibt die Grundinstallation von zwei Samba-Servern als DC für eine Windows Domäne. Zwei Server, um die Ausfallsicherheit der Domäne zu verbessern, und weil die Installation des zweiten (und weiterer) DCs anders verläuft als beim ersten DC. Natürlich funktioniert der Betrieb auch nur mit einem DC.

Die Installation basiert auf einem frisch installierten Xubuntu 14.04.02 LTS, benutzt nur offizielle Pakete aus dem Ubuntu-Repo und orientiert sich weitgehend am Artikel im offiziellen Samba-Wiki. Sie berücksichtigt aber die Besonderheiten bei Ubuntu.

Offizielles Samba-HowTo - https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO 🇬🇧

Sämtliche Eingaben setzen voraus, dass man derzeit im root-Modus ist. ("sudo -s")

Hinweis:

WICHTIGER HINWEIS: Dieser Artikel ist nur für den erfahrenen Ubuntu-Benutzer geeignet, der weiß was ein Domaincontroller ist.

Voraussetzungen

  • Ubuntu 14.04 LTS
  • root-Rechte
  • Dateisystem ext4
  • feste IP-Adresse für die Server
  • dnsmasq deaktivieren
  • samba Version >= V4.1.6
  • optionale zweite Maschine für die Einrichtung eines zweiten Servers


Daten des Testkonfiguration

technische Parameter auf die in dieser Beispielinstallation Bezug genommen wird:

vergrößern

Name der Domäne: test.dom NETBIOS-Name der Domäne: TEST Hostname: dc1 IP-Adresse: 192.168.1.199 Gateway: 192.168.1.1 (ist auch gleichzeitig DNS-Server fürs Internet) Name des ersten Domain-Controllers: DC1 Samba-Admin: administrator

Hostname: dc2 IP-Adresse: 192.168.1.198 Gateway: 192.168.1.1 (ist auch gleichzeitig DNS-Server fürs Internet) Name des ersten Domain-Controllers: DC2 Samba-Admin: administrator

Administrationstools

samba-tool

Endlich gibt´s ein zentrales Boardmittel auf Kommandozeile um alle Funktionen eines Samba-Servers im Active-Directory-Modus zu administrieren.

Es wird bei der Installation von Samba mit installiert.

samba-tool --help

RSAT für Windows-Client

(falls vorhanden, und wenn von dort administriert werden soll)

Installiere RSAT (Remote Server Administration Tool) auf einem Windows-Client, siehe https://wiki.samba.org/index.php/Ins_AD_Management

Für die Administration sollte der Windows-Client in die spätere Samba-Domäne als Mitglied aufgenommen werden, und auch deren DNS-Server benutzen. HINWEIS: Dieser Artikel erklärt nicht die Administration von einem Windows-Client aus.

Installation des 1. DCs

Samba kann direkt aus den Quellen installiert werden. Es müssen keine fremden Quellen angezapft werden, es muss nichts compiliert werden.

Feste IP-Adresse einstellen

Es gibt wenig Sinn einen Domain-Controller mit einer dynamischen IP-Adresse zu betreiben. Deswegen muss man der Maschine erst eine feste manuelle Netzwerkkonfiguration geben. Dies kann über die graphische Oberfläche in den Netzwerkverbindungen angepasst werden. In unserem Beispiel sind es folgende Angaben:

Methode: manuell IPV4-Adresse: 192.168.1.199 Netzmaske: 255.255.255.0 Gateway: 192.168.1.1 DNS-Server: 192.168.1.1 (ist nur temporär, wird später noch geändert) Suchdomänen: bleibt erst mal leer

NTP-Dienst einrichten

Damit eine Domäne korrekt funktioniert, speziell Kerberos, wird auf allen Servern und Clients die gleiche "Zeit" benötigt. Deswegen wird mit der Installation eines NTP-Server auf dem späteren Domaincontroller begonnen.

siehe auch ntpd - https://wiki.samba.org/index.php/Timynchronisation

Installation von ntpd:

apt-get install ntp

(er wird dann auch automatisch gestartet)

ntp-Daemon testen: (jetzt muss der UDP-Port 123 offen sein; dies kann per "netstat -tulpn" gecheckt werden. Dort müssen Zeilen mit dem Text ":123" auftauchen.)

Eingabe zum überprüfen der ntp-Funktion:

ntpdate -q 127.0.0.1

korrekte Beispiel-Ausgabe:

server 127.0.0.1, stratum 3, offset 2.154217, delay 0.03343

Falls Probleme auftauchen, dann zur ersten Analyse folgendes mit einem öffentlichen NTP-Server testen:

ntpdate -u de.pool.ntp.org ntpdate -u 0.ubuntu.pool.ntp.org

Anpassung in der fstab

Parameter für die Root-Partition in der Datei /etc/fstab anpassen damit ACLs funktionieren:

nano /etc/fstab

hier eine Beispiel für die erforderlichen Parameter, Text hinter "ext4":

UUID=951801e7-c4bc-464b-9071-6f5b6d065c92 / ext4 user_xattr,acl,errors=remount-ro,barrier=1 0 1

Samba-Version überprüfen

Falls Samba schon installiert ist, kann mit folgenden Befehlen die Version überprüft werden:

samba -V smbclient -V

Samba installieren

(falls es noch fehlt)

apt-get install samba smbclient

Hinweis: Der Samba Server wird direkt nach der Installation direkt im Standalone-Modus gestartet. Deswegen den Samba Server erst mal wieder beenden mit folgenden Befehlen:

service smbd stop service nmbd stop service samba status

Und dann die vorhandene smb.conf sichern oder löschen:

mv /etc/samba/smb.conf /etc/samba/smb.conf.vorher

HINWEIS: Wenn man das nicht macht, scheitert später die korrekte Einrichtung des Domain-Controllers.

DNS-Service konfigurieren

Überprüfen ob Port 53 (DNS) schon belegt ist, und bei frei räumen.

netstat -tlpn

Unter anderem taucht dort folgende Zeile auf:

tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1241/dnsmasq

Daran sieht man, dass TCP-Port 53 durch die Anwendung "dnsmasq" belegt ist. Dies verhindert, dass der später intallierte Samba-Server korrekt starten kann, weil er auch den Port 53 belegen will.

Lösung: Ubuntu nutzt den "network-manager" für seine Netzwerkverbindungen. Dieser nutzt wiederrum "dnsmasq" (welcher Port 53 belegt) für die DNS-Namensauflösung des Computers.

dnsmasq kann man in der Datei "/etc/NetworkManager/NetworkManager.conf" deaktivieren:

nano /etc/NetworkManager/NetworkManager.conf

deswegen in der Datei folgende Zeile auskommentieren:

# dns=dnsmasq

Und danach den network manager neu starten und den alten dnsmasq killen, oder komplettes System neu booten:

/etc/init.d/networking restart killall dnsmasq

HINWEIS: Wenn man diesen Arbeitsschritt vergisst, dann kommt beim Start von Sambe folgender Fehlertext. (gut zu sehen wenn man Samba im interaktiven Modus gestartet hat "samba -i")

Failed to bind to 0.0.0.0:53 - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED

WICHTIG: Sobald man dnsmasq deaktiviert hat, kann der PC keine DNS-Namen mehr auflösen, wenn man vergessen hat in den Netzwerkeinstellungen manuell einen DNS-Server (z.b. die IP seines Routers) einzurichten.

Samba-Server provisionieren

Jetzt kann mit der sogenannten Provisionierung des Domaincontrollers begonnen werden. Dies ist die Erstellung der Active-Directory Domäne. Bei Windows-Servern bekannt als "dcpromo".

samba-tool domain provision --use-rfc2307 --interactive --use-ntvfs

Hinweise:* Parameter "-use-rfc2307" für NIS-Servcie (yellowpages) inkl. Schemaerweiterung im AD. Wird nicht zwingend benötigt, aber später eventl. hilfreich für Linux-Clients. siehe auch: https://wiki.samba.org/index.php/Usitive_Directory

  • Parameter "-use-ntvfs" für Ext4-Dateisysteme angeben, weil ohne Angabe des Parameters sonst ein Fehler kommt


Folgende Parameter werden dann im interaktiven Dialog abgefragt:* REALM: Der REALM ist der vollständige Domänenname, er wird auch auch als DNS-Domainname verwendet. Wie im Internet sind die einzelen Wörter durch einen Punkt getrennt. In unserem Beispiel lautet der REALM "test.dom"

  • Domain: Ist quasi die Kurzform des Domänennamens ohne Punkte und wird für NetBIOS benötigt. Deswegen wird der Parameter auch NETBIOS-Name genannt. Dies ist sinnvollerweise der erste Teil des kompletten REALMs. In unserem Beispiel lautet der NETBIOS-Name "test"
  • Server Role: Samba kann in ganz unterschiedlichen Modi laufen. In unserem Beispiel ist "dc" anzugeben.
  • DNS backend: Wer soll die Namensauflösung für den Samba-Server machen. Samba4 beinhaltet auch einen eigenen DNS-Server. Für den bestmöglichen Betrieb der Samba-Domäne ist genau dieser zu verwenden! Somit hier "SAMBA_INTERNAL" bestätigen.
  • DNS forwarder: Im späteren Betrieb sollten alle Clients der Domäne den/die Samba Server als DNS-Server verwenden. Sollen aber auch DNS-Namen außerhalb der Domäne aufgelöst werden (z.B. Internet DNS-Namen), so muss dem DNS-Server im Samba-Server gesagt werden, welchen anderen DNS-Server er verwenden soll, um diese Namen aufzulösen. Das ist der DNS-Forwarder. In unserem Beispiel wird der heimische Router = 192.168.1.1 angegeben. Er wiederum löst die DNS-Namen über den DNS-Server des Providers auf.
  • Administrator passwort: Dies ist der mächtigste Account in der Windows-Domäne. Danmit kann man später die Domäne verwalten. HINWEIS: Das Passwort muss der Passwort-Policy entsprechen, 3 aus 4 Komponenten (Kleinschrift, Großschrift, Ziffern, Sonderzeichen)


Erfolgreiche Beispiel-Ausgabe:

vergrößern

Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Adding DomainDN: DC=test,DC=dom Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=test,DC=dom Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf Setting up fake yp server settings Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: VM1 NetBIOS Domain: TEST DNS Domain: test.dom DOMAIN SID: S-1-5-21-4250222487-2521097371-810615148

Tipp: Wenn irgendwas schief geht, dann kann man die /etc/samba/smb.conf löschen, und neu versuchen:

rm /etc/samba/smb.conf

Samba-Server versuchen interaktiv zu starten: (kann man mit Strg-c abbrechen)

samba -i

Dies sollte mit keiner besonderen Fehlermeldung abbrechen. Wenn die Routine nicht abbricht, ist dies ein gutes Zeichen. Dann manuell abbrechen.

Kerberos installieren

dazu fehlt noch ein Instalations-Paket, nachinstallieren:

apt-get install krb5-user

Erforderliche Parameter-Eingaben:

Kerberos-Realm: TEST.DOM Kerberos-Server für Ihren Realm: localhost Administrations-Server für IhrenKerberos-Realm: localhost

HINWEIS: Jetzt ist ein guter Zeitpunkt um den Server neu zu booten!

Funktionstests des Servers

Netzwerkports überprüfen

Wenn Samba korrekt läuft, sollten etliche zusätzliche Netzwerkports belegt sein. "netstat -tlpen" sollte folgende Ausgabe bringen (im Beispiel ist IPV6 deaktiviert):

vergrößern

root@DC1:~# netstat -tlpen Aktive Internetverbindungen (Nur Server) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 0.0.0.0:3268 0.0.0.0:* LISTEN 0 28962 5394/samba tcp 0 0 0.0.0.0:3269 0.0.0.0:* LISTEN 0 28963 5394/samba tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 0 28960 5394/samba tcp 0 0 0.0.0.0:135 0.0.0.0:* LISTEN 0 28932 5391/samba tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 0 28936 5403/samba tcp 0 0 0.0.0.0:464 0.0.0.0:* LISTEN 0 28919 5396/samba tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 0 28947 5402/samba tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 0 8369 463/cupsd tcp 0 0 0.0.0.0:88 0.0.0.0:* LISTEN 0 28917 5396/samba tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 0 28961 5394/samba tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 0 28935 5403/samba tcp 0 0 0.0.0.0:1024 0.0.0.0:* LISTEN 0 28926 5391/samba

Aufgaben der Netzwerk-Ports, siehe auch https://wiki.samba.org/index.php/Samba_port_usage * 53 - DNS

  • 88 - Kerberos
  • 135 - End Point Mapper (DCE/RPC Locator Service)
  • 139 - NetBIOS Session
  • 389 - LDAP
  • 445 - SMB over TCP / CIFS
  • 464 - Kerberos Passwort
  • 636 - LDAPS (only if "tls enabled = yes")
  • 1024-5000 dynamische RPC-Ports
  • 3268 - globaler Katalog
  • 3269 - globaler Katalog SSL


Samba-Konfiguration überprüfen

Ausgabe dieses Befehls überprüfen (ersetzt das klassische "testparm", bitte dieses nicht mehr benutzen)

samba-tool testparm

Beispielausgabe:

vergrößern

Press enter to see a dump of your service definitions (Return drücken)

# Global parameters [global]

       workgroup = TEST
       realm = TEST.DOM
       netbios name = DC1
       server role = active directory domain controller
       dns forwarder = 192.168.1.1
       server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, dns, smb
       dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc
       idmap_ldb:use rfc2307 = yes

[netlogon]

       path = /var/lib/samba/sysvol/test.dom/scripts
       read only = No

[sysvol]

       path = /var/lib/samba/sysvol
       read only = No

WICHTIG: Die Zeile "dns forwarder" muss vorhanden sein, sonst scheitert die Namensauflösung für Internet-Domains, und man kann keine Pakete mehr installieren!

Alle Shares auflisten

smbclient -L localhost -U%

Jetzt sollten die drei Shares netlogon, sysvol und IPC$ angezeigt werden.

Authentifizierung testen

smbclient //localhost/netlogon -UAdministrator -c 'ls'

Hier muss man das Passwort des Domänen-Administrators eingeben. Die Ausgabe sollte keine Fehlermeldung enthalten.

DNS testen

Dazu muss man jetzt zuvor die DNS-Einstellung des Network-Managers in der graphischen Oberfläche des Rechners geändert werden. Passende Netzwerkschnittstelle auswählen. Dort IPv4-Einstellungen, Feld DNS-Server, und folgendes eintragen:

nameserver 127.0.0.1

Wenn der DNS-Server richtig eingestellt ist, muss ein Ping auf den REALM funktionieren:

ping test.dom

Eingabe:

host -t SRV _ldap._tcp.test.dom

Ausgabe:

_ldap._tcp.test.dom has SRV record 0 100 389 dc1.test.dom.

Eingabe:

host -t SRV _kerberos._udp.test.dom

Ausgabe:

_kerberos._udp.test.dom has SRV record 0 100 88 dc1.test.dom.

Eingabe:

host -t A test.dom

Ausgabe:

test.dom has address 192.168.1.199

Eingabe:

host -t A dc1.test.dom

Ausgabe:

dc1.test.dom has address 192.168.1.199

Falls hier Fehler kommen, dann bitte das systemlog überprüfen.

Kerberos testen

Eingabe:

kinit administrator

erfolgreiche Ausgabe:

Password for administrator@TEST.DOM: Warning: Your password will expire in 41 days on Fr 24 Apr 2015 20:31:30 CEST

Eingabe um eigene Kerberos-Tickets zu überprüfen:

klist

erfolgreiche Ausgabe:

Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@TEST.DOM

Valid starting Expires Service principal 14.03.2015 09:23:12 14.03.2015 19:23:12 krbtgt/TEST.DOM@TEST.DOM

       renew until 15.03.2015 09:23:08

Wenn all diese Tests erfolgreich ausgegangen sind, dann läuft der erste Domaincontroller korrekt.

Installation des 2. DCs

Die Installation des zweiten DCs geht genauso wie beim ersten DC. Bis zum Punkt der Provisionierung des Samba-Servers - ab da wird anders, dies beschreibt dieser Abschnitt.

Vorarbeiten und Tests

WICHTIG: Für diesen Schritt muss der erste Domaincontroller laufen und netzwerktechnisch erreichbar sein.

DNS-Server anpassen:

Der zweite DC muss die Domäne namenstechnisch auflösen können. Deswegen muss zuerst der DNS-Server über die graphische Oberfläche via Network-Manager angepasst werden. Passende Netzwerkschnittstelle auswählen. Dort IPv4-Einstellungen, Feld DNS-Server, und folgendes eintragen: Man muss im Feld DNS-Server die DNS-IP-Adresse des ersten Samba-Servers eintragen. In unserem Beispiel:

192.168.1.199

DNS-Auflösung testen:

Die folgenden zwei Befehle dürfen keine Fehler ausgeben:

ping test.dom ping dc1.test.dom nslookup test.dom <ipadresse des ersten servers>

Samba-Server provisionieren

siehe auch https://wiki.samba.org/index.php/Samdomain_as_a_DC

samba-tool domain join test.dom DC --username=administrator --use-ntvfs

Beispiel-Ausgabe:

vergrößern

Finding a writeable DC for domain 'test.dom' Found DC dc1.test.dom Password for [TEST\administrator]: (Bemerkung: hier muss Passwort vom ersten DC eingetragen werden) workgroup is TEST realm is test.dom checking sAMAccountName Adding CN=DC2,OU=Domain Controllers,DC=test,DC=dom Adding CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=dom Adding CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=dom Adding SPNs to CN=DC2,OU=Domain Controllers,DC=test,DC=dom Setting account password for DC2$ Enabling account Calling bare provision No IPv6 address will be assigned Provision OK for domain DN DC=test,DC=dom Starting replication Schema-DN[CN=Schema,CN=Configuration,DC=test,DC=dom] objects[402/1550] linked_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=test,DC=dom] objects[804/1550] linked_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=test,DC=dom] objects[1206/1550] linked_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=test,DC=dom] objects[1550/1550] linked_values[0/0] Analyze and apply schema objects Partition[CN=Configuration,DC=test,DC=dom] objects[402/1620] linked_values[0/0] Partition[CN=Configuration,DC=test,DC=dom] objects[804/1620] linked_values[0/0] Partition[CN=Configuration,DC=test,DC=dom] objects[1206/1620] linked_values[0/0] Partition[CN=Configuration,DC=test,DC=dom] objects[1608/1620] linked_values[0/0] Partition[CN=Configuration,DC=test,DC=dom] objects[1620/1620] linked_values[28/0] Replicating critical objects from the base DN of the domain Partition[DC=test,DC=dom] objects[97/97] linked_values[23/0] Partition[DC=test,DC=dom] objects[365/268] linked_values[23/0] Done with always replicated NC (base, config, schema) Replicating DC=DomainDnsZones,DC=test,DC=dom Partition[DC=DomainDnsZones,DC=test,DC=dom] objects[41/41] linked_values[0/0] Replicating DC=ForestDnsZones,DC=test,DC=dom Partition[DC=ForestDnsZones,DC=test,DC=dom] objects[18/18] linked_values[0/0] Partition[DC=ForestDnsZones,DC=test,DC=dom] objects[36/18] linked_values[0/0] Committing SAM database Sending DsReplicateUpdateRefs for all the replicated partitions Setting isSynchronized and dsServiceName Setting up secrets database Joined domain TEST (SID S-1-5-21-2617678509-903244012-2886946009) as a DC

Damit ist dann der zweite DC grundsätzlich der Domäne beigetreten.

Test der Samba-Konfiguration

Wenn die Provisionierung korrekt verlaufen ist, sollte man die Konfig testen. Im Prinzip stehen in der "/etc/samba/smb.conf" die gleichen Inhalte wie im ersten DC drin, bis auf die Zeile "netbios name" des Servers.

Eingabe zum überprüfen:

samba-tool testparm

WICHTIG: Vergleiche die Ausgabe beider DCs, oder vergleiche die Inhalte der jeweiligen "/etc/samba/smb.conf". Wenn hier was fehlt, dann läuft der zweite DC nicht korrekt!!!

Anpassen der DNS-Einstellung

Die beiden Domaincontroller sollten sich gegenseitig als primären DNS-Server eingetragen haben, und als sekundären Server sich selbst. Dazu muss man jetzt die DNS-Einstellung des Network-Managers in der graphischen Oberfläche beider Server ändern. Passende Netzwerkschnittstelle auswählen. Dort IPv4-Einstellungen, Feld DNS-Server, und folgendes eintragen:

Desweiteren gibt es Sinn die Suchdomäne auf "test.dom" anzupassen. Denn damit muss man dann zur Erreichbarkeit anderer Maschinen in der Domäne nicht immer den vollqualifizierten Namen (Beispiel: client23.test.dom) angeben, sondern es langt der Hostname (Beispiel: client23) zur Namensauflösung. Dies sollte über die graphische Oberfläche beider DCs angepasst werden. Nach Reboot beider Server sollten in der "resolv.conf" folgende Inhalte drin stehen:

passende Einstellung für DC2:

nameserver 192.168.1.199 # Bemerkung: IP des ersten DCs nameserver 127.0.0.1 search test.dom

passende Einstellung für DC1:


nameserver 192.168.1.198 # Bemerkung: IP des zweiten DCs nameserver 127.0.0.1 search test.dom

DNS-Einträge überprüfen

Die IP und DNS-Konfiguration jedes DNS-Severs ist mit folgendem Befehl anzeigbar:

nm-tool

Beispielausgabe:

vergrößern

NetworkManager Tool

State: connected (global)

- Device: eth0 [Kabelnetzwerkverbindung 1] ------------------------------------

 Type:              Wired
 Driver:            r8169
 State:             connected
 Default:           yes
 HW Address:        70:81:AC:AD:53:00
 Capabilities:
   Carrier Detect:  yes
   Speed:           1000 Mb/s
 Wired Properties
   Carrier:         on
 IPv4 Settings:
   Address:         192.168.1.199
   Prefix:          24 (255.255.255.0)
   Gateway:         192.168.1.1
   DNS:             192.168.1.198, 127.0.0.1

Die einzelnen DC-Einträge kann man für die DNS-Server getrennt so überprüfen:

dig dc1 @192.168.1.199 dig dc1 @192.168.1.198 dig dc1.test.dom @192.168.1.199 dig dc1.test.dom @192.168.1.198

In der Beispielausgabe müssen unter anderem folgende Zeilen erscheinen, und auf jeden Fall hinter dem "A" die richtige IP-Adresse stehen:

;; ANSWER SECTION: dc1. 9 IN A 192.168.1.199 oder dc1.test.dom 900 IN A 192.168.1.199

Das gleiche muss man auch für den "DC2"-Eintrag testen:

dig dc2 @192.168.1.199 dig dc2 @192.168.1.198 dig dc2.test.dom @192.168.1.199 dig dc2.test.dom @192.168.1.198

Auch dort sollten in den Ausgaben alle 4 Tests folgende Zeilen beinhalten, auf jeden Fall muss hinter dem "A" die richtige IP-Adresse stehen:

;; ANSWER SECTION: dc2. 9 IN A 192.168.1.198 oder dc2.test.dom 900 IN A 192.168.1.198

Wenn die Namen nicht korrekt aufgelöst werden, kann es ein Fehler in der DNS-Config sein, oder es kann dieser Bug hier sein:

https://wiki.samba.org/index.php/Chees_on_DC_joins 🇬🇧

Dann müssen die DNS-Einträge manuell im DNS angelegt werden.

Directory Replikation überprüfen

Die Directory-Replikation synchronisiert ständig alle Inhalte des Active Directory (User, Gruppen, Computerobjekte, sowie Passwortänderungen) zwischen den Domain-Controllern. Siehe auch https://wiki.samba.org/index.php/Samry_replication

Wenige Minuten nach Start des zweiten DCs beginnt die Directory Replikation automatisch. Geduldig sein!

Befehl zum Überrüfen der Replikation:

samba-tool drs showrepl

Hinweis zur Warnung: "Warning: No NC replicated for Connection!“ in der letzten Zeile. Diese Meldung kann ignoriert werden.

Ansonsten sollte kein Fehler ersichtlich sein.

Falls die Replikation auch nach Minuten noch nicht beginnt, so kann man sie auch manuell anwerfen:

samba-tool drs replicate DC1 DC2 dc=test,dc=dom

Ausgabe:

Replicate from DC2 to DC1 was successful.

Bemerkung:

Wenn die Replikation nicht klappt, ist es sehr wahrscheinlich ein DNS-Problem.

Dann kommt vermutlich dieser Fehler: "DsReplicaSync failed" (8440, 'WERR_DS_DRA_BAD_NC')

manuelle Replikationstests

Einfach ein User-Objekt auf dem einen DC anlegen, und danach schauen, ob es weniges Sekunden später auf dem anderen DC angekommen ist. Entweder mit dem samba-tool, oder mit der Windows Active-Directory User & Gruppen-Verwaltung (RSAT)

Beispieleingabe am ersten DC: (Passwort für User muss 3 aus 4 Komponenten enthalten)

samba-tool user add testuser555

Ausgabe:

User 'testuser555' created successfully

Überprüfen nach wenigen Sekunden am zweiten DC:

samba-tool user list

In der Ausgabe muss dann unter anderem der neue Useraccount angezeigt werden.

SYSVOL-Replikation

Dies geschieht derzeit noch nicht automatisch!

Wenn man eine Änderung in den Logonscripten oder den GPOs vorgenommen hat, so muss man SYSVOL manuell synchronisieren. Oder man muss sich eine rsync-Routine bauen, welche die Replikation ab nimmt.

Details hier: https://wiki.samba.org/index.php/Sysol_Replication 🇬🇧

https://wiki.ubuntuusers.de/Archiv/Howto/Samba4-Server_als_Active-Directory_Domain-Controller/