12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493 |
- .\" Man page generated from reStructuredText.
- .
- .TH "KRB5.CONF" "5" " " "1.20.1" "MIT Kerberos"
- .SH NAME
- krb5.conf \- Kerberos configuration file
- .
- .nr rst2man-indent-level 0
- .
- .de1 rstReportMargin
- \\$1 \\n[an-margin]
- level \\n[rst2man-indent-level]
- level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
- -
- \\n[rst2man-indent0]
- \\n[rst2man-indent1]
- \\n[rst2man-indent2]
- ..
- .de1 INDENT
- .\" .rstReportMargin pre:
- . RS \\$1
- . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
- . nr rst2man-indent-level +1
- .\" .rstReportMargin post:
- ..
- .de UNINDENT
- . RE
- .\" indent \\n[an-margin]
- .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
- .nr rst2man-indent-level -1
- .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
- .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
- ..
- .sp
- The krb5.conf file contains Kerberos configuration information,
- including the locations of KDCs and admin servers for the Kerberos
- realms of interest, defaults for the current realm and for Kerberos
- applications, and mappings of hostnames onto Kerberos realms.
- Normally, you should install your krb5.conf file in the directory
- \fB/etc\fP\&. You can override the default location by setting the
- environment variable \fBKRB5_CONFIG\fP\&. Multiple colon\-separated
- filenames may be specified in \fBKRB5_CONFIG\fP; all files which are
- present will be read. Starting in release 1.14, directory names can
- also be specified in \fBKRB5_CONFIG\fP; all files within the directory
- whose names consist solely of alphanumeric characters, dashes, or
- underscores will be read.
- .SH STRUCTURE
- .sp
- The krb5.conf file is set up in the style of a Windows INI file.
- Lines beginning with \(aq#\(aq or \(aq;\(aq (possibly after initial whitespace)
- are ignored as comments. Sections are headed by the section name, in
- square brackets. Each section may contain zero or more relations, of
- the form:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- foo = bar
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- or:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- fubar = {
- foo = bar
- baz = quux
- }
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- Placing a \(aq*\(aq after the closing bracket of a section name indicates
- that the section is \fIfinal\fP, meaning that if the same section appears
- within a later file specified in \fBKRB5_CONFIG\fP, it will be ignored.
- A subsection can be marked as final by placing a \(aq*\(aq after either the
- tag name or the closing brace.
- .sp
- The krb5.conf file can include other files using either of the
- following directives at the beginning of a line:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- include FILENAME
- includedir DIRNAME
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- \fIFILENAME\fP or \fIDIRNAME\fP should be an absolute path. The named file or
- directory must exist and be readable. Including a directory includes
- all files within the directory whose names consist solely of
- alphanumeric characters, dashes, or underscores. Starting in release
- 1.15, files with names ending in ".conf" are also included, unless the
- name begins with ".". Included profile files are syntactically
- independent of their parents, so each included file must begin with a
- section header. Starting in release 1.17, files are read in
- alphanumeric order; in previous releases, they may be read in any
- order.
- .sp
- The krb5.conf file can specify that configuration should be obtained
- from a loadable module, rather than the file itself, using the
- following directive at the beginning of a line before any section
- headers:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- module MODULEPATH:RESIDUAL
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- \fIMODULEPATH\fP may be relative to the library path of the krb5
- installation, or it may be an absolute path. \fIRESIDUAL\fP is provided
- to the module at initialization time. If krb5.conf uses a module
- directive, kdc.conf(5) should also use one if it exists.
- .SH SECTIONS
- .sp
- The krb5.conf file may contain the following sections:
- .TS
- center;
- |l|l|.
- _
- T{
- \fI\%[libdefaults]\fP
- T} T{
- Settings used by the Kerberos V5 library
- T}
- _
- T{
- \fI\%[realms]\fP
- T} T{
- Realm\-specific contact information and settings
- T}
- _
- T{
- \fI\%[domain_realm]\fP
- T} T{
- Maps server hostnames to Kerberos realms
- T}
- _
- T{
- \fI\%[capaths]\fP
- T} T{
- Authentication paths for non\-hierarchical cross\-realm
- T}
- _
- T{
- \fI\%[appdefaults]\fP
- T} T{
- Settings used by some Kerberos V5 applications
- T}
- _
- T{
- \fI\%[plugins]\fP
- T} T{
- Controls plugin module registration
- T}
- _
- .TE
- .sp
- Additionally, krb5.conf may include any of the relations described in
- kdc.conf(5), but it is not a recommended practice.
- .SS [libdefaults]
- .sp
- The libdefaults section may contain any of the following relations:
- .INDENT 0.0
- .TP
- \fBallow_weak_crypto\fP
- If this flag is set to false, then weak encryption types (as noted
- in Encryption_types in kdc.conf(5)) will be filtered
- out of the lists \fBdefault_tgs_enctypes\fP,
- \fBdefault_tkt_enctypes\fP, and \fBpermitted_enctypes\fP\&. The default
- value for this tag is false.
- .TP
- \fBcanonicalize\fP
- If this flag is set to true, initial ticket requests to the KDC
- will request canonicalization of the client principal name, and
- answers with different client principals than the requested
- principal will be accepted. The default value is false.
- .TP
- \fBccache_type\fP
- This parameter determines the format of credential cache types
- created by kinit(1) or other programs. The default value
- is 4, which represents the most current format. Smaller values
- can be used for compatibility with very old implementations of
- Kerberos which interact with credential caches on the same host.
- .TP
- \fBclockskew\fP
- Sets the maximum allowable amount of clockskew in seconds that the
- library will tolerate before assuming that a Kerberos message is
- invalid. The default value is 300 seconds, or five minutes.
- .sp
- The clockskew setting is also used when evaluating ticket start
- and expiration times. For example, tickets that have reached
- their expiration time can still be used (and renewed if they are
- renewable tickets) if they have been expired for a shorter
- duration than the \fBclockskew\fP setting.
- .TP
- \fBdefault_ccache_name\fP
- This relation specifies the name of the default credential cache.
- The default is \fBFILE:/tmp/krb5cc_%{uid}\fP\&. This relation is subject to parameter
- expansion (see below). New in release 1.11.
- .TP
- \fBdefault_client_keytab_name\fP
- This relation specifies the name of the default keytab for
- obtaining client credentials. The default is \fBFILE:/opt/conda/var/krb5/user/%{euid}/client.keytab\fP\&. This
- relation is subject to parameter expansion (see below).
- New in release 1.11.
- .TP
- \fBdefault_keytab_name\fP
- This relation specifies the default keytab name to be used by
- application servers such as sshd. The default is \fBFILE:/etc/krb5.keytab\fP\&. This
- relation is subject to parameter expansion (see below).
- .TP
- \fBdefault_rcache_name\fP
- This relation specifies the name of the default replay cache.
- The default is \fBdfl:\fP\&. This relation is subject to parameter
- expansion (see below). New in release 1.18.
- .TP
- \fBdefault_realm\fP
- Identifies the default Kerberos realm for the client. Set its
- value to your Kerberos realm. If this value is not set, then a
- realm must be specified with every Kerberos principal when
- invoking programs such as kinit(1)\&.
- .TP
- \fBdefault_tgs_enctypes\fP
- Identifies the supported list of session key encryption types that
- the client should request when making a TGS\-REQ, in order of
- preference from highest to lowest. The list may be delimited with
- commas or whitespace. See Encryption_types in
- kdc.conf(5) for a list of the accepted values for this tag.
- Starting in release 1.18, the default value is the value of
- \fBpermitted_enctypes\fP\&. For previous releases or if
- \fBpermitted_enctypes\fP is not set, the default value is
- \fBaes256\-cts\-hmac\-sha1\-96 aes128\-cts\-hmac\-sha1\-96 aes256\-cts\-hmac\-sha384\-192 aes128\-cts\-hmac\-sha256\-128 des3\-cbc\-sha1 arcfour\-hmac\-md5 camellia256\-cts\-cmac camellia128\-cts\-cmac\fP\&.
- .sp
- Do not set this unless required for specific backward
- compatibility purposes; stale values of this setting can prevent
- clients from taking advantage of new stronger enctypes when the
- libraries are upgraded.
- .TP
- \fBdefault_tkt_enctypes\fP
- Identifies the supported list of session key encryption types that
- the client should request when making an AS\-REQ, in order of
- preference from highest to lowest. The format is the same as for
- default_tgs_enctypes. Starting in release 1.18, the default
- value is the value of \fBpermitted_enctypes\fP\&. For previous
- releases or if \fBpermitted_enctypes\fP is not set, the default
- value is \fBaes256\-cts\-hmac\-sha1\-96 aes128\-cts\-hmac\-sha1\-96 aes256\-cts\-hmac\-sha384\-192 aes128\-cts\-hmac\-sha256\-128 des3\-cbc\-sha1 arcfour\-hmac\-md5 camellia256\-cts\-cmac camellia128\-cts\-cmac\fP\&.
- .sp
- Do not set this unless required for specific backward
- compatibility purposes; stale values of this setting can prevent
- clients from taking advantage of new stronger enctypes when the
- libraries are upgraded.
- .TP
- \fBdns_canonicalize_hostname\fP
- Indicate whether name lookups will be used to canonicalize
- hostnames for use in service principal names. Setting this flag
- to false can improve security by reducing reliance on DNS, but
- means that short hostnames will not be canonicalized to
- fully\-qualified hostnames. If this option is set to \fBfallback\fP (new
- in release 1.18), DNS canonicalization will only be performed the
- server hostname is not found with the original name when
- requesting credentials. The default value is true.
- .TP
- \fBdns_lookup_kdc\fP
- Indicate whether DNS SRV records should be used to locate the KDCs
- and other servers for a realm, if they are not listed in the
- krb5.conf information for the realm. (Note that the admin_server
- entry must be in the krb5.conf realm information in order to
- contact kadmind, because the DNS implementation for kadmin is
- incomplete.)
- .sp
- Enabling this option does open up a type of denial\-of\-service
- attack, if someone spoofs the DNS records and redirects you to
- another server. However, it\(aqs no worse than a denial of service,
- because that fake KDC will be unable to decode anything you send
- it (besides the initial ticket request, which has no encrypted
- data), and anything the fake KDC sends will not be trusted without
- verification using some secret that it won\(aqt know.
- .TP
- \fBdns_uri_lookup\fP
- Indicate whether DNS URI records should be used to locate the KDCs
- and other servers for a realm, if they are not listed in the
- krb5.conf information for the realm. SRV records are used as a
- fallback if no URI records were found. The default value is true.
- New in release 1.15.
- .TP
- \fBenforce_ok_as_delegate\fP
- If this flag to true, GSSAPI credential delegation will be
- disabled when the \fBok\-as\-delegate\fP flag is not set in the
- service ticket. If this flag is false, the \fBok\-as\-delegate\fP
- ticket flag is only enforced when an application specifically
- requests enforcement. The default value is false.
- .TP
- \fBerr_fmt\fP
- This relation allows for custom error message formatting. If a
- value is set, error messages will be formatted by substituting a
- normal error message for %M and an error code for %C in the value.
- .TP
- \fBextra_addresses\fP
- This allows a computer to use multiple local addresses, in order
- to allow Kerberos to work in a network that uses NATs while still
- using address\-restricted tickets. The addresses should be in a
- comma\-separated list. This option has no effect if
- \fBnoaddresses\fP is true.
- .TP
- \fBforwardable\fP
- If this flag is true, initial tickets will be forwardable by
- default, if allowed by the KDC. The default value is false.
- .TP
- \fBignore_acceptor_hostname\fP
- When accepting GSSAPI or krb5 security contexts for host\-based
- service principals, ignore any hostname passed by the calling
- application, and allow clients to authenticate to any service
- principal in the keytab matching the service name and realm name
- (if given). This option can improve the administrative
- flexibility of server applications on multihomed hosts, but could
- compromise the security of virtual hosting environments. The
- default value is false. New in release 1.10.
- .TP
- \fBk5login_authoritative\fP
- If this flag is true, principals must be listed in a local user\(aqs
- k5login file to be granted login access, if a \&.k5login(5)
- file exists. If this flag is false, a principal may still be
- granted login access through other mechanisms even if a k5login
- file exists but does not list the principal. The default value is
- true.
- .TP
- \fBk5login_directory\fP
- If set, the library will look for a local user\(aqs k5login file
- within the named directory, with a filename corresponding to the
- local username. If not set, the library will look for k5login
- files in the user\(aqs home directory, with the filename .k5login.
- For security reasons, .k5login files must be owned by
- the local user or by root.
- .TP
- \fBkcm_mach_service\fP
- On macOS only, determines the name of the bootstrap service used to
- contact the KCM daemon for the KCM credential cache type. If the
- value is \fB\-\fP, Mach RPC will not be used to contact the KCM
- daemon. The default value is \fBorg.h5l.kcm\fP\&.
- .TP
- \fBkcm_socket\fP
- Determines the path to the Unix domain socket used to access the
- KCM daemon for the KCM credential cache type. If the value is
- \fB\-\fP, Unix domain sockets will not be used to contact the KCM
- daemon. The default value is
- \fB/var/run/.heim_org.h5l.kcm\-socket\fP\&.
- .TP
- \fBkdc_default_options\fP
- Default KDC options (Xored for multiple values) when requesting
- initial tickets. By default it is set to 0x00000010
- (KDC_OPT_RENEWABLE_OK).
- .TP
- \fBkdc_timesync\fP
- Accepted values for this relation are 1 or 0. If it is nonzero,
- client machines will compute the difference between their time and
- the time returned by the KDC in the timestamps in the tickets and
- use this value to correct for an inaccurate system clock when
- requesting service tickets or authenticating to services. This
- corrective factor is only used by the Kerberos library; it is not
- used to change the system clock. The default value is 1.
- .TP
- \fBnoaddresses\fP
- If this flag is true, requests for initial tickets will not be
- made with address restrictions set, allowing the tickets to be
- used across NATs. The default value is true.
- .TP
- \fBpermitted_enctypes\fP
- Identifies the encryption types that servers will permit for
- session keys and for ticket and authenticator encryption, ordered
- by preference from highest to lowest. Starting in release 1.18,
- this tag also acts as the default value for
- \fBdefault_tgs_enctypes\fP and \fBdefault_tkt_enctypes\fP\&. The
- default value for this tag is \fBaes256\-cts\-hmac\-sha1\-96 aes128\-cts\-hmac\-sha1\-96 aes256\-cts\-hmac\-sha384\-192 aes128\-cts\-hmac\-sha256\-128 des3\-cbc\-sha1 arcfour\-hmac\-md5 camellia256\-cts\-cmac camellia128\-cts\-cmac\fP\&.
- .TP
- \fBplugin_base_dir\fP
- If set, determines the base directory where krb5 plugins are
- located. The default value is the \fBkrb5/plugins\fP subdirectory
- of the krb5 library directory. This relation is subject to
- parameter expansion (see below) in release 1.17 and later.
- .TP
- \fBpreferred_preauth_types\fP
- This allows you to set the preferred preauthentication types which
- the client will attempt before others which may be advertised by a
- KDC. The default value for this setting is "17, 16, 15, 14",
- which forces libkrb5 to attempt to use PKINIT if it is supported.
- .TP
- \fBproxiable\fP
- If this flag is true, initial tickets will be proxiable by
- default, if allowed by the KDC. The default value is false.
- .TP
- \fBqualify_shortname\fP
- If this string is set, it determines the domain suffix for
- single\-component hostnames when DNS canonicalization is not used
- (either because \fBdns_canonicalize_hostname\fP is false or because
- forward canonicalization failed). The default value is the first
- search domain of the system\(aqs DNS configuration. To disable
- qualification of shortnames, set this relation to the empty string
- with \fBqualify_shortname = ""\fP\&. (New in release 1.18.)
- .TP
- \fBrdns\fP
- If this flag is true, reverse name lookup will be used in addition
- to forward name lookup to canonicalizing hostnames for use in
- service principal names. If \fBdns_canonicalize_hostname\fP is set
- to false, this flag has no effect. The default value is true.
- .TP
- \fBrealm_try_domains\fP
- Indicate whether a host\(aqs domain components should be used to
- determine the Kerberos realm of the host. The value of this
- variable is an integer: \-1 means not to search, 0 means to try the
- host\(aqs domain itself, 1 means to also try the domain\(aqs immediate
- parent, and so forth. The library\(aqs usual mechanism for locating
- Kerberos realms is used to determine whether a domain is a valid
- realm, which may involve consulting DNS if \fBdns_lookup_kdc\fP is
- set. The default is not to search domain components.
- .TP
- \fBrenew_lifetime\fP
- (duration string.) Sets the default renewable lifetime
- for initial ticket requests. The default value is 0.
- .TP
- \fBspake_preauth_groups\fP
- A whitespace or comma\-separated list of words which specifies the
- groups allowed for SPAKE preauthentication. The possible values
- are:
- .TS
- center;
- |l|l|.
- _
- T{
- edwards25519
- T} T{
- Edwards25519 curve (\fI\%RFC 7748\fP)
- T}
- _
- T{
- P\-256
- T} T{
- NIST P\-256 curve (\fI\%RFC 5480\fP)
- T}
- _
- T{
- P\-384
- T} T{
- NIST P\-384 curve (\fI\%RFC 5480\fP)
- T}
- _
- T{
- P\-521
- T} T{
- NIST P\-521 curve (\fI\%RFC 5480\fP)
- T}
- _
- .TE
- .sp
- The default value for the client is \fBedwards25519\fP\&. The default
- value for the KDC is empty. New in release 1.17.
- .TP
- \fBticket_lifetime\fP
- (duration string.) Sets the default lifetime for initial
- ticket requests. The default value is 1 day.
- .TP
- \fBudp_preference_limit\fP
- When sending a message to the KDC, the library will try using TCP
- before UDP if the size of the message is above
- \fBudp_preference_limit\fP\&. If the message is smaller than
- \fBudp_preference_limit\fP, then UDP will be tried before TCP.
- Regardless of the size, both protocols will be tried if the first
- attempt fails.
- .TP
- \fBverify_ap_req_nofail\fP
- If this flag is true, then an attempt to verify initial
- credentials will fail if the client machine does not have a
- keytab. The default value is false.
- .TP
- \fBclient_aware_channel_bindings\fP
- If this flag is true, then all application protocol authentication
- requests will be flagged to indicate that the application supports
- channel bindings when operating over a secure channel. The
- default value is false.
- .UNINDENT
- .SS [realms]
- .sp
- Each tag in the [realms] section of the file is the name of a Kerberos
- realm. The value of the tag is a subsection with relations that
- define the properties of that particular realm. For each realm, the
- following tags may be specified in the realm\(aqs subsection:
- .INDENT 0.0
- .TP
- \fBadmin_server\fP
- Identifies the host where the administration server is running.
- Typically, this is the primary Kerberos server. This tag must be
- given a value in order to communicate with the kadmind(8)
- server for the realm.
- .TP
- \fBauth_to_local\fP
- This tag allows you to set a general rule for mapping principal
- names to local user names. It will be used if there is not an
- explicit mapping for the principal name that is being
- translated. The possible values are:
- .INDENT 7.0
- .TP
- \fBRULE:\fP\fIexp\fP
- The local name will be formulated from \fIexp\fP\&.
- .sp
- The format for \fIexp\fP is \fB[\fP\fIn\fP\fB:\fP\fIstring\fP\fB](\fP\fIregexp\fP\fB)s/\fP\fIpattern\fP\fB/\fP\fIreplacement\fP\fB/g\fP\&.
- The integer \fIn\fP indicates how many components the target
- principal should have. If this matches, then a string will be
- formed from \fIstring\fP, substituting the realm of the principal
- for \fB$0\fP and the \fIn\fP\(aqth component of the principal for
- \fB$n\fP (e.g., if the principal was \fBjohndoe/admin\fP then
- \fB[2:$2$1foo]\fP would result in the string
- \fBadminjohndoefoo\fP). If this string matches \fIregexp\fP, then
- the \fBs//[g]\fP substitution command will be run over the
- string. The optional \fBg\fP will cause the substitution to be
- global over the \fIstring\fP, instead of replacing only the first
- match in the \fIstring\fP\&.
- .TP
- \fBDEFAULT\fP
- The principal name will be used as the local user name. If
- the principal has more than one component or is not in the
- default realm, this rule is not applicable and the conversion
- will fail.
- .UNINDENT
- .sp
- For example:
- .INDENT 7.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [realms]
- ATHENA.MIT.EDU = {
- auth_to_local = RULE:[2:$1](johndoe)s/^.*$/guest/
- auth_to_local = RULE:[2:$1;$2](^.*;admin$)s/;admin$//
- auth_to_local = RULE:[2:$2](^.*;root)s/^.*$/root/
- auth_to_local = DEFAULT
- }
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- would result in any principal without \fBroot\fP or \fBadmin\fP as the
- second component to be translated with the default rule. A
- principal with a second component of \fBadmin\fP will become its
- first component. \fBroot\fP will be used as the local name for any
- principal with a second component of \fBroot\fP\&. The exception to
- these two rules are any principals \fBjohndoe/*\fP, which will
- always get the local name \fBguest\fP\&.
- .TP
- \fBauth_to_local_names\fP
- This subsection allows you to set explicit mappings from principal
- names to local user names. The tag is the mapping name, and the
- value is the corresponding local user name.
- .TP
- \fBdefault_domain\fP
- This tag specifies the domain used to expand hostnames when
- translating Kerberos 4 service principals to Kerberos 5 principals
- (for example, when converting \fBrcmd.hostname\fP to
- \fBhost/hostname.domain\fP).
- .TP
- \fBdisable_encrypted_timestamp\fP
- If this flag is true, the client will not perform encrypted
- timestamp preauthentication if requested by the KDC. Setting this
- flag can help to prevent dictionary attacks by active attackers,
- if the realm\(aqs KDCs support SPAKE preauthentication or if initial
- authentication always uses another mechanism or always uses FAST.
- This flag persists across client referrals during initial
- authentication. This flag does not prevent the KDC from offering
- encrypted timestamp. New in release 1.17.
- .TP
- \fBhttp_anchors\fP
- When KDCs and kpasswd servers are accessed through HTTPS proxies, this tag
- can be used to specify the location of the CA certificate which should be
- trusted to issue the certificate for a proxy server. If left unspecified,
- the system\-wide default set of CA certificates is used.
- .sp
- The syntax for values is similar to that of values for the
- \fBpkinit_anchors\fP tag:
- .sp
- \fBFILE:\fP \fIfilename\fP
- .sp
- \fIfilename\fP is assumed to be the name of an OpenSSL\-style ca\-bundle file.
- .sp
- \fBDIR:\fP \fIdirname\fP
- .sp
- \fIdirname\fP is assumed to be an directory which contains CA certificates.
- All files in the directory will be examined; if they contain certificates
- (in PEM format), they will be used.
- .sp
- \fBENV:\fP \fIenvvar\fP
- .sp
- \fIenvvar\fP specifies the name of an environment variable which has been set
- to a value conforming to one of the previous values. For example,
- \fBENV:X509_PROXY_CA\fP, where environment variable \fBX509_PROXY_CA\fP has
- been set to \fBFILE:/tmp/my_proxy.pem\fP\&.
- .TP
- \fBkdc\fP
- The name or address of a host running a KDC for that realm. An
- optional port number, separated from the hostname by a colon, may
- be included. If the name or address contains colons (for example,
- if it is an IPv6 address), enclose it in square brackets to
- distinguish the colon from a port separator. For your computer to
- be able to communicate with the KDC for each realm, this tag must
- be given a value in each realm subsection in the configuration
- file, or there must be DNS SRV records specifying the KDCs.
- .TP
- \fBkpasswd_server\fP
- Points to the server where all the password changes are performed.
- If there is no such entry, DNS will be queried (unless forbidden
- by \fBdns_lookup_kdc\fP). Finally, port 464 on the \fBadmin_server\fP
- host will be tried.
- .TP
- \fBmaster_kdc\fP
- The name for \fBprimary_kdc\fP prior to release 1.19. Its value is
- used as a fallback if \fBprimary_kdc\fP is not specified.
- .TP
- \fBprimary_kdc\fP
- Identifies the primary KDC(s). Currently, this tag is used in only
- one case: If an attempt to get credentials fails because of an
- invalid password, the client software will attempt to contact the
- primary KDC, in case the user\(aqs password has just been changed, and
- the updated database has not been propagated to the replica
- servers yet. New in release 1.19.
- .TP
- \fBv4_instance_convert\fP
- This subsection allows the administrator to configure exceptions
- to the \fBdefault_domain\fP mapping rule. It contains V4 instances
- (the tag name) which should be translated to some specific
- hostname (the tag value) as the second component in a Kerberos V5
- principal name.
- .TP
- \fBv4_realm\fP
- This relation is used by the krb524 library routines when
- converting a V5 principal name to a V4 principal name. It is used
- when the V4 realm name and the V5 realm name are not the same, but
- still share the same principal names and passwords. The tag value
- is the Kerberos V4 realm name.
- .UNINDENT
- .SS [domain_realm]
- .sp
- The [domain_realm] section provides a translation from hostnames to
- Kerberos realms. Each tag is a domain name, providing the mapping for
- that domain and all subdomains. If the tag begins with a period
- (\fB\&.\fP) then it applies only to subdomains. The Kerberos realm may be
- identified either in the \fI\%realms\fP section or using DNS SRV records.
- Tag names should be in lower case. For example:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [domain_realm]
- crash.mit.edu = TEST.ATHENA.MIT.EDU
- .dev.mit.edu = TEST.ATHENA.MIT.EDU
- mit.edu = ATHENA.MIT.EDU
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- maps the host with the name \fBcrash.mit.edu\fP into the
- \fBTEST.ATHENA.MIT.EDU\fP realm. The second entry maps all hosts under the
- domain \fBdev.mit.edu\fP into the \fBTEST.ATHENA.MIT.EDU\fP realm, but not
- the host with the name \fBdev.mit.edu\fP\&. That host is matched
- by the third entry, which maps the host \fBmit.edu\fP and all hosts
- under the domain \fBmit.edu\fP that do not match a preceding rule
- into the realm \fBATHENA.MIT.EDU\fP\&.
- .sp
- If no translation entry applies to a hostname used for a service
- principal for a service ticket request, the library will try to get a
- referral to the appropriate realm from the client realm\(aqs KDC. If
- that does not succeed, the host\(aqs realm is considered to be the
- hostname\(aqs domain portion converted to uppercase, unless the
- \fBrealm_try_domains\fP setting in [libdefaults] causes a different
- parent domain to be used.
- .SS [capaths]
- .sp
- In order to perform direct (non\-hierarchical) cross\-realm
- authentication, configuration is needed to determine the
- authentication paths between realms.
- .sp
- A client will use this section to find the authentication path between
- its realm and the realm of the server. The server will use this
- section to verify the authentication path used by the client, by
- checking the transited field of the received ticket.
- .sp
- There is a tag for each participating client realm, and each tag has
- subtags for each of the server realms. The value of the subtags is an
- intermediate realm which may participate in the cross\-realm
- authentication. The subtags may be repeated if there is more then one
- intermediate realm. A value of "." means that the two realms share
- keys directly, and no intermediate realms should be allowed to
- participate.
- .sp
- Only those entries which will be needed on the client or the server
- need to be present. A client needs a tag for its local realm with
- subtags for all the realms of servers it will need to authenticate to.
- A server needs a tag for each realm of the clients it will serve, with
- a subtag of the server realm.
- .sp
- For example, \fBANL.GOV\fP, \fBPNL.GOV\fP, and \fBNERSC.GOV\fP all wish to
- use the \fBES.NET\fP realm as an intermediate realm. ANL has a sub
- realm of \fBTEST.ANL.GOV\fP which will authenticate with \fBNERSC.GOV\fP
- but not \fBPNL.GOV\fP\&. The [capaths] section for \fBANL.GOV\fP systems
- would look like this:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [capaths]
- ANL.GOV = {
- TEST.ANL.GOV = .
- PNL.GOV = ES.NET
- NERSC.GOV = ES.NET
- ES.NET = .
- }
- TEST.ANL.GOV = {
- ANL.GOV = .
- }
- PNL.GOV = {
- ANL.GOV = ES.NET
- }
- NERSC.GOV = {
- ANL.GOV = ES.NET
- }
- ES.NET = {
- ANL.GOV = .
- }
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- The [capaths] section of the configuration file used on \fBNERSC.GOV\fP
- systems would look like this:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [capaths]
- NERSC.GOV = {
- ANL.GOV = ES.NET
- TEST.ANL.GOV = ES.NET
- TEST.ANL.GOV = ANL.GOV
- PNL.GOV = ES.NET
- ES.NET = .
- }
- ANL.GOV = {
- NERSC.GOV = ES.NET
- }
- PNL.GOV = {
- NERSC.GOV = ES.NET
- }
- ES.NET = {
- NERSC.GOV = .
- }
- TEST.ANL.GOV = {
- NERSC.GOV = ANL.GOV
- NERSC.GOV = ES.NET
- }
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- When a subtag is used more than once within a tag, clients will use
- the order of values to determine the path. The order of values is not
- important to servers.
- .SS [appdefaults]
- .sp
- Each tag in the [appdefaults] section names a Kerberos V5 application
- or an option that is used by some Kerberos V5 application[s]. The
- value of the tag defines the default behaviors for that application.
- .sp
- For example:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [appdefaults]
- telnet = {
- ATHENA.MIT.EDU = {
- option1 = false
- }
- }
- telnet = {
- option1 = true
- option2 = true
- }
- ATHENA.MIT.EDU = {
- option2 = false
- }
- option2 = true
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- The above four ways of specifying the value of an option are shown in
- order of decreasing precedence. In this example, if telnet is running
- in the realm EXAMPLE.COM, it should, by default, have option1 and
- option2 set to true. However, a telnet program in the realm
- \fBATHENA.MIT.EDU\fP should have \fBoption1\fP set to false and
- \fBoption2\fP set to true. Any other programs in ATHENA.MIT.EDU should
- have \fBoption2\fP set to false by default. Any programs running in
- other realms should have \fBoption2\fP set to true.
- .sp
- The list of specifiable options for each application may be found in
- that application\(aqs man pages. The application defaults specified here
- are overridden by those specified in the \fI\%realms\fP section.
- .SS [plugins]
- .INDENT 0.0
- .INDENT 3.5
- .INDENT 0.0
- .IP \(bu 2
- \fI\%pwqual\fP interface
- .IP \(bu 2
- \fI\%kadm5_hook\fP interface
- .IP \(bu 2
- \fI\%clpreauth\fP and \fI\%kdcpreauth\fP interfaces
- .UNINDENT
- .UNINDENT
- .UNINDENT
- .sp
- Tags in the [plugins] section can be used to register dynamic plugin
- modules and to turn modules on and off. Not every krb5 pluggable
- interface uses the [plugins] section; the ones that do are documented
- here.
- .sp
- New in release 1.9.
- .sp
- Each pluggable interface corresponds to a subsection of [plugins].
- All subsections support the same tags:
- .INDENT 0.0
- .TP
- \fBdisable\fP
- This tag may have multiple values. If there are values for this
- tag, then the named modules will be disabled for the pluggable
- interface.
- .TP
- \fBenable_only\fP
- This tag may have multiple values. If there are values for this
- tag, then only the named modules will be enabled for the pluggable
- interface.
- .TP
- \fBmodule\fP
- This tag may have multiple values. Each value is a string of the
- form \fBmodulename:pathname\fP, which causes the shared object
- located at \fIpathname\fP to be registered as a dynamic module named
- \fImodulename\fP for the pluggable interface. If \fIpathname\fP is not an
- absolute path, it will be treated as relative to the
- \fBplugin_base_dir\fP value from \fI\%[libdefaults]\fP\&.
- .UNINDENT
- .sp
- For pluggable interfaces where module order matters, modules
- registered with a \fBmodule\fP tag normally come first, in the order
- they are registered, followed by built\-in modules in the order they
- are documented below. If \fBenable_only\fP tags are used, then the
- order of those tags overrides the normal module order.
- .sp
- The following subsections are currently supported within the [plugins]
- section:
- .SS ccselect interface
- .sp
- The ccselect subsection controls modules for credential cache
- selection within a cache collection. In addition to any registered
- dynamic modules, the following built\-in modules exist (and may be
- disabled with the disable tag):
- .INDENT 0.0
- .TP
- \fBk5identity\fP
- Uses a .k5identity file in the user\(aqs home directory to select a
- client principal
- .TP
- \fBrealm\fP
- Uses the service realm to guess an appropriate cache from the
- collection
- .TP
- \fBhostname\fP
- If the service principal is host\-based, uses the service hostname
- to guess an appropriate cache from the collection
- .UNINDENT
- .SS pwqual interface
- .sp
- The pwqual subsection controls modules for the password quality
- interface, which is used to reject weak passwords when passwords are
- changed. The following built\-in modules exist for this interface:
- .INDENT 0.0
- .TP
- \fBdict\fP
- Checks against the realm dictionary file
- .TP
- \fBempty\fP
- Rejects empty passwords
- .TP
- \fBhesiod\fP
- Checks against user information stored in Hesiod (only if Kerberos
- was built with Hesiod support)
- .TP
- \fBprinc\fP
- Checks against components of the principal name
- .UNINDENT
- .SS kadm5_hook interface
- .sp
- The kadm5_hook interface provides plugins with information on
- principal creation, modification, password changes and deletion. This
- interface can be used to write a plugin to synchronize MIT Kerberos
- with another database such as Active Directory. No plugins are built
- in for this interface.
- .SS kadm5_auth interface
- .sp
- The kadm5_auth section (introduced in release 1.16) controls modules
- for the kadmin authorization interface, which determines whether a
- client principal is allowed to perform a kadmin operation. The
- following built\-in modules exist for this interface:
- .INDENT 0.0
- .TP
- \fBacl\fP
- This module reads the kadm5.acl(5) file, and authorizes
- operations which are allowed according to the rules in the file.
- .TP
- \fBself\fP
- This module authorizes self\-service operations including password
- changes, creation of new random keys, fetching the client\(aqs
- principal record or string attributes, and fetching the policy
- record associated with the client principal.
- .UNINDENT
- .SS clpreauth and kdcpreauth interfaces
- .sp
- The clpreauth and kdcpreauth interfaces allow plugin modules to
- provide client and KDC preauthentication mechanisms. The following
- built\-in modules exist for these interfaces:
- .INDENT 0.0
- .TP
- \fBpkinit\fP
- This module implements the PKINIT preauthentication mechanism.
- .TP
- \fBencrypted_challenge\fP
- This module implements the encrypted challenge FAST factor.
- .TP
- \fBencrypted_timestamp\fP
- This module implements the encrypted timestamp mechanism.
- .UNINDENT
- .SS hostrealm interface
- .sp
- The hostrealm section (introduced in release 1.12) controls modules
- for the host\-to\-realm interface, which affects the local mapping of
- hostnames to realm names and the choice of default realm. The following
- built\-in modules exist for this interface:
- .INDENT 0.0
- .TP
- \fBprofile\fP
- This module consults the [domain_realm] section of the profile for
- authoritative host\-to\-realm mappings, and the \fBdefault_realm\fP
- variable for the default realm.
- .TP
- \fBdns\fP
- This module looks for DNS records for fallback host\-to\-realm
- mappings and the default realm. It only operates if the
- \fBdns_lookup_realm\fP variable is set to true.
- .TP
- \fBdomain\fP
- This module applies heuristics for fallback host\-to\-realm
- mappings. It implements the \fBrealm_try_domains\fP variable, and
- uses the uppercased parent domain of the hostname if that does not
- produce a result.
- .UNINDENT
- .SS localauth interface
- .sp
- The localauth section (introduced in release 1.12) controls modules
- for the local authorization interface, which affects the relationship
- between Kerberos principals and local system accounts. The following
- built\-in modules exist for this interface:
- .INDENT 0.0
- .TP
- \fBdefault\fP
- This module implements the \fBDEFAULT\fP type for \fBauth_to_local\fP
- values.
- .TP
- \fBrule\fP
- This module implements the \fBRULE\fP type for \fBauth_to_local\fP
- values.
- .TP
- \fBnames\fP
- This module looks for an \fBauth_to_local_names\fP mapping for the
- principal name.
- .TP
- \fBauth_to_local\fP
- This module processes \fBauth_to_local\fP values in the default
- realm\(aqs section, and applies the default method if no
- \fBauth_to_local\fP values exist.
- .TP
- \fBk5login\fP
- This module authorizes a principal to a local account according to
- the account\(aqs \&.k5login(5) file.
- .TP
- \fBan2ln\fP
- This module authorizes a principal to a local account if the
- principal name maps to the local account name.
- .UNINDENT
- .SS certauth interface
- .sp
- The certauth section (introduced in release 1.16) controls modules for
- the certificate authorization interface, which determines whether a
- certificate is allowed to preauthenticate a user via PKINIT. The
- following built\-in modules exist for this interface:
- .INDENT 0.0
- .TP
- \fBpkinit_san\fP
- This module authorizes the certificate if it contains a PKINIT
- Subject Alternative Name for the requested client principal, or a
- Microsoft UPN SAN matching the principal if \fBpkinit_allow_upn\fP
- is set to true for the realm.
- .TP
- \fBpkinit_eku\fP
- This module rejects the certificate if it does not contain an
- Extended Key Usage attribute consistent with the
- \fBpkinit_eku_checking\fP value for the realm.
- .TP
- \fBdbmatch\fP
- This module authorizes or rejects the certificate according to
- whether it matches the \fBpkinit_cert_match\fP string attribute on
- the client principal, if that attribute is present.
- .UNINDENT
- .SH PKINIT OPTIONS
- .sp
- \fBNOTE:\fP
- .INDENT 0.0
- .INDENT 3.5
- The following are PKINIT\-specific options. These values may
- be specified in [libdefaults] as global defaults, or within
- a realm\-specific subsection of [libdefaults], or may be
- specified as realm\-specific values in the [realms] section.
- A realm\-specific value overrides, not adds to, a generic
- [libdefaults] specification. The search order is:
- .UNINDENT
- .UNINDENT
- .INDENT 0.0
- .IP 1. 3
- realm\-specific subsection of [libdefaults]:
- .INDENT 3.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [libdefaults]
- EXAMPLE.COM = {
- pkinit_anchors = FILE:/usr/local/example.com.crt
- }
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .IP 2. 3
- realm\-specific value in the [realms] section:
- .INDENT 3.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [realms]
- OTHERREALM.ORG = {
- pkinit_anchors = FILE:/usr/local/otherrealm.org.crt
- }
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .IP 3. 3
- generic value in the [libdefaults] section:
- .INDENT 3.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [libdefaults]
- pkinit_anchors = DIR:/usr/local/generic_trusted_cas/
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .UNINDENT
- .SS Specifying PKINIT identity information
- .sp
- The syntax for specifying Public Key identity, trust, and revocation
- information for PKINIT is as follows:
- .INDENT 0.0
- .TP
- \fBFILE:\fP\fIfilename\fP[\fB,\fP\fIkeyfilename\fP]
- This option has context\-specific behavior.
- .sp
- In \fBpkinit_identity\fP or \fBpkinit_identities\fP, \fIfilename\fP
- specifies the name of a PEM\-format file containing the user\(aqs
- certificate. If \fIkeyfilename\fP is not specified, the user\(aqs
- private key is expected to be in \fIfilename\fP as well. Otherwise,
- \fIkeyfilename\fP is the name of the file containing the private key.
- .sp
- In \fBpkinit_anchors\fP or \fBpkinit_pool\fP, \fIfilename\fP is assumed to
- be the name of an OpenSSL\-style ca\-bundle file.
- .TP
- \fBDIR:\fP\fIdirname\fP
- This option has context\-specific behavior.
- .sp
- In \fBpkinit_identity\fP or \fBpkinit_identities\fP, \fIdirname\fP
- specifies a directory with files named \fB*.crt\fP and \fB*.key\fP
- where the first part of the file name is the same for matching
- pairs of certificate and private key files. When a file with a
- name ending with \fB\&.crt\fP is found, a matching file ending with
- \fB\&.key\fP is assumed to contain the private key. If no such file
- is found, then the certificate in the \fB\&.crt\fP is not used.
- .sp
- In \fBpkinit_anchors\fP or \fBpkinit_pool\fP, \fIdirname\fP is assumed to
- be an OpenSSL\-style hashed CA directory where each CA cert is
- stored in a file named \fBhash\-of\-ca\-cert.#\fP\&. This infrastructure
- is encouraged, but all files in the directory will be examined and
- if they contain certificates (in PEM format), they will be used.
- .sp
- In \fBpkinit_revoke\fP, \fIdirname\fP is assumed to be an OpenSSL\-style
- hashed CA directory where each revocation list is stored in a file
- named \fBhash\-of\-ca\-cert.r#\fP\&. This infrastructure is encouraged,
- but all files in the directory will be examined and if they
- contain a revocation list (in PEM format), they will be used.
- .TP
- \fBPKCS12:\fP\fIfilename\fP
- \fIfilename\fP is the name of a PKCS #12 format file, containing the
- user\(aqs certificate and private key.
- .TP
- \fBPKCS11:\fP[\fBmodule_name=\fP]\fImodname\fP[\fB:slotid=\fP\fIslot\-id\fP][\fB:token=\fP\fItoken\-label\fP][\fB:certid=\fP\fIcert\-id\fP][\fB:certlabel=\fP\fIcert\-label\fP]
- All keyword/values are optional. \fImodname\fP specifies the location
- of a library implementing PKCS #11. If a value is encountered
- with no keyword, it is assumed to be the \fImodname\fP\&. If no
- module\-name is specified, the default is \fBopensc\-pkcs11.so\fP\&.
- \fBslotid=\fP and/or \fBtoken=\fP may be specified to force the use of
- a particular smard card reader or token if there is more than one
- available. \fBcertid=\fP and/or \fBcertlabel=\fP may be specified to
- force the selection of a particular certificate on the device.
- See the \fBpkinit_cert_match\fP configuration option for more ways
- to select a particular certificate to use for PKINIT.
- .TP
- \fBENV:\fP\fIenvvar\fP
- \fIenvvar\fP specifies the name of an environment variable which has
- been set to a value conforming to one of the previous values. For
- example, \fBENV:X509_PROXY\fP, where environment variable
- \fBX509_PROXY\fP has been set to \fBFILE:/tmp/my_proxy.pem\fP\&.
- .UNINDENT
- .SS PKINIT krb5.conf options
- .INDENT 0.0
- .TP
- \fBpkinit_anchors\fP
- Specifies the location of trusted anchor (root) certificates which
- the client trusts to sign KDC certificates. This option may be
- specified multiple times. These values from the config file are
- not used if the user specifies X509_anchors on the command line.
- .TP
- \fBpkinit_cert_match\fP
- Specifies matching rules that the client certificate must match
- before it is used to attempt PKINIT authentication. If a user has
- multiple certificates available (on a smart card, or via other
- media), there must be exactly one certificate chosen before
- attempting PKINIT authentication. This option may be specified
- multiple times. All the available certificates are checked
- against each rule in order until there is a match of exactly one
- certificate.
- .sp
- The Subject and Issuer comparison strings are the \fI\%RFC 2253\fP
- string representations from the certificate Subject DN and Issuer
- DN values.
- .sp
- The syntax of the matching rules is:
- .INDENT 7.0
- .INDENT 3.5
- [\fIrelation\-operator\fP]\fIcomponent\-rule\fP ...
- .UNINDENT
- .UNINDENT
- .sp
- where:
- .INDENT 7.0
- .TP
- .B \fIrelation\-operator\fP
- can be either \fB&&\fP, meaning all component rules must match,
- or \fB||\fP, meaning only one component rule must match. The
- default is \fB&&\fP\&.
- .TP
- .B \fIcomponent\-rule\fP
- can be one of the following. Note that there is no
- punctuation or whitespace between component rules.
- .INDENT 7.0
- .INDENT 3.5
- .nf
- \fB<SUBJECT>\fP\fIregular\-expression\fP
- \fB<ISSUER>\fP\fIregular\-expression\fP
- \fB<SAN>\fP\fIregular\-expression\fP
- \fB<EKU>\fP\fIextended\-key\-usage\-list\fP
- \fB<KU>\fP\fIkey\-usage\-list\fP
- .fi
- .sp
- .UNINDENT
- .UNINDENT
- .sp
- \fIextended\-key\-usage\-list\fP is a comma\-separated list of
- required Extended Key Usage values. All values in the list
- must be present in the certificate. Extended Key Usage values
- can be:
- .INDENT 7.0
- .IP \(bu 2
- pkinit
- .IP \(bu 2
- msScLogin
- .IP \(bu 2
- clientAuth
- .IP \(bu 2
- emailProtection
- .UNINDENT
- .sp
- \fIkey\-usage\-list\fP is a comma\-separated list of required Key
- Usage values. All values in the list must be present in the
- certificate. Key Usage values can be:
- .INDENT 7.0
- .IP \(bu 2
- digitalSignature
- .IP \(bu 2
- keyEncipherment
- .UNINDENT
- .UNINDENT
- .sp
- Examples:
- .INDENT 7.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- pkinit_cert_match = ||<SUBJECT>.*DoE.*<SAN>.*@EXAMPLE.COM
- pkinit_cert_match = &&<EKU>msScLogin,clientAuth<ISSUER>.*DoE.*
- pkinit_cert_match = <EKU>msScLogin,clientAuth<KU>digitalSignature
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .TP
- \fBpkinit_eku_checking\fP
- This option specifies what Extended Key Usage value the KDC
- certificate presented to the client must contain. (Note that if
- the KDC certificate has the pkinit SubjectAlternativeName encoded
- as the Kerberos TGS name, EKU checking is not necessary since the
- issuing CA has certified this as a KDC certificate.) The values
- recognized in the krb5.conf file are:
- .INDENT 7.0
- .TP
- \fBkpKDC\fP
- This is the default value and specifies that the KDC must have
- the id\-pkinit\-KPKdc EKU as defined in \fI\%RFC 4556\fP\&.
- .TP
- \fBkpServerAuth\fP
- If \fBkpServerAuth\fP is specified, a KDC certificate with the
- id\-kp\-serverAuth EKU will be accepted. This key usage value
- is used in most commercially issued server certificates.
- .TP
- \fBnone\fP
- If \fBnone\fP is specified, then the KDC certificate will not be
- checked to verify it has an acceptable EKU. The use of this
- option is not recommended.
- .UNINDENT
- .TP
- \fBpkinit_dh_min_bits\fP
- Specifies the size of the Diffie\-Hellman key the client will
- attempt to use. The acceptable values are 1024, 2048, and 4096.
- The default is 2048.
- .TP
- \fBpkinit_identities\fP
- Specifies the location(s) to be used to find the user\(aqs X.509
- identity information. If this option is specified multiple times,
- each value is attempted in order until certificates are found.
- Note that these values are not used if the user specifies
- \fBX509_user_identity\fP on the command line.
- .TP
- \fBpkinit_kdc_hostname\fP
- The presence of this option indicates that the client is willing
- to accept a KDC certificate with a dNSName SAN (Subject
- Alternative Name) rather than requiring the id\-pkinit\-san as
- defined in \fI\%RFC 4556\fP\&. This option may be specified multiple
- times. Its value should contain the acceptable hostname for the
- KDC (as contained in its certificate).
- .TP
- \fBpkinit_pool\fP
- Specifies the location of intermediate certificates which may be
- used by the client to complete the trust chain between a KDC
- certificate and a trusted anchor. This option may be specified
- multiple times.
- .TP
- \fBpkinit_require_crl_checking\fP
- The default certificate verification process will always check the
- available revocation information to see if a certificate has been
- revoked. If a match is found for the certificate in a CRL,
- verification fails. If the certificate being verified is not
- listed in a CRL, or there is no CRL present for its issuing CA,
- and \fBpkinit_require_crl_checking\fP is false, then verification
- succeeds.
- .sp
- However, if \fBpkinit_require_crl_checking\fP is true and there is
- no CRL information available for the issuing CA, then verification
- fails.
- .sp
- \fBpkinit_require_crl_checking\fP should be set to true if the
- policy is such that up\-to\-date CRLs must be present for every CA.
- .TP
- \fBpkinit_revoke\fP
- Specifies the location of Certificate Revocation List (CRL)
- information to be used by the client when verifying the validity
- of the KDC certificate presented. This option may be specified
- multiple times.
- .UNINDENT
- .SH PARAMETER EXPANSION
- .sp
- Starting with release 1.11, several variables, such as
- \fBdefault_keytab_name\fP, allow parameters to be expanded.
- Valid parameters are:
- .INDENT 0.0
- .INDENT 3.5
- .TS
- center;
- |l|l|.
- _
- T{
- %{TEMP}
- T} T{
- Temporary directory
- T}
- _
- T{
- %{uid}
- T} T{
- Unix real UID or Windows SID
- T}
- _
- T{
- %{euid}
- T} T{
- Unix effective user ID or Windows SID
- T}
- _
- T{
- %{USERID}
- T} T{
- Same as %{uid}
- T}
- _
- T{
- %{null}
- T} T{
- Empty string
- T}
- _
- T{
- %{LIBDIR}
- T} T{
- Installation library directory
- T}
- _
- T{
- %{BINDIR}
- T} T{
- Installation binary directory
- T}
- _
- T{
- %{SBINDIR}
- T} T{
- Installation admin binary directory
- T}
- _
- T{
- %{username}
- T} T{
- (Unix) Username of effective user ID
- T}
- _
- T{
- %{APPDATA}
- T} T{
- (Windows) Roaming application data for current user
- T}
- _
- T{
- %{COMMON_APPDATA}
- T} T{
- (Windows) Application data for all users
- T}
- _
- T{
- %{LOCAL_APPDATA}
- T} T{
- (Windows) Local application data for current user
- T}
- _
- T{
- %{SYSTEM}
- T} T{
- (Windows) Windows system folder
- T}
- _
- T{
- %{WINDOWS}
- T} T{
- (Windows) Windows folder
- T}
- _
- T{
- %{USERCONFIG}
- T} T{
- (Windows) Per\-user MIT krb5 config file directory
- T}
- _
- T{
- %{COMMONCONFIG}
- T} T{
- (Windows) Common MIT krb5 config file directory
- T}
- _
- .TE
- .UNINDENT
- .UNINDENT
- .SH SAMPLE KRB5.CONF FILE
- .sp
- Here is an example of a generic krb5.conf file:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- [libdefaults]
- default_realm = ATHENA.MIT.EDU
- dns_lookup_kdc = true
- dns_lookup_realm = false
- [realms]
- ATHENA.MIT.EDU = {
- kdc = kerberos.mit.edu
- kdc = kerberos\-1.mit.edu
- kdc = kerberos\-2.mit.edu
- admin_server = kerberos.mit.edu
- primary_kdc = kerberos.mit.edu
- }
- EXAMPLE.COM = {
- kdc = kerberos.example.com
- kdc = kerberos\-1.example.com
- admin_server = kerberos.example.com
- }
- [domain_realm]
- mit.edu = ATHENA.MIT.EDU
- [capaths]
- ATHENA.MIT.EDU = {
- EXAMPLE.COM = .
- }
- EXAMPLE.COM = {
- ATHENA.MIT.EDU = .
- }
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .SH FILES
- .sp
- \fB/etc/krb5.conf\fP
- .SH SEE ALSO
- .sp
- syslog(3)
- .SH AUTHOR
- MIT
- .SH COPYRIGHT
- 1985-2022, MIT
- .\" Generated by docutils manpage writer.
- .
|