Samba ist nicht nur ein leistungsfähiges Tool zur Datei- und Druckerfreigabe, sondern kann auch als Active Directory Domain Controller (AD DC) fungieren. Dies bietet Linux-Nutzern eine flexible und kostengünstige Möglichkeit, Windows- und Linux-Clients in einem gemeinsamen Verzeichnisdienst zu verwalten. In diesem Beitrag erklären wir, wie Samba als AD DC konfiguriert und betrieben wird.
1. Was ist ein Active Directory Domain Controller?
Ein Active Directory Domain Controller (AD DC) ist ein Server, der das zentrale Verzeichnis in einer Active Directory-Domäne verwaltet. In einer typischen Windows-Umgebung ermöglicht der AD DC:
- Benutzer- und Gruppenverwaltung: Zentrale Verwaltung von Benutzerkonten und Gruppen.
- Authentifizierung: Single-Sign-On (SSO) für Benutzer und Geräte.
- Richtlinienverwaltung: Zuweisung und Verwaltung von Gruppenrichtlinien (GPOs) für Benutzer und Geräte.
- DNS-Dienste: Auflösung von Netzwerknamen und Verwaltung von DNS-Einträgen.
Samba kann als vollständiger Ersatz für einen Windows Server fungieren und alle diese Aufgaben übernehmen.
2. Voraussetzungen für Samba als AD DC
Bevor du Samba als Domain Controller einrichtest, solltest du sicherstellen, dass dein System folgende Voraussetzungen erfüllt:
- Aktuelle Samba-Version: Du benötigst mindestens Samba 4.x, da erst diese Version die Active Directory-Funktionalität vollständig unterstützt.
- Funktionierendes DNS: DNS ist eine wesentliche Komponente eines AD DC. Samba verwendet
BIND
oder seinen eigenen internen DNS-Dienst. - Zeitserver (NTP): Eine synchronisierte Systemzeit ist für die korrekte Funktion von Kerberos-Authentifizierungen wichtig.
- Root-Rechte: Für die Installation und Konfiguration von Samba benötigst du Root- oder Administratorrechte.
3. Installation von Samba als AD DC
Die Installation von Samba erfolgt unter den meisten Linux-Distributionen über den Paketmanager. Unter Debian- oder Ubuntu-basierten Systemen führst du folgende Befehle aus:
sudo apt update
sudo apt install samba smbclient winbind krb5-config krb5-user
Zusätzlich solltest du den DNS-Server BIND
installieren, wenn du diesen anstelle des internen DNS-Servers von Samba verwenden möchtest:
sudo apt install bind9
4. Samba als AD DC konfigurieren
Nach der Installation von Samba kannst du den AD DC-Modus aktivieren und eine neue Domäne einrichten. Zunächst benennst du die bestehende Konfigurationsdatei um:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Jetzt führst du das samba-tool
aus, um die Domäne zu initialisieren:
sudo samba-tool domain provision --use-rfc2307 --interactive
Im interaktiven Modus wirst du nach verschiedenen Informationen gefragt:
- Realm: Dies ist dein vollständiger DNS-Domänenname, z. B.
example.com
. - Domain: Der NetBIOS-Name deiner Domäne, z. B.
EXAMPLE
. - Administrator-Passwort: Vergib ein sicheres Passwort für das Administrator-Konto.
- DNS-Backend: Wähle zwischen dem integrierten Samba-DNS oder
BIND9_DLZ
.
Sobald dieser Prozess abgeschlossen ist, erstellt Samba eine neue smb.conf
, die auf die Funktionalität als Domain Controller abgestimmt ist.
5. DNS-Server einrichten
Falls du dich für den internen Samba-DNS-Server entschieden hast, brauchst du keine weiteren Schritte auszuführen. Wenn du BIND
verwenden möchtest, musst du den Dienst konfigurieren, damit er mit Samba kommuniziert:
Erstelle zunächst eine Konfigurationsdatei in /etc/bind/named.conf.options
:
sudo nano /etc/bind/named.conf.options
Füge den folgenden Abschnitt hinzu, um die Zusammenarbeit mit Samba zu ermöglichen:
options {
directory "/var/cache/bind";
allow-query { any; };
forwarders {
8.8.8.8; 8.8.4.4;
};
dnssec-validation auto;
};
Erstelle anschließend eine Bindung zwischen Samba und BIND
:
sudo samba-tool dns zonecreate 127.0.0.1 example.com
Starte BIND
und Samba neu:
sudo systemctl restart bind9
sudo systemctl restart smbd nmbd winbind
6. Kerberos konfigurieren
Für die Authentifizierung wird Kerberos verwendet. Bearbeite die Datei /etc/krb5.conf
, um sicherzustellen, dass sie den richtigen Realms und KDCs entspricht:
sudo nano /etc/krb5.conf
Füge folgende Konfiguration hinzu oder passe sie an:
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = true
Jetzt kannst du den Kerberos-Zugang mit folgendem Befehl testen:
kinit administrator
Wenn alles richtig konfiguriert ist, wirst du nach dem Passwort gefragt und erhältst ein Kerberos-Ticket ohne Fehlermeldungen.
7. Samba-Dienste aktivieren und testen
Stelle sicher, dass die Samba-Dienste bei jedem Systemstart automatisch starten:
sudo systemctl enable smbd nmbd winbind
sudo systemctl start smbd nmbd winbind
Du kannst nun prüfen, ob Samba korrekt als Domain Controller fungiert, indem du folgenden Befehl ausführst:
sudo samba-tool domain level show
8. Windows-Clients an die Domäne anbinden
Um einen Windows-Client der neu erstellten Domäne hinzuzufügen, gehe folgendermaßen vor:
- Öffne die Systemsteuerung und gehe zu System und Sicherheit > System.
- Klicke auf Einstellungen ändern und wähle im Abschnitt Domäne die Option Ändern.
- Gib den Domänennamen (z. B.
EXAMPLE
) ein und klicke auf OK.
Du wirst zur Eingabe der Administrator-Anmeldedaten aufgefordert. Nach erfolgreicher Anmeldung wird der Computer der Domäne hinzugefügt, und du kannst Benutzer zentral über den Domain Controller verwalten.
9. Gruppenrichtlinien (GPO) verwalten
Ein wichtiger Bestandteil von Active Directory sind Gruppenrichtlinien, die es Administratoren ermöglichen, Konfigurationen und Sicherheitsrichtlinien zentral zu steuern. Samba unterstützt Gruppenrichtlinien über das Group Policy Management Tool
von Windows.
- Installiere das RSAT (Remote Server Administration Tools)-Paket auf einem Windows-Client.
- Öffne das Group Policy Management Tool und verbinde es mit deinem Samba-Server.
- Erstelle und verwalte Gruppenrichtlinien wie gewohnt.
10. Wartung und Sicherheit
Um den Samba-AD DC sicher und stabil zu halten, sollten regelmäßige Wartungsmaßnahmen durchgeführt werden:
- Updates installieren: Stelle sicher, dass Samba und alle abhängigen Pakete auf dem neuesten Stand sind.
sudo apt update && sudo apt upgrade
DNS überwachen: Überprüfe regelmäßig die DNS-Einträge, um sicherzustellen, dass alle Clients korrekt im Netzwerk registriert sind.
samba-tool dns query 127.0.0.1 example.com @ ALL
- Kerberos-Tickets überwachen: Kerberos-Tickets haben eine begrenzte Lebensdauer und müssen regelmäßig erneuert werden. Stelle sicher, dass die Zeit auf allen Clients synchronisiert ist.
Fazit
Samba als Active Directory Domain Controller ist eine hervorragende Alternative zu einem teuren Windows-Server, wenn du eine plattformübergreifende Umgebung verwalten möchtest. Die Konfiguration ist etwas komplexer als bei der reinen Dateifreigabe, aber mit den richtigen Schritten lässt sich ein stabiles und sicheres System aufbauen. Mit Samba als AD DC kannst du Benutzer und Geräte zentral verwalten, Gruppenrichtlinien anwenden und alle Vorteile eines Active Directory-Systems nutzen – und das alles auf einer Linux-Plattform.