Auch unter Linux ist es möglich, eine Samba Domäne zu erstellen und in dieser, Linux- wie auch Windows-Clients, zu verwalten. Wie das geht und wie man am besten vorgeht, zeige ich euch hier.
Die Befehle sind prinzipiell immer so aufgebaut, dass sie kopiert und eingefügt werden können. Wir arbeiten mit dem root User, somit brauchen wir sudo nicht, müssen jedoch sehr vorsichtig mit unseren Eingaben sein.
Grundsituation:
Zwei virtuelle Maschinen erstellen:
1) Ubuntu-Server20.04, keine GUI, Netzwerk DHCP, mit Open-SSH-Server, Servername: dc01, Domäne: ai.dom (diese erstellen wir hier neu).
2) Windows 10 Pro, Netzwerk DHCP, Hostname: win01
Wichtiger Hinweis: Damit die Domäne sauber funktioniert, ist es erforderlich, dass sowohl der Samba Domain Controller, als auch die Windows PCs eine saubere Zeit Synchronisation und eine funktionierende DNS Auflösung in beide Richtungen haben (von IP zum Hostnamen, als auch vom Hostnamen zur IP).
Konfiguration Ubuntu/Samba-DC
Bash öffnen (VM-Host/eigener Rechner, von dem gearbeitet werden soll):
Bitte hier selbstverständlich die IP und den User nutzen, die/den Ihr gewählt habt! In meinem Fall:
ssh ai@192.168.219.93
Nachdem das geschafft ist, melden wir uns als root an:
sudo su
Zunächst müssen wir das System updaten:
apt update && apt upgrade -y && init 6
Nach dem Neustart verbinden wir uns erneut und melden uns wieder als root an:
ssh ai@192.168.219.93
sudo su
Jetzt installieren wir einige Basic-Tools:
apt install -y net-tools dnsutils
Statische IP:
Die IP-Adresse sollte statisch konfiguriert sein. Bei Client und Server, jedoch vor allem bei unserem Server. Dafür müssen wir eine .yaml-Datei anpassen. Bitte die Angaben 1:1 kopieren.
Bei Fragen zur Syntax von .yaml Dateien: https://wiki.ubuntuusers.de/Netplan/
ip a s
→ Gibt uns Informationen über unser Netzwerk, welche die Angaben für unsere .yaml Datei teilweise ersetzen wird. Folgende Angaben müssen durch die eigenen Angaben ersetzt werden:
– Unser Netzwerk „ens160“ (Wird immer unterschiedlich benannt. Erste Info, linke Spalte bei ip a s)
– Unsere IP „192.168.219.93/24“ (Die IP vom Samba-DC)
– Auch das Gateway „192.168.219.1“ (Meist der Router)
– Zuletzt die DNS-Server „[192.168.219.93, 192.168.219.1, 1.1.1.1]“ (Meist der Router)
vim /etc/netplan/XXXXXX.yaml
→Einträge komplett löschen, durch die folgenden ersetzen und wie oben erklärt anpassen:
# This is the network config written by 'subiquity'
---
network:
version: 2
renderer: networkd
ethernets:
ens160:
addresses:
- 192.168.219.93/24
dhcp4: "false"
dhcp6: "false"
gateway4: 192.168.219.1
nameservers:
addresses: [192.168.219.93, 192.168.219.1, 1.1.1.1]
Änderungen übernehmen und überprüfen:
netplan apply
netplan --debug apply
Richtige Zeitzone setzen:
timedatectl set-timezone Europe/Berlin
timedatectl alleine zur Validierung nutzen:
Einen spezifischen und eindeutigen Hostnamen festlegen (NICHT FQDN) :
hostnamectl set-hostname dc01
Die wichtigsten Hosts hier eintragen: (oder alternativ für eine saubere DNS Auflösung sorgen)
vim /etc/hosts
→ Obige Einträge löschen und durch eigene Angaben ersetzen, in meinem Fall:
127.0.0.1 localhost
192.168.219.93 dc01.ai.dom dc01
Neustart, um die Änderungen zu übernehmen:
reboot
Erneut verbinden:
ssh ai@192.168.219.93
sudo su
Status von Port 53(DNS) prüfen:
netstat -tlpn
Falls Port 53 von systemd-resolved belegt ist, wie folgt vorgehen:
mkdir /etc/systemd/resolved.conf.d/
vim /etc/systemd/resolved.conf.d/disable-stub-listener.conf
→ Hier folgendes eintragen:
[Resolve]
DNSStubListener=no
Wir entfernen die alte resolve.com und setzen den symbolischen Link erneut. Danach wird der Deamon neu gestartet:
rm /etc/resolv.conf
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl daemon-reload
systemctl restart systemd-resolved
Erneut mit netstat -tlpn überprüfen:
netstat -tlpn
Neustart, um die Änderungen zu übernehmen:
reboot
Erneut verbinden:
ssh ai@192.168.219.93
sudo su
Jetzt installieren wir Samba und Kerberos. Hier müssen wir einige Angaben für Kerberos machen:
apt -y install samba krb5-config winbind smbclient
Hier konfigurieren wir den Domain Namen: AI.DOM
Der Kerberos Server ist der Domain Controller: dc01.ai.dom
Hier setzen wir für den Kerberos Server den Domain Controller ein: dc01.ai.dom
Nun erstellen wir ein Backup der Samba-Hauptkonfigurationsdatei:
mv /etc/samba/smb.conf /etc/samba/smb.conf.backup
Die Provisionierung des Samba Active Directories:
Folgende Parameter werden in dem Dialog abgefragt:
- REALM: Der REALM ist der vollständige Domänenname. Er wird auch als DNS-Domainname verwendet. In unserem Beispiel „AI.DOM“.
- Domain: Ist der erste Teil des kompletten REALMs. In unserem Beispiel „AI“.
- Server Role: Samba kann in ganz unterschiedlichen Modi laufen. In unserem Beispiel ist „dc“ anzugeben.
- DNS backend: Samba4 beinhaltet einen eigenen DNS-Server. Es ist jedoch auch möglich Bind als DNS-Server zu verwenden. Im vorliegenden Fall wählt man „SAMBA_INTERNAL“.
- DNS forwarder: Im späteren Betrieb wird der Samba Server als DNS-Server verwendet. Möchte man aber auch DNS-Namen außerhalb der Domäne auflösen, (wie z.B. www.google.de), so muss dem 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.219.1 angegeben.
- Administrator Passwort: Mit diesem Passwort kann man später die Domäne verwalten. Das Passwort sollte sich aus Sicherheitsgründen von dem Passwort des Admin-Kontos des Ubuntu-Servers unterscheiden.
samba-tool domain provision
Hier erstellen wir die Domäne und vergeben das Domänen Admin Kennwort für den Benutzer Administrator.
Anschließend kopieren wir die Kerberos Konfigurationsdatei in das entsprechende Verzeichnis:
cp /var/lib/samba/private/krb5.conf /etc/
Jetzt wird der Samba-DC in Betrieb genommen und andere DNS-Dienste deaktiviert:
systemctl disable --now smbd nmbd winbind systemd-resolved
systemctl unmask samba-ad-dc
systemctl enable --now samba-ad-dc
Domain-Umgebung testen:
Nun testen wir einige Gegebenheiten der Umgebung, die zwangsläufig funktionieren sollten, um die Funktionalität zu gewährleisten:
samba-tool domain level show
netstat -tlpn
hostname && hostname -f && hostname -d
Nach erfolgreicher Erprobung legen wir einen Test-User in der Domain an:
samba-tool user create test
Konfiguration des Windows-Hosts
win01 (Anmeldung mit Install-User):
Hostname ändern (falls noch nicht geschehen) auf win01, danach Neustart des Systems.
Host win01 in Domäne aufnehmen:
Hier wählen wir das Konto Administrator aus und das bei Punkt „samba-tool domain provision“ vergebene Admin Kennwort.
Wenn es hier zu Problemen kommt, sollte hier die DNS Auflösung und die Uhrzeit der beiden Systeme kontrolliert werden ( Windows Client als auch auf dem Samba Domain Controller ).
Anschließend nehmen wir den Rechner in die Domäne ai.dom auf:
Nach der Meldung „Willkommen in der Domäne“ starten wir den PC nochmals neu.
Abschließend melden wir uns mit dem Test-User in der Domäne an:
Wenn wir auch Sie beim Aufbau eines eigenen Domain Controllers oder dem Managed Hosting eines Domain Controllers unterstützen können, dann nehmen Sie gerne Kontakt auf.
- Migration von DropBox zu Nextcloud - 20. September 2024
- Draw.io – Das Diagramm-Tool als Nextcloud-Integration - 6. September 2024
- Plausible Analytics – die Community Edition realisiert mit Docker - 4. September 2024