Kurzüberblick
Part 1 hat den FreeIPA-Server aufgebaut. Part 2 beginnt dort, wo der eigentliche Linux-Betrieb anfängt: Ein Client wird an FreeIPA angebunden, löst zentrale Benutzer und Gruppen auf, erhält Kerberos-Tickets und erlaubt SSH-Logins mit zentralen Identitäten.
Getestet wurde in einem frischen Fedora-44-Lab mit FreeIPA 4.13.3, SSSD 2.13.1, SELinux Enforcing, funktionierendem Forward- und Reverse-DNS sowie einer getrennten Server-/Client-VM. Die Zeitversatz-Prüfung blieb im Lab nicht eindeutig reproduzierbar; Kerberos-Clock-Skew wird deshalb nur als dokumentierte Anforderung eingeordnet, nicht als hier bewiesener Fehlerfall.
Identity-Serie: Wo wir stehen
Dieser Beitrag ist Teil 2 der Identity-Serie mit FreeIPA und Keycloak. Teil 1 behandelt die Installation des ersten FreeIPA-Servers. Dieser Teil zeigt den praktischen Client-Weg: ipa-client-install, SSSD, NSS, PAM, Kerberos, SSH, Cache und Recovery.
Der Test beginnt am FreeIPA Web UI. Der Screenshot zeigt nur die isolierte Labumgebung, keine produktiven Zugangsdaten.
Nach der Anmeldung ist die FreeIPA-Administration erreichbar. Damit ist die Server-Seite für die Client-Prüfungen sichtbar.
Lab-Aufbau
Das Lab bestand aus ipa01.example.test als FreeIPA-Server und client01.example.test als angebundenem Linux-Client. Alle Screenshots und Befehle stammen aus dieser isolierten Testumgebung.
Server: ipa01.example.testClient: client01.example.testDomain: example.testRealm: EXAMPLE.TESTDistribution: Fedora 44FreeIPA: 4.13.3SSSD: 2.13.1SELinux: Enforcing
Der zentrale Benutzer testuser existiert in FreeIPA und wird später vom Linux-Client über SSSD/NSS aufgelöst.
Die Gruppe lab-users belegt die zentrale Gruppenverwaltung und die später sichtbare POSIX-Gruppenauflösung am Client.
Was beim Client-Enrollment passiert
ipa-client-install ist nicht nur ein Paket-Setup. Der Client wird als Host in FreeIPA registriert, bekommt eine Host-Identität, Kerberos-Konfiguration, SSSD-Domain-Konfiguration und die Integration in NSS und PAM. Danach fragt Linux Benutzer- und Gruppeninformationen nicht mehr nur lokal ab, sondern über SSSD aus der zentralen Identity-Quelle.
NSS löst zentrale Benutzer und Gruppen für Linux-Werkzeuge wie id, getent oder ls auf.
PAM nutzt SSSD für Anmeldung, Passwortprüfung und optionales Home-Verzeichnis beim ersten Login.
Kerberos stellt Tickets für Benutzer und Dienste im Realm aus.
SSSD puffert Identitäten und, nach erfolgreicher Anmeldung, Authentifizierungsdaten für definierte Offline-Szenarien.
Voraussetzungen
Vor dem Enrollment müssen Name Resolution, Zeit und Paketbasis stimmen. Besonders wichtig sind der korrekte FQDN des Clients, erreichbare FreeIPA-DNS-Einträge und synchronisierte Zeit.
hostnamectlgetent hosts ipa01.example.testdig +short ipa01.example.testdig +short -x <client-ip>timedatectlchronyc trackinggetenforce
FreeIPA Client installieren
Auf Fedora wird der Client über die FreeIPA-Client-Pakete installiert. Zusätzlich sind SSSD, Kerberos-Werkzeuge und oddjob-mkhomedir relevant, damit zentrale Benutzer sauber anmelden und Home-Verzeichnisse erhalten können.
sudo dnf install -y freeipa-client sssd oddjob-mkhomedir krb5-workstation openssh-server
Linux-Client an FreeIPA anbinden
Im Lab wurde das Enrollment automatisiert ausgeführt. Interaktiv sieht der zentrale Befehl so aus; reale Kennwörter gehören nicht in Skripte, Screenshots oder Artikel.
sudo ipa-client-install \--domain=example.test \--realm=EXAMPLE.TEST \--server=ipa01.example.test \--mkhomedir \--enable-dns-updates
Enrollment auf dem FreeIPA-Server prüfen
Nach dem Enrollment muss der Client als Host in FreeIPA sichtbar sein. Das ist der schnellste Gegencheck, ob der Server die Host-Identität kennt.
ipa host-show client01.example.test
client01.example.test ist als Host in FreeIPA eingetragen. Das ist der sichtbare Server-Nachweis für das abgeschlossene Enrollment.
SSSD: Die Verbindung zwischen Linux und FreeIPA
SSSD ist die zentrale Brücke zwischen Linux und FreeIPA. Es spricht mit der Identity-Quelle, stellt NSS- und PAM-Informationen bereit, verarbeitet Kerberos-Bezüge und verwaltet den lokalen Cache. Für den Betrieb sind systemctl und sssctl die wichtigsten ersten Werkzeuge.
systemctl status sssdsssctl domain-status example.testsssctl user-checks testuser
systemctl is-active sssdsssctl domain-status example.testactiveOnline status: OnlineActive servers:IPA: ipa01.example.testDiscovered IPA servers:- ipa01.example.test
Benutzer über NSS auflösen
Wenn NSS korrekt über SSSD arbeitet, sehen Standard-Linux-Werkzeuge den zentralen Benutzer. Genau das unterscheidet ein funktionierendes Enrollment von einem bloß installierten Client-Paket.
id testusergetent passwd testuser
id testusergetent passwd testuseruid=376600003(testuser) gid=376600003(testuser) groups=376600003(testuser),376600004(lab-users),376600005(linux-admins)testuser:*:376600003:376600003:Test User:/home/testuser:/bin/sh
getent passwd testusertestuser:*:376600003:376600003:Test User:/home/testuser:/bin/sh
Gruppen und POSIX-Attribute
FreeIPA verwaltet POSIX-Attribute wie UID, GID, Login-Shell und Gruppenmitgliedschaften zentral. Der Client löst diese Werte über SSSD auf; lokale Dubletten mit identischen Namen sollten vermieden werden.
getent group lab-usersid testuser
Kerberos-Anmeldung
Kerberos bestätigt, dass der Benutzer im Realm authentifiziert werden kann. kinit holt ein Ticket, klist zeigt das Ergebnis. Im Lab wurde die Ticket-Ausstellung für testuser erfolgreich belegt.
kinit testuserklist
kinit testuserklistPassword for testuser@EXAMPLE.TEST:Ticket cache: KCM:1001Default principal: testuser@EXAMPLE.TESTValid starting Expires Service principal09/19/2026 13:54:16 09/20/2026 13:28:19 krbtgt/EXAMPLE.TEST@EXAMPLE.TEST
PAM, Home-Verzeichnis und SSH
Die Anmeldung am Linux-System läuft über PAM. Mit oddjob-mkhomedir bzw. entsprechender PAM-Integration entsteht das Home-Verzeichnis beim ersten Login. SSH nutzt dadurch denselben zentralen Benutzer wie die lokale Anmeldung.
ssh testuser@client01.example.testpwdid
ssh testuser@client01.example.testpwdidtestuser/home/testuseruid=376600003(testuser) gid=376600003(testuser) groups=376600003(testuser),376600004(lab-users),376600005(linux-admins)
Der zentrale Benutzer kann sich per SSH anmelden; PAM, SSSD und Home-Verzeichnis-Erstellung greifen zusammen.
SSSD Cache und Offline-Verhalten
SSSD kann bereits bekannte Identitäten und nach erfolgreicher Anmeldung auch Authentifizierungsdaten zwischenspeichern. Das bedeutet nicht, dass ein neuer, nie zuvor angemeldeter Benutzer beliebig offline funktioniert. Im Lab wurden Cache-Verhalten, Offline-Authentifizierung nach vorherigem Login sowie Wiederherstellung nach Dienst- und DNS-Problemen geprüft.
sssctl user-checks testusersudo systemctl stop sssdsudo systemctl start sssdsssctl domain-status example.test
DNS-Ausfall, SSSD-Ausfall und Recovery
Im Lab wurden DNS- und SSSD-Ausfälle kontrolliert geprüft und anschließend zurückgenommen. Erwartbar ist: DNS-Probleme treffen neue Auflösungen und Serverkontakte, während SSSD-Cache nur begrenzte lokale Kontinuität gibt. Nach Wiederherstellung von DNS bzw. SSSD müssen id, getent, kinit und SSH wieder sauber funktionieren.
getent hosts ipa01.example.testid testuserkinit testuserssh testuser@client01.example.testsssctl domain-status example.test
Troubleshooting
| Symptom | Prüfung | Typische Ursache |
|---|---|---|
| ipa-client-install findet den Server nicht | dig, getent hosts, SRV Records prüfen | DNS oder Suchdomain falsch |
| id testuser liefert nichts | systemctl status sssd und sssctl domain-status | SSSD-Domain nicht aktiv oder FreeIPA nicht erreichbar |
| kinit schlägt fehl | Realm, Passwort, Zeit und KDC-Erreichbarkeit prüfen | Kerberos-Konfiguration, Uhrzeit oder Credentials |
| SSH-Login funktioniert nicht | PAM, sshd_config, HBAC und Logs prüfen | PAM/HBAC/SSHD blockiert die Anmeldung |
| Home-Verzeichnis fehlt | oddjobd und PAM mkhomedir prüfen | Home-Verzeichnis-Erstellung nicht aktiv |
ipa-client-install findet den Server nicht
- Prüfung
- dig, getent hosts, SRV Records prüfen
- Typische Ursache
- DNS oder Suchdomain falsch
id testuser liefert nichts
- Prüfung
- systemctl status sssd und sssctl domain-status
- Typische Ursache
- SSSD-Domain nicht aktiv oder FreeIPA nicht erreichbar
kinit schlägt fehl
- Prüfung
- Realm, Passwort, Zeit und KDC-Erreichbarkeit prüfen
- Typische Ursache
- Kerberos-Konfiguration, Uhrzeit oder Credentials
SSH-Login funktioniert nicht
- Prüfung
- PAM, sshd_config, HBAC und Logs prüfen
- Typische Ursache
- PAM/HBAC/SSHD blockiert die Anmeldung
Home-Verzeichnis fehlt
- Prüfung
- oddjobd und PAM mkhomedir prüfen
- Typische Ursache
- Home-Verzeichnis-Erstellung nicht aktiv
Ergebniskontrolle
| Prüfbereich | Prüfung | Erwartetes Ergebnis | Status |
|---|---|---|---|
| Client Enrollment | Host client01.example.test in FreeIPA sichtbar | Host ist zentral registriert | PASS |
| SSSD | sssctl domain-status example.test | Domain ist erreichbar und nutzbar | PASS |
| NSS | id/getent für testuser | Zentrale Identität wird aufgelöst | PASS |
| Kerberos | kinit und klist | Ticket im Realm EXAMPLE.TEST vorhanden | PASS |
| PAM/SSH | SSH-Login mit testuser | Zentraler Benutzer kann sich anmelden | PASS |
| Cache/Recovery | SSSD/DNS-Störungen und Rückkehr | Nach Recovery funktionieren Auflösung und Login wieder | PASS |
Client Enrollment
- Prüfung
- Host client01.example.test in FreeIPA sichtbar
- Erwartetes Ergebnis
- Host ist zentral registriert
- Status
- PASS
SSSD
- Prüfung
- sssctl domain-status example.test
- Erwartetes Ergebnis
- Domain ist erreichbar und nutzbar
- Status
- PASS
NSS
- Prüfung
- id/getent für testuser
- Erwartetes Ergebnis
- Zentrale Identität wird aufgelöst
- Status
- PASS
Kerberos
- Prüfung
- kinit und klist
- Erwartetes Ergebnis
- Ticket im Realm EXAMPLE.TEST vorhanden
- Status
- PASS
PAM/SSH
- Prüfung
- SSH-Login mit testuser
- Erwartetes Ergebnis
- Zentraler Benutzer kann sich anmelden
- Status
- PASS
Cache/Recovery
- Prüfung
- SSSD/DNS-Störungen und Rückkehr
- Erwartetes Ergebnis
- Nach Recovery funktionieren Auflösung und Login wieder
- Status
- PASS
Security und Betriebsaspekte
Für Produktion reichen die Lab-Befehle allein nicht aus. Wichtig sind saubere DNS-Zonen, Zeitquellen, SELinux, restriktive Administratorrechte, dokumentierte Enrollment-Prozesse, Logging, Backup des FreeIPA-Servers und ein klares Verfahren für Client-Reenrollment.
Kerberos ist zeitkritisch. Die MIT-Kerberos-Dokumentation beschreibt Clock-Skew als Sicherheitsgrenze. Dieser konkrete Fehlerfall wurde in diesem Lab jedoch nicht zuverlässig reproduziert und wird deshalb nicht als Lab-Nachweis bewertet.
Grenzen dieses Labs
Getestet wurde Fedora 44 als Server- und Client-Plattform, keine Cross-Distribution-Matrix.
Es wurde kein FreeIPA-Replica- oder HA-Aufbau getestet.
HBAC, sudo-Regeln, Passwort-Policies und Lifecycle-Workflows folgen in späteren Lab-Teilen.
Der Zeitversatz-Fehlerfall blieb inconclusive und wird nicht als PASS behauptet.
Wie es in der Identity-Serie weitergeht
Der nächste fachliche Schritt ist der zentrale Identity-Lifecycle: Benutzer anlegen, aktivieren, deaktivieren, Gruppen sauber pflegen, Passwort- und Ablaufverhalten testen und diese Zustände auf einem angebundenen Linux-Client nachweisen. Dieser Folgebeitrag ist noch nicht veröffentlicht und wird deshalb hier nicht verlinkt.






