SSSD-KRB5(5) Filformat och konventioner SSSD-KRB5(5)

sssd-krb5 - SSSD:s Kerberos-leverantör

Denna manualsida beskriver konfigurationen av bakänden för Kerberos 5-autentisering för sssd(8). För en detaljerad syntaxreferens, se avsnittet “FILFORMAT” i manualsidan sssd.conf(5).

Kerberos 5-autentiseringsbakänden innehåller auth- och chpass-leverantörer. Den måste paras ihop med en identitetsleverantör för att fungera korrekt (till exempel, id_provider = ldap). En del information krävs av Kerberos 5-autentiseringsbakänden måste tillhandahållas av identitetsleverantören, såsom användarens Kerberos huvudmannanamn (UPN). Konfigurationen av identitetsleverantören skall ha en post för att ange UPN:en. Se manualsidan för den tillämpliga identitetsleverantören för detaljer om hur man konfigurerar detta.

Denna bakände tillhandahåller även åtkomstkontroll baserad på filen .k5login i användarens hemkatalog Se k5login(5) för mer detaljer. Observera att en tom .k5login-fil kommer neka all åtkomst till denna användare. För att aktivera denna funktion, använd ”access_provider = krb5” i din SSSD-konfiguration.

I situationer där UPN:en inte är tillgänglig i identitetsbakänden kommer sssd konstruera en UPN genom att använda formatet username@krb5_realm.

Om autentiseringsmodulen krb5 används i en SSSD-domän måste följande alternativ användas. Se manualsidan sssd.conf(5), avsnittet “DOMÄNSEKTIONER” för detaljer om konfigurationen av en SSSD-domän.

krb5_server, krb5_backup_server (sträng)

Anger en kommaseparerad lista av IP-adresser eller värdnamn till Kerberosservrar till vilka SSSD skall ansluta, i prioritetsordning. För mer information om reserver och serverredundans se avsnittet “RESERVER”. Ett frivilligt portnummer (föregånget av ett kolon) kan läggas till till adresserna eller värdnamnen. Om tomt aktiveras tjänsteupptäckt; för mer information, se avsnittet “TJÄNSTEUPPTÄCKT”.

När tjänsteupptäckt används för KDC eller kpasswd-servrar söker SSSD först efter DNS-poster som anger _udp som protokoll och provar sedan _tcp om inget hittas.

Detta alternativ hade namnet “krb5_kdcip” i tidigare utgåvor av SSSD. Medan det äldre namnet känns igen tills vidare rekommenderas användare att migrera sina konfigurationsfiler till att använda “krb5_server” istället.

krb5_realm (sträng)

Namnet på Kerberos-riket. Detta alternativ är nödvändigt och måste anges.

krb5_kpasswd, krb5_backup_kpasswd (sträng)

Om tjänsten för att ändra lösenord inte kör på KDC:n kan alternativa servrar definieras här. Ett frivilligt portnummer (föregått av ett kolon) kan läggas till efter adresser eller värdnamn.

För mer information om reserver och serverredundans se avsnittet “RESERVER”. OBSERVERA: även om det inte finns några fler kpasswd-servrar att försöka med byter inte bakänden till att köra frånkopplat om autentisering mot KDC:n fortfarande är möjligt.

Standard: använd KDC:n

krb5_ccachedir (sträng)

Katalog att lagra kreditiv-cachar i. Alla substitutionssekvenserna i krb5_ccname_template kan användas här också, utom %d och %P. Katalogen skapas som privat och ägd av användaren, med rättigheterna satta till 0700.

Standard: /tmp

krb5_ccname_template (sträng)

Platsen för användarens kreditiv-cache. Tre typer av kreditiv-cachar stödjs för närvarande: “FILE”, “DIR” och “KEYRING:persistent”. Cachen kan anges antingen som TYP:ÅTERSTOD, eller som en absolut sökväg, vilket implicerar typen “FILE”. I mallen ersätts följande sekvenser:

%u

inloggningsnamn

%U

inloggnings-AID

%p

huvudmannanamn

%r

namn på rike

%h

hemkatalog

%d

värdet på krb5_ccachedir

%P

process-ID:t på SSSD-klienten

%%

ett bokstavligt ”%”

Om mallen slutar med ”XXXXXX” används mkstemp(3) för att skapa ett unikt filnamn på ett säkert sätt.

