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:
Grundlagen¶
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:
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/Installing_RSAT_on_Windows_for_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/Time_Synchronisation
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/Using_RFC2307_on_a_Samba_DC#Administer_Unix_Attributes_in_Active_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:
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):
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:
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/Samba4/HOWTO/Join_a_domain_as_a_DC
samba-tool domain join test.dom DC --username=administrator --use-ntvfs
Beispiel-Ausgabe:
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:
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/Check_and_fix_DNS_entries_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/Samba4/HOWTO/Join_a_domain_as_a_DC#Directory_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/SysVol_Replication 🇬🇧