Arch manual pages

SSSD-KRB5(5) Dateiformate und Konventionen SSSD-KRB5(5)

sssd-krb5 - SSSD Kerberos-Anbieter

Diese Handbuchseite beschreibt die Konfiguration des Authentifizierungs-Backends Kerberos 5 für sssd(8). Eine ausführliche Syntax-Referenz finden Sie im Abschnitt »DATEIFORMAT« der Handbuchseite sssd.conf(5).

Das Authentifizierungs-Backend Kerberos 5 enthält Authentifizierungs- und Chpass-Anbieter. Es muss mit einem Identitätsanbieter verbunden werden, damit es sauber läuft (zum Beispiel »id_provider = ldap«). Einige vom Kerberos-5-Authentifizierungs-Backend benötigten Informationen wie der »Kerberos Principal Name« (UPN) des Benutzers müssen durch den Identitätsanbieter bereitgestellt werden. Die Konfiguration des Identitätsanbieters sollte einen Eintrag haben, der den UPN angibt. Einzelheiten, wie dies konfiguriert wird, finden Sie in der Handbuchseite des entsprechenden Identitätsanbieters.

Dieses Backend stellt ebenso eine Zugriffssteuerung bereit, die auf der Datei .k5login im Home-Verzeichnis des Benutzers basiert. Weitere Einzelheiten finden Sie unter .k5login(5). Bitte beachten Sie, dass eine leere .k5login-Datei jegliche Zugriffe durch diesen Benutzer verbietet. Verwenden Sie »access_provider = krb5« in Ihrer SSSD-Konfiguration, um diese Funktionalität zu aktivieren.

Im Fall, dass UPN nicht im Identitäts-Backend verfügbar ist, wird sssd mittels des Formats Benutzername@Krb5_Realm einen UPN konstruieren.

Falls das Authentifizierungsmodul Krb5 in einer SSSD-Domain benutzt wird, müssen die folgenden Optionen verwendet werden. Einzelheiten über die Konfiguration einer SSSD-Domain finden Sie im Abschnitt »DOMAIN-ABSCHNITTE« der Handbuchseite sssd.conf(5).

krb5_server, krb5_backup_server (Zeichenkette)

gibt eine durch Kommata getrennte Liste von IP-Adressen oder Rechnernamen der Kerberos-Server in der Reihenfolge an, in der sich SSSD mit ihnen verbinden soll. Weitere Informationen über Ausfallsicherung und Redundanz finden Sie im Abschnitt »AUSFALLSICHERUNG«. An die Adressen oder Rechnernamen kann eine optionale Portnummer (der ein Doppelpunkt vorangestellt ist) angehängt werden. Falls dies leer gelassen wurde, wird die Dienstsuche aktiviert. Weitere Informationen finden Sie im Abschnitt »DIENSTSUCHE«.

Wenn die Dienstsuche für Schlüsselverwaltungszentralen- (KDC) oder Kpasswd-Server benutzt wird, durchsucht SSSD zuerst die DNS-Einträge, die_udp als Protokoll angeben. Falls keine gefunden werden, weicht es auf _tcp aus.

Diese Option hieß in früheren Veröffentlichungen von SSSD »krb5_kdcip«. Obwohl der alte Name einstweilen noch in Erinnerung ist, wird Anwendern geraten, ihre Konfigurationsdateien auf die Verwendung von »krb5_server« zu migrieren.

krb5_realm (Zeichenkette)

der Name des Kerberos-Realms. Diese Option wird benötigt und muss angegeben werden.

krb5_kpasswd, krb5_backup_kpasswd (Zeichenkette)

Falls der Dienst zum Ändern von Passwörtern auf der Schlüsselverwaltungszentrale (KDC) nicht läuft, können hier alternative Server definiert werden. An die Adressen oder Rechnernamen kann eine optionale Portnummer (der ein Doppelpunkt vorangestellt ist) angehängt werden.

