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.

Samba +

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.