Die Verwaltung von Benutzern in einer Active Directory (AD) Umgebung ist in der Regel eine Aufgabe, die auf Windows-Systemen erfolgt. Doch auch Linux-Server und Workstations können vollständig in eine AD-Infrastruktur integriert und genutzt werden, um Benutzer zu verwalten und zentralisierte Authentifizierungsdienste in einem Netzwerk bereitzustellen. Dieser Blog-Beitrag beleuchtet, wie die Benutzerverwaltung in einem AD-Umfeld unter Linux funktioniert und wie man Linux-Systeme in AD integriert, um AD-Benutzer anzulegen, zu verwalten und zu authentifizieren.
Vorteile der Integration von Linux in Active Directory
Durch die Integration eines Linux-Systems in eine AD-Domäne profitieren Administratoren von zahlreichen Vorteilen:
- Zentrale Benutzerverwaltung: Alle Benutzer, Gruppen und deren Berechtigungen können über das AD zentral verwaltet werden.
- Single Sign-On (SSO): Benutzer können sich mit den gleichen Anmeldeinformationen auf verschiedenen Systemen authentifizieren, ohne separate Konten pflegen zu müssen.
- Kerberos-basierte Authentifizierung: Das sichere Kerberos-Protokoll wird verwendet, um Benutzer zu authentifizieren.
- Zentrale Passwortverwaltung: AD bietet eine zentrale Passwortverwaltung, die auf allen integrierten Systemen durchgesetzt wird, auch auf Linux.
Voraussetzungen zur Benutzerverwaltung in Active Directory unter Linux
Um Linux-Systeme mit AD zu verbinden und Benutzer zu verwalten, müssen einige Pakete und Konfigurationen eingerichtet werden:
- Samba: Ermöglicht die Teilnahme des Linux-Systems an einer Windows-basierten Domäne.
- SSSD (System Security Services Daemon): Ermöglicht es Linux-Systemen, Benutzerinformationen und Authentifizierungsdienste von AD abzurufen.
- Kerberos: Authentifiziert Benutzer über das AD-Kerberos-Protokoll.
- Realmd: Ein Tool zur einfachen Domain-Integration unter Linux.
Diese Tools können auf gängigen Linux-Distributionen wie Ubuntu/Debian oder RHEL/CentOS installiert werden. Beispiel für die Installation der benötigten Pakete:
sudo apt-get install realmd sssd sssd-tools samba-common-bin adcli krb5-user
Schritte zur AD-Integration eines Linux-Systems
1. Domänenbeitritt des Linux-Systems
Bevor Benutzer aus dem Active Directory auf dem Linux-System verwaltet werden können, muss der Host der AD-Domäne beitreten. Dies kann mit dem realm
Befehl erfolgen.
Zuerst muss überprüft werden, ob die Domäne sichtbar ist:
realm discover domain.local
Wenn die Domäne korrekt erkannt wird, kann der Linux-Host der Domäne beitreten:
sudo realm join domain.local -U Administrator
Nach der Eingabe des Passworts des AD-Administrators wird das System der Domäne beitreten. Danach sollten AD-Benutzer sich am System authentifizieren können.
2. SSSD und Samba Konfiguration
Nach dem Domänenbeitritt wird der sssd
Dienst verwendet, um Benutzerinformationen von der AD-Domäne abzurufen und lokale Benutzerverwaltungsfunktionen anzubieten.
Die Konfiguration von SSSD befindet sich in der Datei /etc/sssd/sssd.conf
. Ein typisches Setup könnte so aussehen:
[sssd]
services = nss, pam
config_file_version = 2
domains = domain.local
[domain/domain.local]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
krb5_realm = DOMAIN.LOCAL
realmd_tags = manages-system joined-with-samba
Die Samba-Konfigurationsdatei /etc/samba/smb.conf
sollte ebenfalls entsprechend der AD-Domäne angepasst werden:
[global]
workgroup = DOMAIN
realm = DOMAIN.LOCAL
security = ads
ads dns update = Yes
template shell = /bin/bash
3. Benutzerverwaltung mit AD-Benutzern
Nach der Integration können AD-Benutzer nahtlos auf dem Linux-System verwaltet werden. Die Befehle, die in einer AD-Umgebung verwendet werden, sind identisch mit denen für lokale Benutzer auf Linux-Systemen, mit dem Unterschied, dass die Benutzerinformationen aus AD bezogen werden.
- Auflösung von AD-Benutzern: Um Informationen über einen AD-Benutzer zu erhalten, kann der Befehl
id
verwendet werden:
id benutzername@domain.local
Dieser Befehl zeigt die UID, GID und Gruppen des Benutzers an.
Benutzerlogin auf dem Linux-System: AD-Benutzer können sich nun mit ihren AD-Anmeldeinformationen auf dem Linux-System anmelden. Hierbei wird automatisch Kerberos zur Authentifizierung verwendet, sodass der Benutzer Single Sign-On (SSO) nutzen kann.
Kerberos-Ticket erhalten: Um zu überprüfen, ob ein Benutzer erfolgreich authentifiziert wurde, kann ein Kerberos-Ticket angefordert werden:
kinit benutzername@DOMAIN.LOCAL
klist
- Dies zeigt das Kerberos-Ticket des Benutzers an, das für die Authentifizierung verwendet wird.
4. Passwortverwaltung
Passwörter werden direkt im Active Directory verwaltet. Das bedeutet, dass Linux-Administratoren, die AD-Tools verwenden, keine speziellen lokalen Mechanismen benötigen, um Passwörter zu ändern.
- Passwortänderung über Linux: Benutzer können ihr AD-Passwort direkt über das Linux-System ändern:
passwd
- Dieser Befehl aktualisiert das Passwort im AD und gilt für alle Systeme, die in der Domäne integriert sind.
5. Zugriffssteuerung
SSSD bietet die Möglichkeit, die Zugriffssteuerung auf AD-Basis zu konfigurieren. Zum Beispiel können Sie festlegen, welche Benutzer oder Gruppen sich auf dem Linux-System anmelden dürfen. Dazu wird die Datei /etc/sssd/sssd.conf
angepasst.
Beispiel, um nur Mitgliedern einer bestimmten AD-Gruppe den Zugang zu gewähren:
access_provider = ad
ad_access_filter = (memberOf=CN=linuxadmins,OU=groups,DC=domain,DC=local)
Nur Mitglieder der Gruppe „linuxadmins“ dürfen sich nun auf dem Linux-System anmelden.
Fehlerbehebung und Tipps
Falls Benutzerprobleme auftreten oder die AD-Integration nicht wie erwartet funktioniert, helfen die folgenden Ansätze bei der Fehlerbehebung:
- Logdateien überprüfen:
/var/log/sssd/sssd.log
(SSSD-Logs)/var/log/auth.log
(Authentifizierungslogs)
- SSSD-Dienst neustarten: Falls Änderungen an der Konfiguration vorgenommen wurden, muss der SSSD-Dienst neugestartet werden:
sudo systemctl restart sssd
Kerberos testen: Kerberos-Authentifizierungstests können wertvolle Hinweise liefern, ob das AD richtig funktioniert:
kinit benutzername@DOMAIN.LOCAL
- DNS-Konfiguration prüfen: Active Directory hängt stark von DNS ab. Stellen Sie sicher, dass das Linux-System den richtigen DNS-Server (den AD-DNS-Server) verwendet und Domänennamen korrekt auflösen kann.
Fazit
Die Integration von Linux-Systemen in eine Active Directory-Umgebung ermöglicht eine nahtlose Verwaltung von Benutzern und zentralisierte Authentifizierungsdienste. Durch den Einsatz von Tools wie Samba, SSSD und Kerberos können Linux-Hosts problemlos AD-Benutzer verwalten und authentifizieren, was die Verwaltung in gemischten Umgebungen erheblich vereinfacht. Mit einer guten Konfiguration und ein wenig Troubleshooting können Linux-Admins effizient in Windows-geprägte Netzwerke integriert werden.