Active Directory mit Linux
Die Einrichtung einer Active Directory (AD) Alternative auf einem Linux-Server kann mit Hilfe von Samba und anderen Open-Source-Tools erfolgen. Samba kann als Domänencontroller fungieren, der ähnlich wie ein Active Directory-Server Benutzer, Gruppen und Geräte in einer Domäne verwaltet. Die Administration kann ganz einfach über die unter Windows bekannten Tools erledigt werden. Es sind die "Remote Server Administration Tools" (RSAT). RSAT kann kostenlos bei Microsoft heruntergeladen werden. Voraussetzung für die Tools ist lediglich eine Windows Professional Arbeitsstation, die Mitglied der zu verwaltenden Domäne sein muss.
In dieser Anleitung zeige ich, wie man Samba auf einem Linux-Server installiert und einrichtet, zusammen mit zusätzlichen Verwaltungswerkzeugen.
1. Voraussetzungen
Bevor wir mit der Installation beginnen, stellen wir sicher, dass das System folgende Voraussetzungen erfüllt:
- Ein Server mit einer frischen Installation von Debian, Ubuntu oder einer anderen Linux-Distribution.
- Root-Zugriff auf den Server.
- Eine statische IP-Adresse.
- Die DNS-Einstellungen sind konfiguriert. (siehe folgendes Beispiel)
Konfiguration einer statischen IP-Adresse
Eine statische IP-Adresse wird mittels iface eth0 inet static
konfiguriert. Das folgende Beispiel zeigt die Konfiguration mit einer IP-Adresse, einer Subnetzmaske, einem Default Gateway und einem DNS-Server:
iface eth0 inet static
address 192.168.0.111
netmask 255.255.255.0
gateway 192.168.0.1
dns-search somedomain.org
dns-nameservers 192.168.0.1
2. Installation von Samba
a. Aktualisieren des Systems
Bevor man Samba installiert, sollte man sicherstellen, dass das System auf dem neuesten Stand ist:
sudo apt update && sudo apt upgrade -y
b. Installation von Samba
Nun installieren wir Samba und die notwendigen Pakete mit folgendem Befehl:
sudo apt install samba smbclient winbind libnss-winbind libpam-winbind krb5-user -y
Während der Installation wird die Konfiguration für Kerberos abgefragt. Hierbei gibt man den Namen der Domäne ein (z. B. example.com
).
3. Konfiguration von Samba
a. Bearbeiten der Samba-Konfigurationsdatei
Die zentrale Konfigurationsdatei für Samba befindet sich unter /etc/samba/smb.conf
. Diese Datei muss so angepasst werden, dass Samba als Domänencontroller fungieren kann.
Wir öffnen die Datei in einem Texteditor:
sudo nano /etc/samba/smb.conf
Dann fügen wir die folgende Konfiguration hinzu oder passen sie an:
[global]
workgroup = EXAMPLE
realm = EXAMPLE.COM
netbios name = SERVERNAME
server role = active directory domain controller
dns forwarder = 8.8.8.8
idmap_ldb:use rfc2307 = yes
[sysvol]
path = /var/lib/samba/sysvol
read only = no
[netlogon]
path = /var/lib/samba/sysvol/example.com/scripts
read only = no
- workgroup: Der NetBIOS-Name der Arbeitsgruppe oder Domäne.
- realm: Der vollständige Domänenname in Großbuchstaben.
- netbios name: Der NetBIOS-Name des Servers.
- dns forwarder: Die IP-Adresse des DNS-Forwarders, normalerweise der DNS-Server des Providers.
b. Starten und Aktivieren von Samba
Nachdem man die Konfigurationsdatei angepasst hat, kann man den Samba-Dienst starten und aktivieren:
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
Für den produktiven Einsatz in einem Unternehmen
Um immer die aktuellste Version von Samba 4 zu nutzen, empfiehlt es sich, auf die Pakete der Firma SerNet zurückzugreifen. Für diese Pakete werden eigene Repositories bereitgestellt, sodass die Version bei einem update des Systems immer aktualisiert wird. Die kostenpflichtigen Pakete sind unter Samba + verfügbar.
c. Provisionierung der Domäne
Dieser Vorgang entspricht dem "dcpromo" auf einem Windows-Domaincontroller. So wird die Samba-Domäne provisioniert, was die initiale Einrichtung eines neuen Domänencontrollers umfasst:
sudo samba-tool domain provision --use-rfc2307 --interactive
Man wird durch einige Fragen geführt, darunter:
- Realm: Dein Domänenname (z.B.
example.com
). - Domain: Dein NetBIOS-Domänenname (z.B.
EXAMPLE
). - Server Role: Setze dies auf
dc
(Domain Controller). - DNS backend: Wähle
SAMBA_INTERNAL
.
4. Konfiguration von DNS
Samba übernimmt auch die DNS-Verwaltung für die Domäne. Um dies zu konfigurieren, muss man sicherstellen, dass der Server die DNS-Anfragen für die Domäne korrekt bearbeitet.
Dafür bearbeiten wir die /etc/resolv.conf
, um Samba als den primären DNS-Server zu verwenden:
sudo nano /etc/resolv.conf
Wir fügen folgende Zeile hinzu:
nameserver 127.0.0.1
5. Integration von Benutzer- und Gruppenverwaltung
Samba kann Benutzer und Gruppen ähnlich wie Active Directory verwalten. Um neue Benutzer hinzuzufügen:
sudo samba-tool user create username
Um eine Gruppe hinzuzufügen:
sudo samba-tool group add groupname
6. Verwaltungstools für Samba
a. Verwendung von RSAT
(Remote Server Administration Tools)
Windows-Administratoren können RSAT auf einem Windows-Client installieren und damit den Samba-Server verwalten. RSAT bietet dabei eine komfortable grafische Oberfläche zur Verwaltung von Benutzern, Gruppen und Computern in der Domäne.
b. Webbasierte Verwaltung mit Cockpit
**
Cockpit ist ein Webinterface zur Verwaltung von Linux-Servern, das auch Samba-Integrationen ermöglicht:
sudo apt install cockpit
sudo systemctl start cockpit
sudo systemctl enable cockpit
Nach der Installation kann man Cockpit über den Browser aufrufen: https://<server-ip>:9090
.
7. Einrichtung eines Dateifreigabedienstes
Samba ermöglicht auch die Freigabe von Verzeichnissen im Netzwerk:
Füge am Ende der smb.conf
Folgendes hinzu:
[freigabe]
path = /srv/samba/freigabe
browseable = yes
read only = no
guest ok = yes
Erstelle das Verzeichnis und setze die Berechtigungen:
sudo mkdir -p /srv/samba/freigabe
sudo chmod 0777 /srv/samba/freigabe
8. Testen der Einrichtung
An dieser Stelle sollten einmal wir testen, ob alle Dienste bisher - Kerberos, DNS, LDAP und die Dateisystemdienste - auch korrekt funktionieren:
- Test Samba
sudo netstat -tlp | grep samba
- Überprüfung des DNS:
host samba4-1 host -t SRV _kerberos._tcp.example.com host -t SRV _ldap._tcp.example.com host -t A example.com 127.0.0.1
- Überprüfung der Domänenanmeldung:
sudo kinit administrator
- Überprüfung des Kerberos-Tickets:
klist
9. Einrichtung eines Zeitservers
Im Active Directory wird für die Replikation der Objekte ein Zeitserver (ntp) für Signierungen benötigt. Dazu muss der "ntp" installiert werden. Um den Zeitserver zu konfigurieren, schreiben wir eine Konfigurationsdatei: "/etc/ntp.conf".
server 127.127.1.0
fudge 127.127.1.0 stratum 10
server 0.pool.ntp.org iburst prefer
server 1.pool.ntp.org iburst prefer
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket /var/lib/samba/ntp_signd/
restrict default kod nomodify notrap nopeer mssntp
restrict 127.0.0.1
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
Der Befehl chgrp ntp /var/lib/samba/ntp_signd/
wird verwendet, um die Gruppenzugehörigkeit des Verzeichnisses /var/lib/samba/ntp_signd/
auf die Gruppe ntp
zu ändern. Dies ist insbesondere dann relevant, wenn man sicherstellen möchte, dass der NTP-Dienst (Network Time Protocol) auf das Verzeichnis zugreifen kann.
- Gruppenbesitzer ändern
chgrp ntp /var/lib/samba/ntp_signd/
- Zugriffsrechte überprüfen
ls -ld /var/lib/samba/ntp_signd/
- Zugriffsrechte anpassen
sudo chmod 770 /var/lib/samba/ntp_signd/
Dies gewährt dem Besitzer und der Gruppe Lese-, Schreib- und Ausführungsrechte, während andere Benutzer keinen Zugriff haben.
10. Einrichtung des AD
Die Administration der Benutzer, Gruppen und Gruppenrichtlinien können jetzt mit dem Kommandozeilen-tool samba-tool
durchgeführt werden. Auf RSAT kann aber meiner Meinung nicht verzichtet werden, da die Administration mittels samba-tool
recht begrenzt und unkomfortabel ist. RSAT steht auf der Webseite von Microsoft zum kostenlosen Download zur Verfügung.
Benutzer, die in der Domäne schon existieren, können sich bereits anmelden. Aber noch fehlt den Benutzern ein Home-Directory und ein Speicherort für servergespeicherte Profile.
10.1 Userverzeichnisse
Da die Domäne an dieser Stelle vollständig konfiguriert ist, können die ersten Windows-Clients und auch Linux Clients wie gewohnt in die Domäne aufgenommen werden. In den Netzwerkeinstellungen des Clients sollte der neue Domaincontroller als DNS-Server eingetragen sein, sonst kann der Client die Domäne und alle Dienste in der Domäne nicht finden. Nachdem der Client nun die Domäne aufgenommen wurde und die RSAT installiert ist, kann die Domäne bequem administriert werden.
Auf Domaincontrollern sollten grundsätzlich keine Daten gespeichert werden. Die Home-Directories und Profilverzeichnisse der Benutzer sowie alle sonstigen Daten sollten immer auf zusätzlichen Fileservern abgelegt werden.
Fazit
Mit diesen Schritten hat man einen voll funktionsfähigen Samba-Domänencontroller auf einem stabilen Linux-Server eingerichtet, der als vollständige Active Directory-Alternative fungiert. Durch die Verwendung von Samba in Kombination mit Verwaltungswerkzeugen wie Cockpit und RSAT erhält man ein leistungsfähiges und flexibles System zur Verwaltung von Benutzern, Gruppen und Computern im Netzwerk.