In dem letzten Beitrag zu LDAP und SSSD unter Opensuse 12.3
habe ich ein wenig über die zwangsweise, aber unkommentierte Einführung von SSSD unter Opensuse 12.2/12.3 lamentiert. Nun ist es allerdings an der Zeit, sich produktiv mit dieser Neuerung auseinander zu setzen. In diesem kurzen Artikel fasse ich kurz einige wissenswerte Punkte zu SSSD zusammen, bevor wir uns in weiteren Artikeln mit der Konfiguration eines LDAP-Servers und von LDAP-Clients unter Opensuse 12.3 auseinandersetzen.
Ich bin allerdings kein SSSD-Spezialist. Die nachfolgenden Infos stellen lediglich eine kurze Zusammenfassung dessen dar, was ich auf die Schnelle an Infos durchgesehen habe. Ferner gebe ich einige Links an für diejenigen, die sich in SSSD und seine die Konfiguration selbst einlesen wollen.
SSSD
Vereinfachte Konfiguration für die Nutzung zentraler Informationsspeicher für die Authentisierung im Netzwerk
SSSD ist von Red Hat entwickelt worden, um Authentifizierungen gegenüber verschiedenen zentralen Authentifizierungsquellen eines Netzwerkes einfacher konfigurierbar und sicherer zu machen. Soweit ich die Dokumentation verstehe, gab es zwei wichtige Ziele:
- Verschiedene Auth-Domainen wie LDAP, Kerberos, AD, IPA, Lokale Passwd etc. sollen in einer gemeinsamen Konfiguration behandelt werden können.
- PAM soll bei User-Authentifizierung durch ein zentrales SSSD-PAM-Module für verschiedene Auth-Quellen unterstützt werden.
Damit sollte der Wirrwarr an unterschiedlichen Konfigurationsdateien für PAM-Module pam_ldap und pam_nss zugunsten eines zentralen Mechanismus ausgedünnt werden. Dies ist aus meiner Sicht auch ganz erfolgreich geschehen. Ich zitiere aus http://linux.die.net/man/8/sssd:
SSSD provides a set of daemons to manage access to remote directories and authentication mechanisms. It provides an NSS and PAM interface toward the system and a pluggable backend system to connect to multiple different account sources as well as D-Bus interface. It is also the basis to provide client auditing and policy services for projects like FreeIPA. It provides a more robust database to store local users as well as extended user data.
Weitere einführende Links:
http://www.linuxalt.cz/files/stazeni/2012/2012-11-03-LA-206-05-Jakub_Hrozek-FreeIPA.pdf
https://fedorahosted.org/sssd/
http://www.linuxtopia.org/online_books/rhel6/rhel_6_deployment/rhel_6_deployment_sect-SSSD_User_Guide-Introduction-SSSD_Features.html
http://docs.fedoraproject.org/en-US/Fedora/14/html/Deployment_Guide/sect-SSSD_User_Guide-Introduction-SSSD_Features.html
http://lwn.net/Articles/457415/
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/SSSD-Introduction.html
Offline Authentication
SSSD bringt zudem “Vorteile” mit sich bzgl. der Möglichkeit einer “Offline Authentication”. “Offline Authentication” bedeutet hier, dass die Authentifizierung eines Users, dessen Credentials eigentlich auf einem LDAP-Server oder in einem anderen System liegen, auch dann noch funktionieren soll, wenn der LDAP-Server mal nicht erreichbar ist.
Das setzt eine Art lokales Caching von User-Informationen und Credentials der Auth-Quellen in einem geeigneten Format auf dem Host voraus, auf dem der Login erfolgt. PAM stützt sich dann auf die gecachte Information und erlaubt den Zugang von Nutzern durch Vergleich der eingegebenen Passwörter mit den gecachten Credentials. Klar ist, dass ein solches Caching den LDAP-Server in großen Netzwerken entlasten hilft. Wichtig kann es auch für Laptops und Notebooks sein, die zeitweise Offline gehen müssen.
Wer sich für das SSSD-Caching und dessen Konfiguration interessiert, findet Informationen hier:
http://www.linuxalt.cz/files/stazeni/2012/2012-11-03-LA-206-05-Jakub_Hrozek-FreeIPA.pdf
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/SSSD-Introduction.html
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sssd-cache.html
http://dsilas.fedorapeople.org/deployment-guide/html/ch-Authentication_Configuration.html
http://linux.die.net/man/8/sss_cache
Eine interessante Anwendung für das Caching von Sudo-Regeln ist hier diskutiert.
http://jhrozek.livejournal.com/2065.html
Caching von Auth-Infos und Credentials kann aus meiner Sicht allerdings selbst wieder ein Risiko darstellen und zwar in folgender Hinsicht:
Das PAM-System des Hostes ist für den Zeitraum, in dem der SSSD-Credential-Cache gültig ist, quasi blind gegenüber Änderungen auf dem LDAP-Server. Somit muss es also Zeitlimits für das Credential-Caching der SSSD-PAM-Module geben, um die Blindheit des Hosts gegenüber zwischenzeitlichen Änderungen der Account- und Berechtigungsinformationen auf dem LDAP-Server zu begrenzen. Hierfür gibt es einen Reihe von Parametern zur SSSD-Konfiguration.
Generell ist aber keine begrenzte “expiration time” des Caches voreingestellt. Siehe:
http://forums.fedoraforum.org/showthread.php?t=277270
Andererseits mag es aber – wie im Falle von offline genutzten Laptops – sogar problematisch sein, die Caching-Zeit zu begrenzen. Ist der Laptop nach Ablauf des Zeitintervalls nicht online, ist ggf. kein Login mehr möglich.
Natürlich ist ein wie immer gearteter Cache von Credentials ein Datencontainer mit interessanten Informationen – vergleichbar einer /etc/passwd oder /etc/shadow. Das gilt auch, wenn die Credentials auf dem LDAP-System hoffentlich mit Hashes verschlüsselt abgelegt und auch in verschlüsselter Form im Cache selbst hinterlegt wurden.
Leser meiner früheren Artikel zu LDAP werden sich hier an den Einsatz des NSCD-Dämons erinnert fühlen. Tatsächlich verstehe ich die Caching-Fähigkeiten von SSSD als Ersatz für NSCD. NSCD soll zudem in großen Installation mit zentralen LDAP-Servern für viele Personen, Gruppen, Samba-Account-Infos, etc. erhebliche Stabilitäts-Probleme gehabt haben. Ich kann das nicht wirklich beurteilen. Interessierte User finden Informationen zu diesem Punkt unter
http://swik.net/opensuse/Planet+SuSE/openSUSE+TV%3A+Deploying+sssd+%28Marcus+Moeller%29/e5l4h
Links zu den verfügbaren Parametern der Konfigurationsdatei /etc/sssd/sssd.conf
http://linux.die.net/man/5/sssd.conf
http://linux.die.net/man/5/sssd-ldap
http://manpages.ubuntu.com/manpages/natty/man5/sssd.conf.5.html
http://manpages.ubuntu.com/manpages/natty/man5/sssd-ldap.5.html
In den kommenden Artikeln werden wir uns bei der Konfiguration von LDAP-Clients zumindest teilweise mit den Einstellmöglichkeiten der ssd.conf auseinandersetzen.