När KEYRING-typer används är den enda mekanismen som stödjs “KEYRING:persistent:%U”, vilket använder Linuxkärnans nyckelring för att lagra kreditiv på per-AID-bas. Detta är också det rekommenderade valet, eftersom det är den säkraste och mest förutsägbara metoden.

Standardvärdet för namnet på kreditiv-cachen läses från profilen som fil sparad i den systemtäckande konfigurationsfilen krb5.conf i avsnittet [libdefaults]. Alternativnamnet är default_ccache_name. Se krb5.conf(5)s avsnitt PARAMETEREXPANSION för mer information om expansionsformatet som definieras av krb5.conf.

OBSERVERA: var medveten om att ccache-expansionsmallen för libkrb5 från krb5.conf(5) använder andra expansionssekvenser än SSSD.

Standard: (från libkrb5)

krb5_keytab (sträng)

Platsen där keytab:en som skall användas för validering av kreditiv som tas emot från KDC:er finns.

Standard: Systemets keytab, normalt /etc/krb5.keytab

krb5_store_password_if_offline (boolean)

Spara lösenordet för användaren om leverantören är frånkopplad och använd det för att begära en TGT när leverantören blir uppkopplad igen.

OBS: denna funktion är endast tillgänglig på Linux. Lösenord som lagras på detta sätt hålls i klartext i kärnans nyckelring och är potentiellt åtkomliga för root-användaren (med svårighet).

Standard: false

krb5_use_fast (sträng)

Aktiverar flexibel autentisering via säker tunnling (flexible authentication secure tunneling, FAST) för Kerberos förautentisering. Följande alternativ stödjs:

never använd aldrig FAST. Detta är ekvivalent med att inte ställa in detta alternativ alls.

try försök använda FAST. Om servern inte stödjer FAST, fortsätt då autentiseringen utan den.

demand kräv användning av FAST. Autentiseringen misslyckas om servern inte begär fast.

Standard: inte satt, d.v.s. FAST används inte.

OBSERVERA: en keytab eller stöd för anonym PKINIT krävs för att använda FAST.

OBSERVERA: SSSD stödjer endast FAST med MIT Kerberos version 1.8 och senare. Om SSSD används med en äldre version av MIT Kerberos är det ett konfigurationsfel att använda detta alternativ.

krb5_fast_principal (sträng)

Anger serverhuvudmannen att använda för FAST.

krb5_fast_use_anonymous_pkinit (boolean)

Om satt till sant, försök använda anonym PKINIT istället för en keytab för att få de begärda kreditiven för FAST. Alternativet krb5_fast_prinicpal ignoreras i detta fall.

Standard: false

krb5_use_kdcinfo (boolean)

Anger om SSSD skall instruera Kerberos-biblioteken om vilket rike och vilka KDC:er som skall användas. Detta alternativ är på som standard, om du avaktiverar det behöver du konfigurera Kerberos-biblioteket i konfigurationsfilen krb5.conf(5).

Se manualsidan sssd_krb5_locator_plugin(8) för mer information om lokaliseringsinsticksmodulen.

Standard: true

krb5_kdcinfo_lookahead (sträng)

När krb5_use_kdcinfo är satt till true kan man begränsa mängden servrar som skickas till sssd_krb5_locator_plugin(8). Detta kan vara användbart när det finns för många servrar som upptäcks med hjälp av SRV-poster.

Alternativet krb5_kdcinfo_lookahead innehåller två tal separerade av ett kolon. Det första talet representerar antalet primärservrar som används och det andra talet anger antalet reservservrar.

Till exempel betyder 10:0 att upp till 10 primärservrar kommer lämnas till sssd_krb5_locator_plugin(8) men inga reservservrar.

Standard: 3:1

krb5_use_enterprise_principal (boolean)

Anger om användarens huvudman skall behandlas som företagshuvudman. Se avsnitt 5 i RFC 6806 för mer detaljer om företagshuvudmän.

Standard: false (AD-leverantör: true)

IPA-leverantören kommer sätta detta alternativ till ”true” om den upptäcker att servern klarar av att hantera företagshuvudmän och alternativet inte är uttryckligen satt i konfigurationsfilen.

krb5_use_subdomain_realm (boolean)

Anger att använda underdomänriken för autentiseringen av användare från betrodda domäner. Detta alternativ kan sättas till ”sant” om företagshuvudmän används med upnSuffixes vilka inte är kända av föräldradomänens KDC:er. Om alternativet sätts till ”sant” kommer SSSD försöka skicka begäran direkt till en KDC för den betrodda domänen användaren kommer ifrån.