Weitere Informationen über Ausfallsicherung und Redundanz finden Sie im Abschnitt »AUSFALLSICHERUNG«. HINWEIS: Selbst wenn es keine weiteren »kpasswd«-Server mehr auszuprobieren gibt, wird das Backend nicht offline gehen, da eine Authentifizierung gegen die Schlüsselverwaltungszentrale (KDC) immer noch möglich ist.

Voreinstellung: KDC benutzen

krb5_ccachedir (Zeichenkette)

Das Verzeichnis zum Ablegen von Anmeldedaten-Zwischenspeichern. Alle Ersetzungssequenzen von krb5_ccname_template können hier auch verwendet werden, außer %d und %P. Das Verzeichnis wird als privat angelegt und ist Eigentum des Benutzers. Die Zugriffsrechte werden auf 0700 gesetzt.

Voreinstellung: /tmp

krb5_ccname_template (Zeichenkette)

Der Ort für die Zwischenspeicherung der Anmeldedaten des Benutzers. Drei Zwischenspeichertypen werden derzeit unterstützt: “FILE”, “DIR” und “KEYRING:persistent”. Der Zwischenspeicher kann entweder als TYP:REST oder als absoluter Pfad angegeben werden, wobei Letzteres den Typ “FILE” beinhaltet. In der Schablone werden die folgenden Sequenzen ersetzt:

%u

Anmeldename

%U

Anmelde-UID

%p

Principal-Name

%r

Realm-Name

%h

Home-Verzeichnis

%d

Wert von krb5_ccachedir

%P

die Prozess-ID des SSSD-Clients

%%

ein buchstäbliches »%«

Falls die Vorlage mit »XXXXXX« endet, wird mkstemp(3) verwendet, um auf sichere Weise einen eindeutigen Dateinamen zu erzeugen.

Wenn der KEYRING-Typ verwendet wird, ist “KEYRING:persistent:%U” der einzige unterstützte Mechanismus. Hierfür wird der Schlüsselbund des Linux-Kernels zum Speichern der Anmeldedaten getrennt nach Benutzer-IDs verwendet. Dies wird auch empfohlen, da es die sicherste und vorausberechenbarste Methode ist.

Der Vorgabewert für den Anmeldedaten-Zwischenspeicher wird aus dem im Abschnitt [libdefaults] der Datei krb5.conf enthaltenen Profil der systemweiten Konfiguration bezogen. Der Name der Option ist default_ccache_name. Im Abschnitt PARAMETER EXPANSION der Handbuchseite zu krb5.conf(5) finden Sie zusätzliche Informationen zu dem in krb5.conf definierten Format.

NOTE: Please be aware that libkrb5 ccache expansion template from krb5.conf(5) uses different expansion sequences than SSSD.

Voreinstellung: (aus libkrb5)

krb5_auth_timeout (Ganzzahl)

Zeitüberschreitung in Sekunden, nach der eine Online-Anfrage zur Authentifizierung oder Passwortänderung gescheitert ist. Falls möglich, wird die Authentifizierung offline fortgesetzt.

Voreinstellung: 6

krb5_validate (Boolesch)

prüft mit Hilfe von »krb5_keytab«, ob das erhaltene TGT keine Täuschung ist. Die Einträge der Keytab werden der Reihe nach kontrolliert und der erste Eintrag mit einem passenden Realm wird für die Überprüfung benutzt. Falls keine Einträge dem Realm entsprechen, wird der letzte Eintrag der Keytab verwendet. Dieser Prozess kann zur Überprüfung von Umgebungen mittels Realm-übergreifendem Vertrauen benutzt werden, indem der dazugehörige Keytab-Eintrag als letzter oder einziger Eintrag in der Keytab-Datei abgelegt wird.

Voreinstellung: »false«

krb5_keytab (Zeichenkette)

der Speicherort der Keytab, der bei der Überprüfung von Berechtigungen benutzt wird, die von Schlüsselverwaltungszentralen (KDCs) stammen.

Voreinstellung: /etc/krb5.keytab

