🔧 Active Directory-Anbindung unter Ubuntu (22.04 LTS / 24.04 LTS)
🎯 Ziel
Ubuntu wird Mitglied einer Microsoft-AD-Domäne.
Damit können sich Benutzer mit ihren AD-Konten anmelden, erhalten automatisch Home-Verzeichnisse und CIFS-/SMB-Freigaben werden mit Kerberos-SSO eingebunden – ohne Klartextpasswörter.
🧩 1. Voraussetzungen
-
DNS-Konfiguration
Der DNS-Resolver muss auf einen AD-Domain-Controller (DC) zeigen.
Prüfen:resolvectl status dig _ldap._tcp.deinefirma.local SRV -
Zeit-Synchronisierung
AD-Kerberos verlangt eine Differenz von weniger als 5 Minuten:timedatectl set-ntp true timedatectl status -
Hostname konfigurieren
Setzen Sie den korrekten Hostname:hostnamectl set-hostname ubuntu01.deinefirma.local -
Firewall-Regeln
Erlauben Sie den Zugriff auf die DC-Ports für LDAP, LDAPS, Kerberos, DNS und SMB.
⚙️ 2. Pakete installieren
Aktualisieren der Paketliste und Installation der benötigten Pakete:
sudo apt update
sudo apt install -y realmd sssd-ad sssd-tools adcli samba-common krb5-user packagekit-
realmd → Erkennt und verbindet Linux-Systeme mit Active Directory oder Kerberos-Domänen.
-
sssd-ad → AD-Backend für den System Security Services Daemon (SSSD), sorgt für Anmeldung und Benutzerverwaltung über AD.
-
sssd-tools → Zusatzwerkzeuge zur Verwaltung und Diagnose von SSSD (z. B. Cache löschen, Status prüfen).
-
adcli → Stellt die Verbindung zum AD her („Domäne beitreten“), erzeugt Computer-Objekte in AD.
-
samba-common → Grundkomponenten für SMB/CIFS-Kommunikation mit Windows-Servern.
-
krb5-user → Kerberos-Client, ermöglicht sichere Ticket-basierte Authentifizierung (Single Sign-On).
-
packagekit → Schnittstelle für automatische Paketinstallation, wird von
realmdgenutzt.
🏁 3. Domäne entdecken & beitreten
Ermitteln Sie die AD-Domäne:
realm discover DEINEFIRMA.LOCALDomänenbeitritt:
sudo realm join DEINEFIRMA.LOCAL -U AdministratorDie folgenden Konfigurationsdateien werden automatisch angelegt:
/etc/krb5.keytab/etc/krb5.conf/etc/sssd/sssd.conf
Steuern Sie die Login-Rechte:
sudo realm permit --all
# oder gezielt Gruppen:
# sudo realm permit "DOMÄNE\\Linux-Admins"🔍 4. Grundtests
Führen Sie folgende Tests aus:
-
Kerberos-Ticket beziehen und prüfen:
kinit benutzer@DEINEFIRMA.LOCAL klist -
Benutzerinformationen aus AD abrufen:
id benutzer@DEINEFIRMA.LOCAL -
SSSD-Dienststatus überprüfen:
systemctl status sssd journalctl -u sssd --since "10 min ago"
⚙️ 5. Konfiguration von SSSD & PAM
5.1 SSSD-Konfiguration (/etc/sssd/sssd.conf)
Erstellen bzw. Bearbeiten der Datei /etc/sssd/sssd.conf:
[sssd]
services = nss, pam
config_file_version = 2
domains = DEINEFIRMA.LOCAL
[domain/DEINEFIRMA.LOCAL]
id_provider = ad
access_provider = ad
ldap_id_mapping = true
use_fully_qualified_names = False
fallback_homedir = /home/%u
default_shell = /bin/bash
cache_credentials = True
krb5_store_password_if_offline = True
ad_domain = DEINEFIRMA.LOCAL
krb5_realm = DEINEFIRMA.LOCAL
case_sensitive = FalseStellen Sie sicher, dass die Rechte korrekt gesetzt sind:
sudo chmod 600 /etc/sssd/sssd.conf
sudo systemctl restart sssd5.2 Automatische Home-Verzeichnisse
Fügen Sie in der Datei /etc/pam.d/common-session am Ende folgenden Eintrag hinzu:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077Beim ersten Login eines AD-Benutzers wird somit automatisch das Home-Verzeichnis /home/<benutzer> erstellt.
👤 6. Benutzerverwaltung (AD-User auf Ubuntu)
-
Es werden keine lokalen Accounts in
/etc/passwdbenötigt.
SSSD liefert die Benutzerinformationen dynamisch aus AD. -
Anmeldung erfolgt als:
DOMÄNE\benutzeroderbenutzer@firma.local. -
Cache der Benutzerdaten ermöglicht Offline-Login.
Beispiel:id max.mustermann@DEINEFIRMA.LOCAL ls /home/ # → zeigt /home/max.mustermann/ -
Cache-Pfad:
/var/lib/sss/db/
🧠 7. Sudo-Integration (optional)
Um AD-Benutzern, z. B. der Gruppe „Domänen-Admins“, Sudo-Rechte zu gewähren:
-
Öffnen Sie eine neue Datei:
sudo visudo -f /etc/sudoers.d/ad-admins -
Fügen Sie folgenden Inhalt ein:
%DEINEFIRMA\\Domänen-Admins ALL=(ALL:ALL) ALLHinweis: Der Backslash in sudoers muss doppelt escaped (\) werden.
🔐 8. CIFS-/SMB-Freigaben ohne Passwort (Kerberos)
Beispiel-Eintrag in /etc/fstab:
# Kerberos-Authentifizierung, kein Passwort nötig
//fileserver.deinefirma.local/share /mnt/share cifs sec=krb5,vers=3.0,multiuser,seal,cruid=1000,cache=strict,iocharset=utf8,x-systemd.automount,x-systemd.idle-timeout=600,_netdev,nofail 0 0Erklärung:
sec=krb5: Aktiviert Kerberos-SSO.multiuser: Mehrere Benutzer erhalten eigene Kerberos-Tickets.seal: Aktiviert SMB-Verschlüsselung/Signierung.cruid=1000: Gibt die UID des eingeloggten Benutzers an.x-systemd.automount: Automatischer Mount beim Zugriff.
Prüfen Sie das Ticket:
klist
ls /mnt/share🔄 9. Automatisches Kerberos-Ticket-Renewal (optional)
Für dauerhafte Sessions oder Dienste erstellen Sie folgenden systemd-Service in /etc/systemd/system/krenew@.service:
[Unit]
Description=Renew Kerberos ticket for %i
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/krenew -K 60 -i
User=%i
Restart=always
[Install]
WantedBy=default.targetAktivieren:
sudo systemctl enable --now krenew@benutzer.service🧰 10. Alternative (nur falls nötig): Winbind
Obwohl SSSD heute Standard ist, funktioniert auch Winbind:
-
Installation:
sudo apt install -y samba winbind libpam-winbind libnss-winbind -
Domänenbeitritt:
sudo net ads join -U Administrator wbinfo -u wbinfo -g -
Beispielhafte Konfiguration in
/etc/samba/smb.conf:[global] workgroup = DEINEFIRMA security = ADS realm = DEINEFIRMA.LOCAL winbind use default domain = yes idmap config * : backend = tdb idmap config * : range = 10000-20000
Wichtig: Winbind darf nicht gleichzeitig mit SSSD verwendet werden!
🚨 11. Troubleshooting-Checkliste
| Problem | Überprüfung |
|---|---|
| Kein Login | journalctl -u sssd |
| Zeitdifferenz | timedatectl |
| DNS-Fehler | dig _kerberos._tcp.DOMÄNE SRV |
| Kerberos-Fehler | kinit und klist |
| Share-Mount scheitert | smbclient -L //server -k |
| Ungültiger Benutzername | Varianten: user@DOMAIN, DOMAIN\user |
↩️ 12. Domäne verlassen
Um die Domäne zu verlassen, führen Sie Folgendes aus:
sudo realm leave DEINEFIRMA.LOCAL
sudo systemctl restart sssd🔒 13. Sicherheits-Empfehlungen
- Keine Passwörter in
/etc/fstaboder Skripten verwenden. - Schützen Sie
/etc/sssd/sssd.confmitchmod 600. - Sichern Sie
/etc/krb5.keytabdurch Backups. - Beschränken Sie den Zugriff über
realm permit. - Für SMB-Verbindungen sollte, wenn möglich,
sec=krb5pfür signierte und verschlüsselte Verbindungen genutzt werden.