Standard: false

krb5_map_user (sträng)

Listan av mappningar anges som en kommaseparerad lista av par “användarnamn:primär” där “användarnamn” är ett UNIX-användarnamn och “primär” är en användardel av en kerberoshuvudman. Denna mappning används när användaren autentiserar med “auth_provider = krb5”.

exempel:

krb5_realm = RIKE
krb5_map_user = maria:manvnd,hasse:hans

“maria” och “hasse” är UNIX-användarnamn och “manvnd” och “hans” är primärer i kerberoshuvudmän. För användaren “maria” resp. “hasse” kommer SSSD försöka att göra kinit som “manvnd@RIKE” resp. “hans@RIKE”.

Standard: inte satt

krb5_auth_timeout (heltal)

Tidsgräns i sekunder efter vilken en uppkopplad begäran om autentisering eller begäran om lösenordsändring avbryts. Om möjligt fortsätts begäran om autentisering frånkopplat.

Standard: 6

krb5_validate (boolean)

Verifiera med hjälp av krb5_keytab att den TGT om hämtats inte har förfalskats. I keytab:en kontrolleras poster sekventiellt, och den första posten med ett matchande rike används för validering. Om ingen post matchar riket används den sista posten i keytab:en. Denna process kan användas för att validera miljöer genom att använda förtroenden mellan riken genom att placera den motsvarande keytab-posten som sista post eller den enda posten i keytab-filen.

Standard: false (IPA- och AD-leverantör: true)

Observera att biljettvalideringen är första steget vid kontroll av PAC:n (se ”pac_check” i manualsidan sssd.conf(5) för detaljer). Om biljettvalideringen är avaktiverad kommer PAC-kontrollerna också att hoppas över.

krb5_renewable_lifetime (sträng)

Begär en förnybar biljett med en total livslängd, given som ett heltal omedelbart följd av en tidsenhet:

s för sekunder

m för minuter

h för timmar

d för dagar.

Om ingen enhet anges antas s.

OBSERVERA: det är inte möjligt att blanda enheter. För att sätta den förnybara livslängden till en och en halv timma, använd ”90m” istället för ”1h30m”.

Standard: inte satt, d.v.s. TGT:en är inte förnybar

krb5_lifetime (sträng)

Begär en biljett med en livslängd, given som ett heltal omedelbart följd av en tidsenhet:

s för sekunder

m för minuter

h för timmar

d för dagar.

Om ingen enhet anges antas s.

OBSERVERA: det är inte möjligt att blanda enheter. För att sätta livslängden till en och en halv timma, använd ”90m” istället för ”1h30m”.

Standard: inte satt, d.v.s. biljettens standardlivslängd konfigurerad på KDC:n.

krb5_renew_interval (sträng)

Tiden i sekunder mellan två kontroller om TGT:en skall förnyas. TGT:er förnyas om ungefär halva deras livstid har överskridits, givet som ett heltal omedelbart följt av en tidsenhet:

s för sekunder

m för minuter

h för timmar

d för dagar.

Om ingen enhet anges antas s.

OBSERVERA: det är inte möjligt att blanda enheter. För att sätta den förnybara livslängden till en och en halv timma, använd ”90m” istället för ”1h30m”.

Om detta alternativ inte är satt eller är 0 är den automatiska förnyelsen avaktiverad.

Standard: inte satt

krb5_canonicalize (boolean)

Anger om värdens och användarens huvudman skall göras kanonisk. Denna funktion är tillgänglig med MIT Kerberos 1.7 och senare versioner.

Standard: false

Reservfunktionen gör att bakändar automatiskt kan byta till en annan server om den nuvarande servern slutar fungera.

Listan av servrar ges som en kommaseparerad lista; godtyckligt antal mellanslag tillåts runt kommatecknet. Servrarna listas i preferensordning. Listan kan innehålla obegränsat antal servrar.

För varje reservaktiverat konfigurationsalternativ finns det två varianter: primary och backup. Tanken är att servrar i den primära listan föredras och backup-servrar bara provas om inga primära servrar kan nås. Om en backup-server väljs sätts en tidsgräns på 31 sekunder. Efter denna tidsgräns kommer SSSD periodiskt att försöka återansluta till en av de primära servrarna. Om det lyckas kommer den ersätta den nu aktiva (backup-)servern.