krb5_store_password_if_offline (Boolesch)

speichert das Passwort des Benutzers, falls der Anbieter offline ist, und benutzt es zur Abfrage des TGTs, wenn der Anbieter wieder online geht.

HINWEIS: Diese Funktionalität ist nur auf Linux verfügbar. Passwörter, die auf diese Weise gespeichert wurden, werden im Klartext im Schlüsselbund des Kernels aufbewahrt. Darauf kann unter Umständen (mit Mühe) durch den Benutzer Root zugegriffen werden.

Voreinstellung: »false«

krb5_renewable_lifetime (Zeichenkette)

fordert ein erneuerbares Ticket mit einer Gesamtlebensdauer an. Es wird als Ganzzahl, der direkt eine Zeiteinheit folgt, angegeben:

s für Sekunden

m für Minuten

h für Stunden

d für Tage

Falls keine Einheit angegeben ist, wird s angenommen.

HINWEIS: Es ist nicht möglich, Einheiten zu mixen. Um die erneuerbare Lebensdauer auf eineinhalb Stunden zu setzen, verwenden Sie »90m« statt »1h30m«.

Voreinstellung: nicht gesetzt, d.h. das TGT ist nicht erneuerbar.

krb5_lifetime (Zeichenkette)

Anforderungsticket mit einer Lebensdauer, angegeben als Ganzzahl, der direkt eine Zeiteinheit folgt:

s für Sekunden

m für Minuten

h für Stunden

d für Tage

Falls keine Einheit angegeben ist, wird s angenommen.

HINWEIS: Es ist nicht möglich, Einheiten zu mixen. Um die Lebensdauer auf eineinhalb Stunden zu setzen, verwenden Sie »90m« statt »1h30m«.

Voreinstellung: nicht gesetzt, d.h. die Standardlebenszeit des Tickets auf der Schlüsselverwaltungszentrale (KDC)

krb5_renew_interval (Zeichenkette)

die Zeit in Sekunden zwischen zwei Prüfungen, ob das TGT erneuert werden soll. TGTs werden erneuert, wenn ungefähr die Hälfte ihrer Lebensdauer überschritten ist. Sie wird als Ganzzahl, der unmittelbar eine Zeiteinheit folgt, angegeben:

s für Sekunden

m für Minuten

h für Stunden

d für Tage

Falls keine Einheit angegeben ist, wird s angenommen.

HINWEIS: Es ist nicht möglich, Einheiten zu mixen. Um die erneuerbare Lebensdauer auf eineinhalb Stunden zu setzen, verwenden Sie »90m« statt »1h30m«.

Falls diese Option nicht oder auf 0 gesetzt ist, wird die automatische Erneuerung deaktiviert.

Voreinstellung: nicht gesetzt

krb5_use_fast (Zeichenkette)

Schaltet das flexible Authentifizierungs-Sicherheits-Tunneln (FAST) für die Vorauthentifizierung von Kerberos ein. Die folgenden Optionen werden unterstützt:

never: FAST wird nie benutzt. Dies ist so, als ob diese Einstellung gar nicht gemacht würde.

try: Es wird versucht, FAST zu benutzen. Falls der Server kein FAST unterstützt, fährt die Authentifizierung ohne fort.

demand: Fragt nach, ob FAST benutzt werden soll. Die Authentifizierung schlägt fehl, falls der Server kein FAST erfordert.

Voreinstellung: nicht gesetzt, d.h. FAST wird nicht benutzt

HINWEIS: Zur Benutzung von FAST ist eine Keytab erforderlich.

HINWEIS: SSSD unterstützt FAST nur mit MIT-Kerberos-Version 1.8 und neuer. Falls SSSD mit einer älteren Version von MIT-Kerberos benutzt wird, ist die Verwendung dieser Option ein Konfigurationsfehler.

krb5_fast_principal (Zeichenkette)

gibt den Server-Principal zur Benutzung von FAST an.

krb5_canonicalize (Boolesch)

