1.\" $NetBSD: krb5.conf.5,v 1.7 2023/06/19 21:41:44 christos Exp $ 2.\" 3.\" Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan 4.\" (Royal Institute of Technology, Stockholm, Sweden). 5.\" All rights reserved. 6.\" 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 10.\" 11.\" 1. Redistributions of source code must retain the above copyright 12.\" notice, this list of conditions and the following disclaimer. 13.\" 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 18.\" 3. Neither the name of the Institute nor the names of its contributors 19.\" may be used to endorse or promote products derived from this software 20.\" without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" Id 35.\" 36.Dd May 4, 2005 37.Dt KRB5.CONF 5 38.Os 39.Sh NAME 40.Nm krb5.conf 41.Nd configuration file for Kerberos 5 42.Sh SYNOPSIS 43.In krb5/krb5.h 44.Sh DESCRIPTION 45The 46.Nm 47file specifies several configuration parameters for the Kerberos 5 48library, as well as for some programs. 49.Pp 50The file consists of one or more sections, containing a number of 51bindings. 52The value of each binding can be either a string or a list of other 53bindings. 54The grammar looks like: 55.Bd -literal -offset indent 56file: 57 /* empty */ 58 sections 59 60sections: 61 section sections 62 section 63 64section: 65 '[' section_name ']' bindings 66 67section_name: 68 STRING 69 70bindings: 71 binding bindings 72 binding 73 74binding: 75 name '=' STRING 76 name '=' '{' bindings '}' 77 78name: 79 STRING 80 81.Ed 82.Li STRINGs 83consists of one or more non-whitespace characters. 84.Pp 85STRINGs that are specified later in this man-page uses the following 86notation. 87.Bl -tag -width "xxx" -offset indent 88.It boolean 89values can be either yes/true or no/false. 90.It time 91values can be a list of year, month, day, hour, min, second. 92Example: 1 month 2 days 30 min. 93If no unit is given, seconds is assumed. 94.It etypes 95valid encryption types are: des-cbc-crc, des-cbc-md4, des-cbc-md5, 96des3-cbc-sha1, arcfour-hmac-md5, aes128-cts-hmac-sha1-96, and 97aes256-cts-hmac-sha1-96 . 98.It address 99an address can be either a IPv4 or a IPv6 address. 100.El 101.Pp 102Currently recognised sections and bindings are: 103.Bl -tag -width "xxx" -offset indent 104.It Li [appdefaults] 105Specifies the default values to be used for Kerberos applications. 106You can specify defaults per application, realm, or a combination of 107these. 108The preference order is: 109.Bl -enum -compact 110.It 111.Va application Va realm Va option 112.It 113.Va application Va option 114.It 115.Va realm Va option 116.It 117.Va option 118.El 119.Pp 120The supported options are: 121.Bl -tag -width "xxx" -offset indent 122.It Li forwardable = Va boolean 123When obtaining initial credentials, make the credentials forwardable. 124.It Li proxiable = Va boolean 125When obtaining initial credentials, make the credentials proxiable. 126.It Li no-addresses = Va boolean 127When obtaining initial credentials, request them for an empty set of 128addresses, making the tickets valid from any address. 129.It Li ticket_lifetime = Va time 130Default ticket lifetime. 131.It Li renew_lifetime = Va time 132Default renewable ticket lifetime. 133.It Li encrypt = Va boolean 134Use encryption, when available. 135.It Li forward = Va boolean 136Forward credentials to remote host (for 137.Xr rsh 1 , 138.Xr telnet 1 , 139etc). 140.It Li historical_anon_pkinit = Va boolean 141Enable legacy anonymous pkinit command-line syntax. 142With this option set to 143.Li true, 144the 145.Xr kinit 1 146.Fl Fl anonymous 147command with no principal argument specified will request an anonymous pkinit 148ticket from the default realm. 149If a principal argument is specified, it is used as an explicit realm name for 150anonymous pkinit even without an 151.Li @ 152prefix. 153.El 154.It Li [libdefaults] 155.Bl -tag -width "xxx" -offset indent 156.It Li default_realm = Va REALM 157Default realm to use, this is also known as your 158.Dq local realm . 159The default is the result of 160.Fn krb5_get_host_realm "local hostname" . 161.It Li allow_weak_crypto = Va boolean 162are weak crypto algorithms allowed to be used, among others, DES is 163considered weak. 164.It Li clockskew = Va time 165Maximum time differential (in seconds) allowed when comparing 166times. 167Default is 300 seconds (five minutes). 168.It Li kdc_timeout = Va time 169Maximum time to wait for a reply from the kdc, default is 3 seconds. 170.It Li capath = { 171.Bl -tag -width "xxx" -offset indent 172.It Va destination-realm Li = Va next-hop-realm 173.It ... 174.It Li } 175.El 176This is deprecated, see the 177.Li capaths 178section below. 179.It Li default_cc_type = Va cctype 180sets the default credentials type. 181.It Li default_cc_name = Va ccname 182the default credentials cache name. 183If you want to change the type only use 184.Li default_cc_type . 185The string can contain variables that are expanded on runtime. 186The Only supported variable currently is 187.Li %{uid} 188which expands to the current user id. 189.It Li default_etypes = Va etypes ... 190A list of default encryption types to use. (Default: all enctypes if 191allow_weak_crypto = TRUE, else all enctypes except single DES enctypes.) 192.It Li default_as_etypes = Va etypes ... 193A list of default encryption types to use in AS requests. (Default: the 194value of default_etypes.) 195.It Li default_tgs_etypes = Va etypes ... 196A list of default encryption types to use in TGS requests. (Default: 197the value of default_etypes.) 198.It Li default_etypes_des = Va etypes ... 199A list of default encryption types to use when requesting a DES credential. 200.It Li default_keytab_name = Va keytab 201The keytab to use if no other is specified, default is 202.Dq FILE:/etc/krb5.keytab . 203.It Li dns_lookup_kdc = Va boolean 204Use DNS SRV records to lookup KDC services location. 205.It Li dns_lookup_realm = Va boolean 206Use DNS TXT records to lookup domain to realm mappings. 207.It Li kdc_timesync = Va boolean 208Try to keep track of the time differential between the local machine 209and the KDC, and then compensate for that when issuing requests. 210.It Li max_retries = Va number 211The max number of times to try to contact each KDC. 212.It Li large_msg_size = Va number 213The threshold where protocols with tiny maximum message sizes are not 214considered usable to send messages to the KDC. 215.It Li ticket_lifetime = Va time 216Default ticket lifetime. 217.It Li renew_lifetime = Va time 218Default renewable ticket lifetime. 219.It Li forwardable = Va boolean 220When obtaining initial credentials, make the credentials forwardable. 221This option is also valid in the [realms] section. 222.It Li proxiable = Va boolean 223When obtaining initial credentials, make the credentials proxiable. 224This option is also valid in the [realms] section. 225.It Li verify_ap_req_nofail = Va boolean 226If enabled, failure to verify credentials against a local key is a 227fatal error. 228The application has to be able to read the corresponding service key 229for this to work. 230Some applications, like 231.Xr su 1 , 232enable this option unconditionally. 233.It Li warn_pwexpire = Va time 234How soon to warn for expiring password. 235Default is seven days. 236.It Li http_proxy = Va proxy-spec 237A HTTP-proxy to use when talking to the KDC via HTTP. 238.It Li dns_proxy = Va proxy-spec 239Enable using DNS via HTTP. 240.It Li extra_addresses = Va address ... 241A list of addresses to get tickets for along with all local addresses. 242.It Li time_format = Va string 243How to print time strings in logs, this string is passed to 244.Xr strftime 3 . 245.It Li date_format = Va string 246How to print date strings in logs, this string is passed to 247.Xr strftime 3 . 248.It Li log_utc = Va boolean 249Write log-entries using UTC instead of your local time zone. 250.It Li scan_interfaces = Va boolean 251Scan all network interfaces for addresses, as opposed to simply using 252the address associated with the system's host name. 253.It Li fcache_version = Va int 254Use file credential cache format version specified. 255.It Li fcc-mit-ticketflags = Va boolean 256Use MIT compatible format for file credential cache. 257It's the field ticketflags that is stored in reverse bit order for 258older than Heimdal 0.7. 259Setting this flag to 260.Dv TRUE 261makes it store the MIT way, this is default for Heimdal 0.7. 262.It Li check-rd-req-server 263If set to "ignore", the framework will ignore any of the server input to 264.Xr krb5_rd_req 3 , 265this is very useful when the GSS-API server input the 266wrong server name into the gss_accept_sec_context call. 267.It Li k5login_directory = Va directory 268Alternative location for user .k5login files. This option is provided 269for compatibility with MIT krb5 configuration files. 270.It Li k5login_authoritative = Va boolean 271If true then if a principal is not found in k5login files then 272.Xr krb5_userok 3 273will not fallback on principal to username mapping. This option is 274provided for compatibility with MIT krb5 configuration files. 275.It Li kuserok = Va rule ... 276Specifies 277.Xr krb5_userok 3 278behavior. If multiple values are given, then 279.Xr krb5_userok 3 280will evaluate them in order until one succeeds or all fail. Rules are 281implemented by plugins, with three built-in plugins 282described below. Default: USER-K5LOGIN SIMPLE DENY. 283.It Li kuserok = Va DENY 284If set and evaluated then 285.Xr krb5_userok 3 286will deny access to the given username no matter what the principal name 287might be. 288.It Li kuserok = Va SIMPLE 289If set and evaluated then 290.Xr krb5_userok 3 291will use principal to username mapping (see auth_to_local below). If 292the principal maps to the requested username then access is allowed. 293.It Li kuserok = Va SYSTEM-K5LOGIN[:directory] 294If set and evaluated then 295.Xr krb5_userok 3 296will use k5login files named after the 297.Va luser 298argument to 299.Xr krb5_userok 3 300in the given directory or in 301.Pa /etc/k5login.d/ . 302K5login files are text files, with each line containing just a principal 303name; principals apearing in a user's k5login file are permitted access 304to the user's account. Note: this rule performs no ownership nor 305permissions checks on k5login files; proper ownership and 306permissions/ACLs are expected due to the k5login location being a 307system location. 308.It Li kuserok = Va USER-K5LOGIN 309If set and evaluated then 310.Xr krb5_userok 3 311will use 312.Pa ~luser/.k5login 313and 314.Pa ~luser/.k5login.d/* . 315User k5login files and directories must be owned by the user and must 316not have world nor group write permissions. 317.It Li aname2lname-text-db = Va filename 318The named file must be a sorted (in increasing order) text file where 319every line consists of an unparsed principal name optionally followed by 320whitespace and a username. The aname2lname function will do a binary 321search on this file, if configured, looking for lines that match the 322given principal name, and if found the given username will be used, or, 323if the username is missing, an error will be returned. If the file 324doesn't exist, or if no matching line is found then other plugins will 325be allowed to run. 326.It Li fcache_strict_checking 327strict checking in FILE credential caches that owner, no symlink and 328permissions is correct. 329.It Li name_canon_rules = Va rules 330One or more service principal name canonicalization rules. Each rule 331consists of one or more tokens separated by colon (':'). Currently 332these rules are used only for hostname canonicalization (usually when 333getting a service ticket, from a ccache or a TGS, but also when 334acquiring GSS initiator credentials from a keytab). These rules can be 335used to implement DNS resolver-like search lists without having to use 336DNS. 337.Pp 338NOTE: Name canonicalization rules are an experimental feature. 339.Pp 340The first token is a rule type, one of: 341.Va as-is, 342.Va qualify, or 343.Va nss. 344.Pp 345Any remaining tokens must be options tokens: 346.Va use_fast 347(use FAST to protect TGS exchanges; currently not supported), 348.Va use_dnssec 349(use DNSSEC to protect hostname lookups; currently not supported), 350.Va ccache_only 351, 352.Va use_referrals, 353.Va no_referrals, 354.Va lookup_realm, 355.Va mindots=N, 356.Va maxdots=N, 357.Va order=N, 358domain= 359.Va domain, 360realm= 361.Va realm, 362match_domain= 363.Va domain, 364and match_realm= 365.Va realm. 366.Pp 367When trying to obtain a service ticket for a host-based service 368principal name, name canonicalization rules are applied to that name in 369the order given, one by one, until one succeds (a service ticket is 370obtained), or all fail. Similarly when acquiring GSS initiator 371credentials from a keytab, and when comparing a non-canonical GSS name 372to a canonical one. 373.Pp 374For each rule the system checks that the hostname has at least 375.Va mindots 376periods (if given) in it, at most 377.Va maxdots 378periods (if given), that the hostname ends in the given 379.Va match_domain 380(if given), 381and that the realm of the principal matches the 382.Va match_realm 383(if given). 384.Pp 385.Va As-is 386rules leave the hostname unmodified but may set a realm. 387.Va Qualify 388rules qualify the hostname with the given 389.Va domain 390and also may set the realm. 391The 392.Va nss 393rule uses the system resolver to lookup the host's canonical name and is 394usually not secure. Note that using the 395.Va nss 396rule type implies having to have principal aliases in the HDB (though 397not necessarily in keytabs). 398.Pp 399The empty realm denotes "ask the client's realm's TGS". The empty realm 400may be set as well as matched. 401.Pp 402The order in which rules are applied is as follows: first all the rules 403with explicit 404.Va order 405then all other rules in the order in which they appear. If any two 406rules have the same explicit 407.Va order , 408their order of appearance in krb5.conf breaks the tie. Explicitly 409specifying order can be useful where tools read and write the 410configuration file without preserving parameter order. 411.Pp 412Malformed rules are ignored. 413.It Li allow_hierarchical_capaths = Va boolean 414When validating cross-realm transit paths, absent any explicit capath from the 415client realm to the server realm, allow a hierarchical transit path via the 416common ancestor domain of the two realms. 417Defaults to true. 418Note, absent an explicit setting, hierarchical capaths are always used by 419the KDC when generating a referral to a destination with which is no direct 420trust. 421.El 422.It Li [domain_realm] 423This is a list of mappings from DNS domain to Kerberos realm. 424Each binding in this section looks like: 425.Pp 426.Dl domain = realm 427.Pp 428The domain can be either a full name of a host or a trailing 429component, in the latter case the domain-string should start with a 430period. 431The trailing component only matches hosts that are in the same domain, ie 432.Dq .example.com 433matches 434.Dq foo.example.com , 435but not 436.Dq foo.test.example.com . 437.Pp 438The realm may be the token `dns_locate', in which case the actual 439realm will be determined using DNS (independently of the setting 440of the `dns_lookup_realm' option). 441.It Li [realms] 442.Bl -tag -width "xxx" -offset indent 443.It Va REALM Li = { 444.Bl -tag -width "xxx" -offset indent 445.It Li kdc = Va [service/]host[:port] 446Specifies a list of kdcs for this realm. 447If the optional 448.Va port 449is absent, the 450default value for the 451.Dq kerberos/udp 452.Dq kerberos/tcp , 453and 454.Dq http/tcp 455port (depending on service) will be used. 456The kdcs will be used in the order that they are specified. 457.Pp 458The optional 459.Va service 460specifies over what medium the kdc should be 461contacted. 462Possible services are 463.Dq udp , 464.Dq tcp , 465and 466.Dq http . 467Http can also be written as 468.Dq http:// . 469Default service is 470.Dq udp 471and 472.Dq tcp . 473.It Li admin_server = Va host[:port] 474Specifies the admin server for this realm, where all the modifications 475to the database are performed. 476.It Li kpasswd_server = Va host[:port] 477Points to the server where all the password changes are performed. 478If there is no such entry, the kpasswd port on the admin_server host 479will be tried. 480.It Li tgs_require_subkey 481a boolan variable that defaults to false. 482Old DCE secd (pre 1.1) might need this to be true. 483.It Li auth_to_local_names = { 484.Bl -tag -width "xxx" -offset indent 485.It Va principal_name = Va username 486The given 487.Va principal_name 488will be mapped to the given 489.Va username 490if the 491.Va REALM 492is a default realm. 493.El 494.It Li } 495.It Li auth_to_local = HEIMDAL_DEFAULT 496Use the Heimdal default principal to username mapping. 497Applies to principals from the 498.Va REALM 499if and only if 500.Va REALM 501is a default realm. 502.It Li auth_to_local = DEFAULT 503Use the MIT default principal to username mapping. 504Applies to principals from the 505.Va REALM 506if and only if 507.Va REALM 508is a default realm. 509.It Li auth_to_local = DB:/path/to/db.txt 510Use a binary search of the given DB. The DB must be a flat-text 511file sortedf in the "C" locale, with each record being a line 512(separated by either LF or CRLF) consisting of a principal name 513followed by whitespace followed by a username. 514Applies to principals from the 515.Va REALM 516if and only if 517.Va REALM 518is a default realm. 519.It Li auth_to_local = DB:/path/to/db 520Use the given DB, if there's a plugin for it. 521Applies to principals from the 522.Va REALM 523if and only if 524.Va REALM 525is a default realm. 526.It Li auth_to_local = RULE:... 527Use the given rule, if there's a plugin for it. 528Applies to principals from the 529.Va REALM 530if and only if 531.Va REALM 532is a default realm. 533.It Li auth_to_local = NONE 534No additional principal to username mapping is done. Note that 535.Va auth_to_local_names 536and any preceding 537.Va auth_to_local 538rules have precedence. 539.El 540.It Li } 541.El 542.It Li [capaths] 543.Bl -tag -width "xxx" -offset indent 544.It Va client-realm Li = { 545.Bl -tag -width "xxx" -offset indent 546.It Va server-realm Li = Va hop-realm ... 547This serves two purposes. First the first listed 548.Va hop-realm 549tells a client which realm it should contact in order to ultimately 550obtain credentials for a service in the 551.Va server-realm . 552Secondly, it tells the KDC (and other servers) which realms are 553allowed in a multi-hop traversal from 554.Va client-realm 555to 556.Va server-realm . 557Except for the client case, the order of the realms are not important. 558.El 559.It Va } 560.El 561.It Li [logging] 562.Bl -tag -width "xxx" -offset indent 563.It Va entity Li = Va destination 564Specifies that 565.Va entity 566should use the specified 567.Li destination 568for logging. 569See the 570.Xr krb5_openlog 3 571manual page for a list of defined destinations. 572.El 573.It Li [kdc] 574.Bl -tag -width "xxx" -offset indent 575.It Li database Li = { 576.Bl -tag -width "xxx" -offset indent 577.It Li dbname Li = Va [DATBASETYPE:]DATABASENAME 578Use this database for this realm. The 579.Va DATABASETYPE 580should be one of 'lmdb', 'db3', 'db1', 'db', 'sqlite', or 'ldap'. 581See the info documetation how to configure different database backends. 582.It Li realm Li = Va REALM 583Specifies the realm that will be stored in this database. 584It realm isn't set, it will used as the default database, there can 585only be one entry that doesn't have a 586.Li realm 587stanza. 588.It Li mkey_file Li = Pa FILENAME 589Use this keytab file for the master key of this database. 590If not specified 591.Va DATABASENAME Ns .mkey 592will be used. 593.It Li acl_file Li = PA FILENAME 594Use this file for the ACL list of this database. 595.It Li log_file Li = Pa FILENAME 596Use this file as the log of changes performed to the database. 597This file is used by 598.Nm ipropd-master 599for propagating changes to slaves. It is also used by 600.Nm kadmind 601and 602.Nm kadmin 603(when used with the 604.Li -l 605option), and by all applications using 606.Nm libkadm5 607with the local backend, for two-phase commit functionality. Slaves also 608use this. Setting this to 609.Nm /dev/null 610disables two-phase commit and incremental propagation. Use 611.Nm iprop-log 612to show the contents of this log file. 613.It Li log-max-size = Pa number 614When the log reaches this size (in bytes), the log will be truncated, 615saving some entries, and keeping the latest version number so as to not 616disrupt incremental propagation. If set to a negative value then 617automatic log truncation will be disabled. Defaults to 52428800 (50MB). 618.El 619.It Li } 620.It Li max-request = Va SIZE 621Maximum size of a kdc request. 622.It Li require-preauth = Va BOOL 623If set pre-authentication is required. 624.It Li ports = Va "list of ports" 625List of ports the kdc should listen to. 626.It Li addresses = Va "list of interfaces" 627List of addresses the kdc should bind to. 628.It Li enable-http = Va BOOL 629Should the kdc answer kdc-requests over http. 630.It Li tgt-use-strongest-session-key = Va BOOL 631If this is TRUE then the KDC will prefer the strongest key from the 632client's AS-REQ or TGS-REQ enctype list for the ticket session key that 633is supported by the KDC and the target principal when the target 634principal is a krbtgt principal. Else it will prefer the first key from 635the client's AS-REQ enctype list that is also supported by the KDC and 636the target principal. Defaults to FALSE. 637.It Li svc-use-strongest-session-key = Va BOOL 638Like tgt-use-strongest-session-key, but applies to the session key 639enctype of tickets for services other than krbtgt principals. Defaults 640to FALSE. 641.It Li preauth-use-strongest-session-key = Va BOOL 642If TRUE then select the strongest possible enctype from the client's 643AS-REQ for PA-ETYPE-INFO2 (i.e., for password-based pre-authentication). 644Else pick the first supported enctype from the client's AS-REQ. Defaults 645to FALSE. 646.It Li use-strongest-server-key = Va BOOL 647If TRUE then the KDC picks, for the ticket encrypted part's key, the 648first supported enctype from the target service principal's hdb entry's 649current keyset. Else the KDC picks the first supported enctype from the 650target service principal's hdb entry's current keyset. Defaults to TRUE. 651.It Li check-ticket-addresses = Va BOOL 652Verify the addresses in the tickets used in tgs requests. 653.\" XXX 654.It Li allow-null-ticket-addresses = Va BOOL 655Allow address-less tickets. 656.\" XXX 657.It Li allow-anonymous = Va BOOL 658If the kdc is allowed to hand out anonymous tickets. 659.It Li historical_anon_realm = Va boolean 660Enables pre-7.0 non-RFC-comformant KDC behavior. 661With this option set to 662.Li true 663the client realm in anonymous pkinit AS replies will be the requested realm, 664rather than the RFC-conformant 665.Li WELLKNOWN:ANONYMOUS 666realm. 667This can have a security impact on servers that expect to grant access to 668anonymous-but-authenticated to the KDC users of the realm in question: 669they would also grant access to unauthenticated anonymous users. 670As such, it is not recommend to set this option to 671.Li true. 672.It Li encode_as_rep_as_tgs_rep = Va BOOL 673Encode as-rep as tgs-rep to be compatible with mistakes older DCE secd did. 674.\" XXX 675.It Li kdc_warn_pwexpire = Va TIME 676The time before expiration that the user should be warned that her 677password is about to expire. 678.It Li logging = Va Logging 679What type of logging the kdc should use, see also [logging]/kdc. 680.It Li hdb-ldap-structural-object Va structural object 681If the LDAP backend is used for storing principals, this is the 682structural object that will be used when creating and when reading 683objects. 684The default value is account . 685.It Li hdb-ldap-create-base Va creation dn 686is the dn that will be appended to the principal when creating entries. 687Default value is the search dn. 688.It Li enable-digest = Va BOOL 689Should the kdc answer digest requests. The default is FALSE. 690.It Li digests_allowed = Va list of digests 691Specifies the digests the kdc will reply to. The default is 692.Li ntlm-v2 . 693.It Li kx509_ca = Va file 694Specifies the PEM credentials for the kx509 certification authority. 695.It Li require_initial_kca_tickets = Va boolean 696Specified whether to require that tickets for the 697.Li kca_service 698service principal be INITIAL. 699This may be set on a per-realm basis as well as globally. 700Defaults to true for the global setting. 701.It Li kx509_include_pkinit_san = Va boolean 702If true then the kx509 client principal's name and realm will be 703included in an 704.Li id-pkinit-san 705certificate extension. 706This can be set on a per-realm basis as well as globally. 707Defaults to true for the global setting. 708.It Li kx509_template = Va file 709Specifies the PEM file with a template for the certificates to be 710issued. 711The following variables can be interpolated in the subject name using 712${variable} syntax: 713.Bl -tag -width "xxx" -offset indent 714.It principal-name 715The full name of the kx509 client principal. 716.It principal-name-without-realm 717The full name of the kx509 client principal, excluding the realm name. 718.It principal-name-realm 719The name of the client principal's realm. 720.El 721.El 722The 723.Li kx509 , 724.Li kx509_template , 725.Li kx509_include_pkinit_san , 726and 727.Li require_initial_kca_tickets 728parameters may be set on a per-realm basis as well. 729.It Li [kadmin] 730.Bl -tag -width "xxx" -offset indent 731.It Li password_lifetime = Va time 732If a principal already have its password set for expiration, this is 733the time it will be valid for after a change. 734.It Li default_keys = Va keytypes... 735For each entry in 736.Va default_keys 737try to parse it as a sequence of 738.Va etype:salttype:salt 739syntax of this if something like: 740.Pp 741[(des|des3|etype):](pw-salt|afs3-salt)[:string] 742.Pp 743If 744.Ar etype 745is omitted it means everything, and if string is omitted it means the 746default salt string (for that principal and encryption type). 747Additional special values of keytypes are: 748.Bl -tag -width "xxx" -offset indent 749.It Li v5 750The Kerberos 5 salt 751.Va pw-salt 752.El 753.It Li default_key_rules = Va { 754.Bl -tag -width "xxx" -offset indent 755.It Va globing-rule Li = Va keytypes... 756a globbing rule to matching a principal, and when true, use the 757keytypes as specified the same format as [kadmin]default_keys . 758.El 759.It Li } 760.It Li prune-key-history = Va BOOL 761When adding keys to the key history, drop keys that are too old to match 762unexpired tickets (based on the principal's maximum ticket lifetime). 763If the KDC keystore is later compromised traffic protected with the 764discarded older keys may remain protected. This also keeps the HDB 765records for principals with key history from growing without bound. 766The default (backwards compatible) value is "false". 767.It Li use_v4_salt = Va BOOL 768When true, this is the same as 769.Pp 770.Va default_keys = Va des3:pw-salt Va v4 771.Pp 772and is only left for backwards compatibility. 773.It Li [password_quality] 774Check the Password quality assurance in the info documentation for 775more information. 776.Bl -tag -width "xxx" -offset indent 777.It Li check_library = Va library-name 778Library name that contains the password check_function 779.It Li check_function = Va function-name 780Function name for checking passwords in check_library 781.It Li policy_libraries = Va library1 ... libraryN 782List of libraries that can do password policy checks 783.It Li policies = Va policy1 ... policyN 784List of policy names to apply to the password. Builtin policies are 785among other minimum-length, character-class, external-check. 786.El 787.El 788.El 789.Sh ENVIRONMENT 790.Ev KRB5_CONFIG 791points to the configuration file to read. 792.Sh FILES 793.Bl -tag -width "/etc/krb5.conf" 794.It Pa /etc/krb5.conf 795configuration file for Kerberos 5. 796.El 797.Sh EXAMPLES 798.Bd -literal -offset indent 799[libdefaults] 800 default_realm = FOO.SE 801 name_canon_rules = as-is:realm=FOO.SE 802 name_canon_rules = qualify:domain=foo.se:realm=FOO.SE 803 name_canon_rules = qualify:domain=bar.se:realm=FOO.SE 804 name_canon_rules = nss 805[domain_realm] 806 .foo.se = FOO.SE 807 .bar.se = FOO.SE 808[realms] 809 FOO.SE = { 810 kdc = kerberos.foo.se 811 default_domain = foo.se 812 } 813[logging] 814 kdc = FILE:/var/heimdal/kdc.log 815 kdc = SYSLOG:INFO 816 default = SYSLOG:INFO:USER 817[kadmin] 818 default_key_rules = { 819 */ppp@* = arcfour-hmac-md5:pw-salt 820 } 821.Ed 822.Sh DIAGNOSTICS 823Since 824.Nm 825is read and parsed by the krb5 library, there is not a lot of 826opportunities for programs to report parsing errors in any useful 827format. 828To help overcome this problem, there is a program 829.Nm verify_krb5_conf 830that reads 831.Nm 832and tries to emit useful diagnostics from parsing errors. 833Note that this program does not have any way of knowing what options 834are actually used and thus cannot warn about unknown or misspelled 835ones. 836.Sh SEE ALSO 837.Xr kinit 1 , 838.Xr krb5_openlog 3 , 839.Xr strftime 3 , 840.Xr verify_krb5_conf 8 841