Reservmekanismen gör skillnad mellan en maskin och en tjänst. Bakänden försöker först att slå upp värdnamnet för en given maskin; om denna uppslagning misslyckas antas maskinen vara bortkopplad. Inga ytterligare försök görs att ansluta till denna maskin för någon annan tjänst. Om uppslagningsförsöket lyckas försöker bakänden ansluta till en tjänst på denna maskin. Om tjänsteanslutningen misslyckas anses bara just denna tjänst frånkopplad och bakänden byter automatiskt till nästa tjänst. Maskinen betraktas fortfarande som uppkopplad och kan användas vid försök att nå en annan tjänst.

Ytterligare försök att ansluta görs till maskiner eller tjänster som markerats som frånkopplade efter en viss tidsperiod, detta är för närvarande hårdkodat till 30 sekunder.

Om det inte finns några fler maskiner att prova byter bakänden i sin helhet till frånkopplat läge, och försöker sedan återansluta var 30:e sekund.

Att slå upp en server att ansluta till kan vara så enkelt som att göra en enstaka DNS-fråga eller kan innebära flera steg, såsom att hitta den rätta sajten eller försöka med flera värdnamn ifall några av de konfigurerade servrarna inte kan nås. De mer komplexa scenariona kan ta en stund och SSSD behöver balansera mellan att tillhandahålla tillräckligt med tid för att färdigställa upplösningsprocessen men å andra sidan inte försöka för länge före den faller tillbaka på frånkopplat läge. Om SSSD:s felsökningsloggar visar att serverns upplösning överskrider tidsgränsen före en aktiv server nås kan du överväga att ändra tidsgränserna.

Detta avsnitt listar tillgängliga trimningsvariabler. Se deras beskrivning i manualsidan sssd.conf(5).

dns_resolver_server_timeout

Tid i millisekunder som anger hur länge SSSD skall tala med en viss DNS-server före den provar nästa.

Standard: 1000

dns_resolver_op_timeout

Tid i sekunder hur länge SSSD skall försöka slå upp en viss DNS-fråga (t.ex. uppslagning av ett värdnamn eller en SRV-post) före den provar nästa värdnamn eller upptäcktsdomän.

Standard: 3

dns_resolver_timeout

Hur länge skall SSSD försöka slå upp en reservtjänst. Denna tjänsteuppslagning kan internt bestå av flera steg, såsom att slå upp DNS SRV-frågor och lokalisera sajten.

Standard: 6

För LDAP-baserade leverantörer utförs uppslagningsoperationen som en del av LDAP-anslutningsoperationen. Därför skall även tidsgränsen “ldap_opt_timeout” sättas till ett större värde än “dns_resolver_timeout” som i sin tur skall sättas till ett större värde än “dns_resolver_op_timeout” som skall vara större än “dns_resolver_server_timeout”.

Tjänsteupptäcktsfunktionen gör att bakändar automatiskt kan hitta en lämplig server att ansluta till med en speciell DNS-fråga. Denna funktion stödjs inte för backup-servrar.

Om inga servrar anges använder bakänden automatiskt tjänsteupptäckt för att försöka hitta en server. Användaren kan om så önskas välja att använda både en bestämd serveradress och tjänsteupptäckt genom att infoga ett speciellt nyckelord, “_srv_”, i listan av servrar. Preferensordningen bibehålls. Denna funktion är användbar om, till exempel, användaren föredrar att använda tjänsteupptäckt närhelst det är möjligt, och falla tillbaka på en specifik server när inga servrar kan upptäckas med DNS.

Se parametern “dns_discovery_domain” i manualsidan sssd.conf(5) för fler detaljer.

Frågorna anger vanligen _tcp som protokoll. Undantag är dokumenterade i respektive alternativs beskrivning.

För mer information om tjänsteupptäcktsmekanismen, se RFC 2782.

Följande exempel antar att SSSD är korrekt konfigurerad och att APA är en av domänerna i avsnittet [sssd]. Detta exempel visar endast konfigurationen av Kerberosautentisering; det inkluderar inte någon identitetsleverantör.

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

sssd(8), sssd.conf(5), sssd-ldap(5), sssd-ldap-attributes(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)

SSSD uppströms – https://github.com/SSSD/sssd/

04/02/2024 SSSD