SSSD – Zentrale Benutzer- und Rechteverwaltung – Teil 2: Konfiguration
Der System Security Services Daemon (SSSD) ermöglicht es Verzeichnisdienste und diverse Authentifizierungsmöglichkeiten für Linux/Unix-Systeme erreichbar zu machen. Neben einfacher Benutzerverwaltung mit Authentifizierung per Benutzername und Passwort können auch SSH-Key-Verfahren eingesetzt werden. Weiter können die Berechtigungen direkt im zentralen Verzeichnis verwaltet werden. Wie der SSSD konfiguriert wird, um dieses zu ermöglichen, soll dieser Artikel darstellen.
Überblick
Im ersten Teil dieser Reihe wurden bereits die grundlegenden Informationen und Möglichkeiten aufgezeigt, in diesem Artikel wird [HD1] die Konfiguration genauer betrachtet.
Der SSSD Daemon startet abhängig von der Konfiguration eine Reihe von Services (sssd_Daemons) und kommuniziert so mit SSHD, AutoFS und LDAP-Daemons. Die aktivierten Services werden als Kindprozesse des SSSD Daemons gestartet:
sssd─┬─sssd_autofs ├─sssd_be ├─sssd_nss ├─sssd_pam ├─sssd_ssh └─sssd_sudo
Grundlegende Konfiguration
Die Konfiguration des SSSD erfolgt hauptsächlich über die Datei /etc/sssd/sssd.conf. Die Datei ist in drei Abschnitte unterteilt:
- [sssd]
Hier werden globale Standardwerte und die eingesetzten Module definiert - [<service_name>]
Unter dem jeweiligen Service werden service-spezifische Konfigurationen vorgenommen - [<domain_type>/<domain_name>]
Konfigurationsmöglichkeiten für jeden definierten Verzeichnisdienst
Die Parameter sind ausführlich in der Man-Page beschrieben.
Beispiel: Anbindung an LDAP-Verzeichnis mit Authentifizierung via SSH-Key
In diesem Beispiel soll ein SSSD Daemon so konfiguriert werden, dass Benutzer aus einem bestehenden LDAP-Verzeichnis abgerufen werden und diese sich per SSH-Key authentifizieren können. Die Public Keys können anschließend sowohl im LDAP-Verzeichnis als auch lokal auf dem Server abgelegt werden. Bevor die Schlüssel in das LDAP-Verzeichnis abgelegt werden können, muss das Schema openssh-lpk-openldap.ldif installiert werden.
Installation von SSSD
Die Installation von SSSD wird hier auf einem RHEL 8 System durchgeführt, bei anderen Distributionen kann die Installation abweichen.
Mit dem Paketmanager dnf wird der SSSD mit Abhängigkeiten installiert:
# dnf -y install sssd sssd-ldap oddjob oddjob-mkhomedir authselect-compat
Anschließend wird der SSSD als Authentifizierungsprovider festgelegt:
# authselect select sssd with-mkhomedir
Anbindung an LDAP
Zur Anbindung an LDAP wird die Domain unter dem Abschnitt [sssd] hinzugefügt und ein neuer Abschnitt [domain/ldap_ordix] angelegt. Die Konfigurationsdatei sieht dann folgendermaßen aus:
# /etc/sssd/sssd.conf [sssd] config_file_version = 2 services = nss, pam, autofs, ssh domains = ldap_ordix [ssh] [nss] [pam] [domain/ldap_ordix] id_provider = ldap auth_provider = ldap chpass_provider = ldap access_provider = ldap ldap_user_ssh_public_key = sshPublicKey cache_credentials = True ldap_search_base = dc=ordix,dc=de ldap_uri = ldap://ldap.ordix.de ldap_default_bind_dn = cn=admin, dc=ordix, dc=de ldap_default_authtok = ordix ldap_tls_reqcert = demand ldap_tls_cacert = /etc/pki/tls/cacert.crt ldap_tls_cacertdir = /etc/pki/tls ldap_id_use_start_tls = True ldap_search_timeout = 50 ldap_network_timeout = 60 ldap_access_order = filter ldap_access_filter = (objectClass=posixAccount)
Konfigurationen des SSH-Daemons
Beim SSH-Daemon muss die SSH-Key Methode aktiviert werden und der sssd als Provider festgelegt werden. Dazu werden folgende Attribute angepasst:
# /etc/ssh/sshd_config PubkeyAuthentication yes AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys AuthorizedKeysCommandUser root
Abschluss der Konfiguration
Abschließend müssen der SSSD und SSH-Daemon neugestartet werden:
# systemctl restart sssd sshd
Zum Testen kann nun ein User aus dem LDAP abgefragt und eine neue SSH-Verbindung aufgebaut werden:
$ id user1 uid=10000(user1) gid=10000(user1) groups=10000(user1) $ ssh user1@localhost [user1@localhost /home/user1]$
Beispielhafter OpenLDAP-Eintrag
dn: uid=user1,ou=Users,dc=ordix,dc=de uid: user1 uidNumber: 10000 gecos: user1 - LDAP homeDirectory: /home/user1 gidNumber: 10000 cn: user1 - LDAP sn: user1 - LDAP userPassword: <password-hash> description: LDAP Benutzer user1 objectClass: ldapPublicKey objectClass: person objectClass: posixAccount objectClass: top sshPublicKey: <public-key>
Fazit
Die Konfiguration des SSSD ist übersichtlich gehalten, durch die optionalen Module können diverse Funktionen, wie beispielsweise die zentrale Verwaltung von Public-Keys verwendet werden. Bei vorhandenem LDAP-Verzeichnis können so Linux/Unix-Systeme ohne viel Aufwand angebunden und verwendet werden.
Im nächsten Teil der Serie werden die Konfigurationsmöglichkeiten im Hinblick auf die Verwaltung von SUDO-Berechtigungen ausführlicher beschrieben.
Interesse geweckt?
Wenn Sie Interesse haben mehr über Linux, die Systemadministration und die Konfiguration von SSSD zu erfahren, dann sprechen Sie uns an oder besuchen Sie einen unserer Kurse aus unserem Seminarshop:
Zu unseren SeminarenBei Updates im Blog, informieren wir per E-Mail.
Kommentare