Debian mit Samba4 als Domain Controller für Windows-Umgebung – Tutorial

Ein Domain Controller erleichtert den Administrationsaufwand bereits in kleinen Umgebungen mit nur ein paar Windows-Rechnern erheblich und erlaubt den Benutzern eine geräteübergreifende Anmeldung und Zugriff auf Daten. Samba4 auf Debian stellt hier eine Alternative zum klassischen Windows Server mit Active Directory Rolle dar. Debian begnügt sich mit weit weniger Ressourcen als der Windows Server und läuft mit Sicherheit zuverlässiger. Samba4 bietet den gleichen Funktionsumfang und ist dank der vollständigen Kompatibilität zur Microsoft Umsetzung auch mit den Remoteserver-Verwaltungstools (RSAT) von jedem Windows-Client der Domain zu managen.

Installation

In dieser Anleitung kommen Debian 11.3 und Samba 4.13.13-Debian zum Einsatz. Zunächst wird eine virtuelle Maschine für den neuen Domain Controller eingerichtet. Hier genügen für eine kleine Umgebung mit 20 Benutzern und Dateispeicherung auf einem externen NAS bereits 8 GB RAM und 240 GB Speicherplatz. Anschließend wird Debian in der Minimalversion ohne GUI installiert.

Netzwerk und Hostname einstellen

Unser neuer Domain Controller wird hinter einem Router (Unifi UDM Pro) betrieben. Der Domain Controller erhält daher eine statische IP Adresse welche über den DHCP Server des Routers den Clients als primärer DNS Server verteilt wird. Dies ist erforderlich, damit Clients später die Namen von DC und anderen Clients auflösen können. Außerdem wird der SSH Port verändert und der Rechnername gesetzt. Für den späteren Domainnamen sollte als Endung nicht „.local“ verwendet werden. Ich verwende daher „.lan“.

nano /etc/network/interfaces
allow-hotplug eth0
iface eth0 inet static
address 192.168.40.254
gateway 192.168.40.1

nano /etc/ssh/sshd_config
Port 44022

nano /etc/hostname
dc.abc.lan

nano /etc/hosts
dc.abc.lan dc
Pakete installieren und Samba4 einrichten

Neben Samba4 wird in diesem Schritt auch ein NTP Server installiert. Dieser sorgt dafür, dass DC und Clients die selbe Zeit verwenden. Bei Abweichungen in den Systemzeiten ist ansonsten keine Anmeldung möglich.

apt-get install ntpdate ntp sudo
sudo ntpdate -bu pool.ntp.org


apt-get install acl attr samba samba-dsdb-modules samba-vfs-modules winbind dnsutils
cd /etc/samba && mv smb.conf smb.conf.orig

Nun wird Samba4 eingerichtet. Ich verwende dazu den Assistenten und lasse damit eine neue smb.conf erstellen. Unterhalb sind die Parameter für den Assistenten aufgeführt.

samba-tool domain provision --use-rfc2307 --interactive
Realm ABC.LAN
Domain: ABC
Server Role: dc
DNS Backend: Samba Internal

Anschließend wird Kerberos installiert, die zuvor mit dem Assistenten erstellte Konfigurationsdatei kopiert und der automatische Start eingestellt.

apt-get install krb5-user smbclient
Realm: ABC.LAN
Server für Realm: localhost
Administratorserver: localhost

systemctl stop smbd nmbd winbind
systemctl disable smbd nmbd winbind
systemctl mask smbd nmbd winbind
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc

mv /etc/krb5.conf /etc/krb5.conf.old
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
systemctl start samba-ad-dc
Erster Test

Wenn bis hierhin alles erfolgreich lief, sollte der Samba-Client den DC finden.

smbclient -L localhost -U%
Netzwerkkonfiguration anpassen

Da auch der Server selbst Adressen über den lokalen Samba DNS Server auflösen soll, passen wir noch die hosts und die resolv.conf an. Die zusätzliche Zeile in der ntp.conf soll Probleme bei der Abweichung der Uhr der virtuellen Maschine zur Hardwarezeit vermeiden.

nano /etc/hosts
127.0.0.1     localhost
192.168.40.254     dc.abc.lan    dc


nano /etc/resolv.conf
domain abc.lan  
search abc.lan  
nameserver 192.168.40.254


nano  /etc/ntp.conf      
tinker panic 0