gibt an, ob der Rechner und User-Principal in die kanonische Form gebracht werden sollen. Diese Funktionalität ist mit MIT-Kerberos 1.7 und neueren Versionen verfügbar.

Voreinstellung: »false«

krb5_use_kdcinfo (Boolesch)

gibt an, ob SSSD die Kerberos-Bibliotheken anweisen soll, welcher Realm und welche Schlüsselverwaltungszentralen (KDCs) benutzt werden sollen. Diese Option ist standardmäßig eingeschaltet. Falls Sie sie ausschalten, müssen Sie die Kerberos-Bibliothek mittels der Konfigurationsdatei krb5.conf(5) einrichten.

Weitere Informationen über die Locator-Erweiterung finden Sie auf der Handbuchseite sssd_krb5_locator_plugin(8).

Voreinstellung: »true«

krb5_kdcinfo_lookahead (string)

When krb5_use_kdcinfo is set to true, you can limit the amount of servers handed to sssd_krb5_locator_plugin(8). This might be helpful when there are too many servers discovered using SRV record.

The krb5_kdcinfo_lookahead option contains two numbers separated by a colon. The first number represents number of primary servers used and the second number specifies the number of backup servers.

For example 10:0 means that up to 10 primary servers will be handed to sssd_krb5_locator_plugin(8) but no backup servers.

Default: 3:1

krb5_use_enterprise_principal (Boolesch)

gibt an, ob der User Principal als Enterprise Principal betrachtet werden soll. Weitere Informationen über Enterprise Principals finden Sie in Abschnitt 5 von RFC 6806.

Voreinstellung: falsch (AD-Anbieter: wahr)

The IPA provider will set to option to 'true' if it detects that the server is capable of handling enterprise principals and the option is not set explicitly in the config file.

krb5_map_user (string)

The list of mappings is given as a comma-separated list of pairs “username:primary” where “username” is a UNIX user name and “primary” is a user part of a kerberos principal. This mapping is used when user is authenticating using “auth_provider = krb5”.

Beispiel:

krb5_realm = REALM
krb5_map_user = joe:juser,dick:richard

“joe” and “dick” are UNIX user names and “juser” and “richard” are primaries of kerberos principals. For user “joe” resp. “dick” SSSD will try to kinit as “juser@REALM” resp. “richard@REALM”.

Voreinstellung: nicht gesetzt

Die Ausfallsicherungsfunktionalität ermöglicht es, dass Backends automatisch auf einen anderen Server wechseln, falls der aktuelle versagt.

Die Server werden als durch Kommata getrennte Liste angegeben. Um das Komma herum ist eine beliebige Anzahl von Leerzeichen erlaubt. Die Server werden in Reihenfolge der Bevorzugung aufgeführt. Die Liste kann eine beliebige Anzahl von Servern enthalten.

Von jeder Konfigurationsoption mit aktivierter Ausfallsicherung existieren zwei Varianten: primary und backup. Die Idee dahinter ist, dass Server in der Liste »primary« bevorzugt werden und nur nach »backup«-Servern gesucht wird, falls kein »primary«-Server erreichbar ist. Falls ein »backup«-Server ausgewählt wird, wird eine Dauer von 31 Sekunden bis zur Zeitüberschreitung festgelegt. Nach dieser Zeit wird SSSD periodisch versuchen, sich mit einem der primären Server zu verbinden. Ist dies erfolgreich, wird es den derzeit aktiven (»backup«-)Server ersetzen.

Der Ausfallsicherungsmechanismus unterscheidet zwischen einer Maschine und einem Dienst. Das Backend versucht zuerst, den Rechnernamen der angegebenen Maschine aufzulösen. Falls dieser Versuch scheitert, wird davon ausgegangen, dass die Maschine offline ist und sie auch für keinen anderen Dienst zur Verfügung steht. Kann der den Namen erfolgreich aufgelöst werden, versucht das Backend, sich mit einem Dienst auf dieser Maschine zu verbinden. Ist das nicht möglich, dann wird nur dieser bestimmte Dienst als offline angesehen und das Backend wechselt automatisch weiter zum nächsten. Die Maschine wird weiterhin als online betrachtet und kann immer noch für andere Dienste herangezogen werden.

