Das RRZE verwendet den System Security Services Daemon (SSSD) zur Benutzerauthentifizierung für alle Ubuntu Systeme.
Diese Anleitung beschreibt das Anlegen des Hosteintrags zum Zugriff auf die RRZE LDAP-Server für einen selbstverwalteten Rechner und die Installation und Konfiguration des SSSD zur Benutzerauthentifizierung unter Ubuntu.
Sicherheit
Bitte beachten Sie, dass nach erfolgreicher Durchführung der unten beschriebenen Schritte ersteinmal alle Benutzer der FAU Zugriff auf den entsprechenden Host haben.
Es ist deshalb dringend empfohlen den Benutzerkreis durch geeignete Maßnahmen weiter einzuschränken, zB durch die Verwendung von sssd-simple oder pam_access.
Vorbereitung
Bitte prüfen Sie die vorbereitenden Schritte bevor Sie versuchen einzelne Teile der Anleitung durchzuführen.
In der Regel müssen diese Voraussetzungen für ein sinnvolles Umsetzen Anleitung der erfüllt sein.
FAU-CA Zertifikat einbinden
Die LDAP-Server des RRZE erlauben nur SSL verschlüsselten Zugriff via LDAPS (636) oder STARTTLS (389). Damit der Zugriff funktioniert müssen Sie das Zertifikat der Zertifizierungsstelle der FAU (FAU-CA) einbinden.
Folgen Sie dafür den unter FAU-CA Zertifikat einbinden beschriebenen Schritte bevor Sie diese Anleitung fortsetzen.
rrzelinux CLI Tool
Falls Sie kein Betreuungsangebot des RRZE gebucht haben (Serverhousing oder -hosting) wird im Verlauf der Installation wird das rrzelinux CLI Tool benötigt, um den Host-Eintrag Ihres Systems zu erzeugen.
Bitte führen Sie in diesem Fall im Vorfeld die Installation wie unter Installation des rrzelinux CLI Tools beschrieben durch.
Pakete
Folgender Pakete für Ubuntu 20.04 und höher müssen installiert werden:
bash$ sudo DEBIAN_FRONTEND=noninteractive apt-get install sssd sssd-tools libnss-sss libnss-ldap ldap-utils libpam-sss
Linux Hosteintrag erzeugen (entfällt für Housing/Hosting-Kunden)
Für den Zugriff auf die zentralen LDAP Server des RRZE muss ein rechnerspezifischer Host-Eintrag mit Passwort erzeugt werden.
Die Zugangsdaten dürfen nur auf dem damit verbundenen Rechner und nur zur Durchführung der Nutzerauthentifizierung verwendet werden!
Housing oder Hosting Kunden können diesen Schritt überspringen. Der Hosteintrag wird durch unsere Mitarbeiter angelegt und die Zugangsdaten an Sie übermittelt.
Benötigen Sie Zugriff auf unseren LDAP Server zu anderen Zwecken, kontaktieren Sie uns bitte per Mail an rrze-linux@fau.de.
Wir werden Ihr Anliegen prüfen und ggf. für Ihren Einsatzzweck einen separaten Zugang einrichten.
Bei Missbrauch des Zugangs behalten wir uns vor diesen ohne Vorwarnung zu sperren.
Initiale Einrichtung
bash$ rrzelinux [PRÄFIX] create Username: [Benutzer mit "create"-Rechten] Password: *****
Mit Ausnahme des Hostnamens sollte die Ausgabe in etwa so aussehen:
rrzelinux: Host test.rrze.uni-erlangen.de was created successfully (id=906) rrzelinux: LDAP bind DN is: cn=test.rrze.uni-erlangen.de,ou=host,ou=profile,ou=linux,dc=rrze,dc=uni-erlangen,dc=de rrzelinux: LDAP password is: [systemgeneriertes Passwort]
Der LDAP Bind-DN und Passwort kann für eine Anbindung an den zentralen LDAP Server des RRZE verwendet werden.
LDAP Passwort vergessen
Sollten Sie das LDAP-Passwort Ihres Hosts vergessen haben, so können Sie wie folgt die Informationen erneut erhalten:
bash$ rrzelinux [PRÄFIX] info Username: [Benutzer mit "info"-Rechten] Password: *****
Mit Ausnahme des Hostnamens sollte die Ausgabe in etwa so aussehen:
rrzelinux: Host infos for test.rrze.uni-erlangen.de were gathered successfully (id=906) key value ================= ==================================================================== hostname test domain rrze.uni-erlangen.de owner rrze description Remotely created host entry (by rrze) group ZS-Server config UNMANAGED ldap LDAP binddn cn=test.rrze.uni-erlangen.de,ou=host,ou=profile,ou=linux,dc=rrze,dc=uni-erlangen,dc=de password [systemgeneriertes Passwort] krb realm - krb services - updated 2016-11-25 15:51:39.346 created 2016-11-25 15:51:39.14
SSSD Konfiguration
Zur Konfiguration des SSSD gehen Sie wie folgt vor:
bash$ cd /etc/sssd bash$ sudo cp sssd.conf sssd.conf_old bash$ sudo vi sssd.conf
Der Inhalt der Datei /etc/sssd/sssd.conf könnte in etwa so aussehen (RRZE-Standard Konfiguration):
[sssd] debug_level = 3 config_file_version = 2 services = nss,pam domains = LINUXLDAP [nss] debug_level = 3 filter_users = root filter_groups = root [pam] debug_level = 3 filter_users = root filter_groups = root [domain/LINUXLDAP] debug_level = 3 # optional: use this to override the configured per-user home from the ldap #override_homedir = /home.local/%u # With this as false, a simple "getent passwd" for testing won't work. You must do getent passwd user@domain.com enumerate = false cache_credentials = true # cache cleanup operation removes cached entries that were not used for a while - unneccessary ldap_purge_cache_timeout = 0 # makes all groups appear as empty (getent group), thus downloading only information about the group objects themselves and not their members # this drastically improves performance with large ldap groups! ignore_group_members = True id_provider = ldap auth_provider = ldap ldap_uri = ldap://linuxldap.rrze.uni-erlangen.de ldap_search_base = ou=linux,dc=rrze,dc=uni-erlangen,dc=de ldap_id_use_start_tls = true ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt # This parameter requires that the ldap server presents a completely validated certificate chain. If you're testing or don't care, use 'allow' or 'never'. # you need to install and trust the FAU-CA certificate for this to work! ldap_tls_reqcert = demand #ldap_tls_reqcert = never # Bind credentials ldap_default_bind_dn = [siehe Ausgabe des rrzelinux CLI Tool] ldap_default_authtok = [siehe Ausgabe des rrzelinux CLI Tool] ldap_user_search_base = ou=people,ou=linux,dc=rrze,dc=uni-erlangen,dc=de ldap_group_search_base = ou=group,ou=linux,dc=rrze,dc=uni-erlangen,dc=de bash$ sudo chmod 700 sssd.conf
Die gegebenen Konfiguration stellt die Empfehlung des RRZE dar.
Sie können die Konfiguration jedoch – falls nötig – an Ihren Anwendungsfall anpassen.
Weiteren Informationen zu den verschiedenen Optionen erhalten Sie auf der sssd.conf Manpage.
Achten Sie darauf die mit „[ ]“ gekennzeichneten Passagen durch die entsprechenden Daten aus dem rrzelinux Tool zu ersetzen.
Restart der Dienste
Damit die vorgenommene Konfiguration aktiv wird müssen die betroffenen Dienste neu gestartet werden.
Ubuntu 20.04 und höher
bash$ sudo systemctl restart sssd.service
NSSWITCH Anpassen
Die Name Service Switch (NSS) Konfiguration bestimmt verschiedene Quellen zur Namensauflösung.
Um den SSSD zur Namensauflösung für die zur Authentifizierung benötigten Daten zu konfigurieren müssen einige Anpassungen vorgenommen werden:
bash$ cd /etc bash$ sudo cp nsswitch.conf nsswitch.conf_old bash$ sudo vi nsswitch.conf
Der Inhalt der /etc/nsswitch.conf sollte dann für die betreffenden Datenbanken so aussehen:
passwd: files sss shadow: files sss group: files sss netgroup: sss
Test
Nachdem alle Schritte durchgeführt wurden kann die Konfiguration noch auf korrekte Funktion überprüft werden.
Benutzer- und Gruppenauflösung
Dieser Test stellt sicher, dass die LDAP-Anbindung funktioniert und Benutzer- und Gruppeninformationen abgerufen werden können.
Statt der beispielhaft verwendeten Kennung „yc14omec“ können Sie auch Ihre eigene Kennung verwenden.
bash$ id yc14omec uid=52014(yc14omec) gid=100000(fau_user) Gruppen=100000(fau_user)
Der Test ist erfolgreich, wenn die Ausgabe das Mapping auf die uidNumber und die Gruppenmitgliedschaften korrekt anzeigt.
Performante Gruppenauflösung
Dieser Test überprüft beziehungsweise demonstriert den Effekt der Konfigurationsoption ignore_group_members = true. Bei Abruf einer Gruppe werden aus Performanzgründen standardmäßig keine Mitglieder geliefert.
Dieses Verhalten ist erwünscht, da es sonst aufgrund der hohen Anzahl an Gruppenmitgliedern bei manchen Gruppen zu erheblichen Verzögerungen beim Einloggen kommen kann.
bash$ getent group rrze_linux fau_user:*:100000:
Der Test ist erfolgreich, wenn keine Mitglieder der Gruppe angezeigt werden.
Fehlerbehebung
Bei Problemen mit der Gruppenauflösung oder generell „seltsamen“ Verhalten des SSSD kann zur Behebung versucht werden den Cache zu löschen.
Die sanfte Variante (funktioniert manchmal):
bash$ sudo sss_cache -E
Die harte Variante (funktioniert meistens):
# Ubuntu 20.04 und höher bash$ sudo su bash$ systemctl stop sssd && rm /var/lib/sss/db/* && systemctl start sssd bash$ exit