Abschließende Samba4 Konfiguration

Benutzerprofile auf Server speichern

Für die servergespeicherten Profile erstellen wir zunächst einen Ordner und fügen für diesen eine Freigabe hinzu. Anschließend werden die Rechte angepasst und der Ordner so konfiguriert, dass er für die Benutzer nicht mehr durchsuchbar ist.

mkdir -p /srv/samba/profiles/
net rpc rights grant "ABC\Administrator" SeDiskOperatorPrivilege -U "ABC\administrator"

nano /etc/samba/smb.conf
[profiles]
         comment = Benutzerprofile
         path = /srv/samba/profiles/
         browseable = Yes
         read only = No
         csc policy = disable
         vfs objects = acl_xattr
         
         
chmod 1770 /srv/samba/profiles/

samba-tool ntacl get --as-sddl /var/lib/samba/sysvol/abc.lan/scripts/
output: 
O:LAG:BAD:P(A;OICI;0x001f01ff;;;BA)(A;OICI;0x001200a9;;;SO)(A;OICI;0x001f01ff;;;SY)(A;OICI;0x001200a9;;;AU)

samba-tool ntacl set "O:LAG:BAD:P(A;OICI;0x001f01ff;;;BA)(A;OICI;0x001200a9;;;SO)(A;OICI;0x001f01ff;;;SY)(A;OICI;0x001200a9;;;AU)" /srv/samba/profiles/

systemctl restart samba-ad-dc
smbcontrol all reload-config  

Nun soll der erste Windows-Client der Domain beitreten. Dazu Einstellungen – System – Info – Diesen PC umbenennen (fortgeschritten) öffnen und der Domain beitreten. Nach dem Rechnerneustart sollte eine Anmeldung mit Benutzer „ABC\Administrator“ möglich sein. Nun die Computerverwaltung öffnen und mit Server „DC“ verbinden. Dort die Freigabe „profiles“ bearbeiten und folgende Rechte setzen:

Quelle: SambaWiki – https://wiki.samba.org/index.php/Roaming_Windows_User_Profiles

Abschließend wird noch einmal die smb.conf bearbeitet und das Attribut durchsuchbar vom Profilordner entfernt.

nano /etc/samba/smb.conf
[profiles]
...
         browseable = No
...

Gruppenrichtlinien erstellen

Die Gruppenrichtlinie gibt Einstellungen vor. Möglich ist die Anwendung von Gruppenrichtlinienobjekten für alle Benutzer einer Gruppe, einzelne Benutzer oder Rechner oder auch regelbasiert. Im Grunde kann über die Gruppenrichtlinie jede Windows-Einstellung angepasst werden. Hier sollte der Profilpfad für alle Benutzer gesetzt werden, damit die servergespeicherten Profile funktionieren. Außerdem können über die Gruppenrichtlinie Netzlaufwerke von einem externen NAS für verschiedene Benutzer eingebunden werden. Die Gruppenrichtlinie kann über die Gruppenrichtlinienverwaltung von jedem Windows-Client innerhalb der Domain bearbeitet werden. Zur Installation wird auf dem Windows-Client die Eingabeaufforderung (cmd) als Administrator gestartet und folgender Befehl ausgeführt:

dism /online /add-capability /CapabilityName:Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0 /CapabilityName:Rsat.Dns.Tools~~~~0.0.1.0 /CapabilityName:Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

Anschließend kann durch Eingabe von „Gruppenrichtlinieverwaltung“ in der Suche die Anwendung gestartet werden. Nach Rechtsklick auf „abc.lan“ erstellen wir ein neues Gruppenrichtlinienobjekt. Wir navigieren entlang dem Pfad Computerkonfiguration → Richtlinien → Administrative Vorlagen → System → Benutzerprofile → Pfad des servergespeicherten Profiles für alle Benutzer festlegen. Hier wird \dc\profiles\%USERNAME% gesetzt.

Mit gpupdate /force oder einem Rechnerneustart können Änderungen der Gruppenrichtlinie übernommen werden.

Nächste Schritte

Über die Anwendung Active Directory-Benutzer und Computer können weitere Benutzer und Gruppen der Domain hinzugefügt werden. Abschließend sollten alle Rechner des Netzwerks der Domain wie oben beschrieben beitreten.

Schreibe einen Kommentar