Weitere Verbindungsversuche zu Maschinen oder Diensten, die als offline gekennzeichnet sind, werden erst nach einer angegebenen Zeitspanne unternommen. Diese ist derzeit hart auf 30 Sekunden codiert.

Falls es weitere Maschinen durchzuprobieren gibt, wechselt das Backend als Ganzes in den Offline-Modus und versucht dann alle 30 Sekunden, sich erneut zu verbinden.

Resolving a server to connect to can be as simple as running a single DNS query or can involve several steps, such as finding the correct site or trying out multiple host names in case some of the configured servers are not reachable. The more complex scenarios can take some time and SSSD needs to balance between providing enough time to finish the resolution process but on the other hand, not trying for too long before falling back to offline mode. If the SSSD debug logs show that the server resolution is timing out before a live server is contacted, you can consider changing the time outs.

This section lists the available tunables. Please refer to their description in the sssd.conf(5), manual page.

dns_resolver_server_timeout

Time in milliseconds that sets how long would SSSD talk to a single DNS server before trying next one.

Voreinstellung: 1000

dns_resolver_op_timeout

Time in seconds to tell how long would SSSD try to resolve single DNS query (e.g. resolution of a hostname or an SRV record) before trying the next hostname or discovery domain.

Voreinstellung: 2

dns_resolver_timeout

How long would SSSD try to resolve a failover service. This service resolution internally might include several steps, such as resolving DNS SRV queries or locating the site.

Default: 4

For LDAP-based providers, the resolve operation is performed as part of an LDAP connection operation. Therefore, also the “ldap_opt_timeout>” timeout should be set to a larger value than “dns_resolver_timeout” which in turn should be set to a larger value than “dns_resolver_op_timeout” which should be larger than “dns_resolver_server_timeout”.

Die Dienstsuchfunktionalität ermöglicht es Backends, automatisch mit Hilfe einer speziellen DNS-Abfrage geeignete Server zu suchen, mit denen sie sich verbinden können. Diese Funktionalität wird nicht für Datensicherungs-Server unterstützt.

Falls keine Server angegeben wurden, benutzt das Backend die Dienstsuche, um einen Server zu finden. Wahlweise kann der Benutzer sowohl feste Server-Adressen als auch die Dienstsuche durch Eingabe des speziellen Schlüsselworts »_srv_« in der Server-Liste auswählen. Die bevorzugte Reihenfolge wird verwaltet. Diese Funktionalität ist zum Beispiel nützlich, falls der Anwender es vorzieht, die Dienstsuche zu verwenden, wann immer dies möglich ist, und auf einen bestimmten Server zurückzugreifen, wenn mittels DNS keine Server gefunden werden.

Weitere Einzelheiten finden Sie in der Handbuchseite sssd.conf(5) beim Parameter »dns_discovery_domain«.

Die Abfragen geben als Protokoll üblicherweise »_tcp« an. Ausnahmen sind in der Beschreibung der entsprechenden Option dokumentiert.

Weitere Informationen über den Dienstsuchmechanismus finden Sie in RFC 2782.

Das folgende Beispiel geht davon aus, dass SSSD korrekt konfiguriert wurde und FOO eine der Domains im Abschnitt [sssd] ist. Dieses Beispiel zeigt nur die Authentifizierung mit Kerberos, sie umfasst keine Identitätsanbieter.

[domain/FOO]
auth_provider = krb5
krb5_server = 192.168.1.1
krb5_realm = EXAMPLE.COM

sssd(8), sssd.conf(5), sssd-ldap(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-files(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(8), sss_ssh_knownhostsproxy(8), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)

The SSSD upstream - https://pagure.io/SSSD/sssd/
09/16/2019 SSSD