1 '\" te 2 .\" Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved. 3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. 4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. 5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] 6 .TH KRB5.CONF 4 "May 16, 2020" 7 .SH NAME 8 krb5.conf \- Kerberos configuration file 9 .SH SYNOPSIS 10 .nf 11 /etc/krb5/krb5.conf 12 .fi 13 14 .SH DESCRIPTION 15 The \fBkrb5.conf\fR file contains Kerberos configuration information, including 16 the locations of \fBKDC\fRs and administration daemons for the Kerberos realms 17 of interest, defaults for the current realm and for Kerberos applications, and 18 mappings of host names onto Kerberos realms. This file must reside on all 19 Kerberos clients. 20 .sp 21 .LP 22 The format of the \fBkrb5.conf\fR consists of sections headings in square 23 brackets. Each section can contain zero or more configuration variables (called 24 \fIrelations\fR), of the form: 25 .sp 26 .LP 27 \fIrelation\fR= \fIrelation-value\fR 28 .sp 29 .LP 30 or 31 .sp 32 .LP 33 \fIrelation-subsection\fR = { 34 .br 35 .in +2 36 \fIrelation\fR= \fIrelation-value\fR 37 .in -2 38 .br 39 .in +2 40 \fIrelation\fR= \fIrelation-value\fR 41 .in -2 42 .sp 43 .LP 44 } 45 .sp 46 .LP 47 The \fBkrb5.conf\fR file can contain any or all of the following sections: 48 .sp 49 .ne 2 50 .na 51 \fB\fBlibdefaults\fR\fR 52 .ad 53 .sp .6 54 .RS 4n 55 Contains default values used by the Kerberos V5 library. 56 .RE 57 58 .sp 59 .ne 2 60 .na 61 \fB\fBappdefaults\fR\fR 62 .ad 63 .sp .6 64 .RS 4n 65 Contains subsections for Kerberos V5 applications, where 66 \fIrelation-subsection\fR is the name of an application. Each subsection 67 describes application-specific defaults. 68 .RE 69 70 .sp 71 .ne 2 72 .na 73 \fB\fBrealms\fR\fR 74 .ad 75 .sp .6 76 .RS 4n 77 Contains subsections for Kerberos realms, where \fIrelation-subsection\fR is 78 the name of a realm. Each subsection contains relations that define the 79 properties for that particular realm. 80 .RE 81 82 .sp 83 .ne 2 84 .na 85 \fB\fBdomain_realm\fR\fR 86 .ad 87 .sp .6 88 .RS 4n 89 Contains relations which map domain names and subdomains onto Kerberos realm 90 names. This is used by programs to determine what realm a host should be in, 91 given its fully qualified domain name. 92 .RE 93 94 .sp 95 .ne 2 96 .na 97 \fB\fBlogging\fR\fR 98 .ad 99 .sp .6 100 .RS 4n 101 Contains relations which determine how Kerberos programs are to perform 102 logging. 103 .RE 104 105 .sp 106 .ne 2 107 .na 108 \fB\fBcapaths\fR\fR 109 .ad 110 .sp .6 111 .RS 4n 112 Contains the authentication paths used with direct (nonhierarchical) 113 cross-realm authentication. Entries in this section are used by the client to 114 determine the intermediate realms which can be used in cross-realm 115 authentication. It is also used by the end-service when checking the transited 116 field for trusted intermediate realms. 117 .RE 118 119 .sp 120 .ne 2 121 .na 122 \fB\fBdbmodules\fR\fR 123 .ad 124 .sp .6 125 .RS 4n 126 Contains relations for Kerberos database plug-in-specific configuration 127 information. 128 .RE 129 130 .sp 131 .ne 2 132 .na 133 \fB\fBkdc\fR\fR 134 .ad 135 .sp .6 136 .RS 4n 137 For a Key Distribution Center (\fBKDC\fR), can contain the location of the 138 \fBkdc.conf\fR file. 139 .RE 140 141 .SS "The \fB[libdefaults]\fR Section" 142 The \fB[libdefaults]\fR section can contain any of the following relations: 143 .sp 144 .ne 2 145 .na 146 \fB\fBdatabase_module\fR\fR 147 .ad 148 .sp .6 149 .RS 4n 150 Selects the \fBdbmodule\fR section entry to use to access the Kerberos 151 database. If this parameter is not present the code uses the standard 152 \fBdb2\fR-based Kerberos database. 153 .RE 154 155 .sp 156 .ne 2 157 .na 158 \fB\fBdefault_keytab_name\fR\fR 159 .ad 160 .sp .6 161 .RS 4n 162 Specifies the default keytab name to be used by application servers such as 163 \fBtelnetd\fR and \fBrlogind\fR. The default is \fB/etc/krb5/krb5.keytab\fR. 164 .RE 165 166 .sp 167 .ne 2 168 .na 169 \fB\fBdefault_realm\fR\fR 170 .ad 171 .sp .6 172 .RS 4n 173 Identifies the default Kerberos realm for the client. Set its value to your 174 Kerberos realm. 175 .RE 176 177 .sp 178 .ne 2 179 .na 180 \fB\fBdefault_tgs_enctypes\fR\fR 181 .ad 182 .sp .6 183 .RS 4n 184 Identifies the supported list of session key encryption types that should be 185 returned by the \fBKDC\fR. The list can be delimited with commas or whitespace. 186 The supported encryption types are \fBdes3-cbc-sha1-kd\fR, \fBdes-cbc-crc\fR, 187 \fBdes-cbc-md5\fR, \fBarcfour-hmac-md5\fR, \fBarcfour-hmac-md5-exp\fR, 188 \fBaes128-cts-hmac-sha1-96\fR, and \fBaes256-cts-hmac-sha1-96\fR. 189 .RE 190 191 .sp 192 .ne 2 193 .na 194 \fB\fBdefault_tkt_enctypes\fR\fR 195 .ad 196 .sp .6 197 .RS 4n 198 Identifies the supported list of session key encryption types that should be 199 requested by the client. The format is the same as for 200 \fBdefault_tgs_enctypes\fR. The supported encryption types are 201 \fBdes3-cbc-sha1-kd\fR, \fBdes-cbc-crc\fR, \fBdes-cbc-md5\fR, 202 \fBarcfour-hmac-md5\fR, \fBarcfour-hmac-md5-exp\fR, 203 \fBaes128-cts-hmac-sha1-96\fR, and \fBaes256-cts-hmac-sha1-96\fR. 204 .RE 205 206 .sp 207 .ne 2 208 .na 209 \fB\fBclockskew\fR\fR 210 .ad 211 .sp .6 212 .RS 4n 213 Sets the maximum allowable amount of clock skew in seconds that the library 214 tolerates before assuming that a Kerberos message is invalid. The default value 215 is 300 seconds, or five minutes. 216 .RE 217 218 .sp 219 .ne 2 220 .na 221 \fB\fBforwardable =\fR [\fBtrue\fR | \fBfalse\fR]\fR 222 .ad 223 .sp .6 224 .RS 4n 225 Sets the "\fBforwardable\fR" flag in all tickets. This allows users to transfer 226 their credentials from one host to another without reauthenticating. This 227 option can also be set in the \fB[appdefaults]\fR or \fB[realms]\fR section 228 (see below) to limit its use in particular applications or just to a specific 229 realm. 230 .RE 231 232 .sp 233 .ne 2 234 .na 235 \fB\fBpermitted_enctypes\fR\fR 236 .ad 237 .sp .6 238 .RS 4n 239 This relation controls the encryption types for session keys permitted by 240 server applications that use Kerberos for authentication. In addition, it 241 controls the encryption types of keys added to a \fBkeytab\fR by means of the 242 \fBkadmin\fR(1M) \fBktadd\fR command. The default is: 243 \fBaes256-cts-hmac-sha1-96\fR, \fBaes128-cts-hmac-sha1-96\fR, 244 \fBdes3-hmac-sha1-kd\fR, \fBarcfour-hmac-md5\fR, \fBarcfour-hmac-md5-exp\fR, 245 \fBdes-cbc-md5\fR, \fBdes-cbc-crc\fR. 246 .RE 247 248 .sp 249 .ne 2 250 .na 251 \fB\fBproxiable =\fR [\fBtrue\fR | \fBfalse\fR]\fR 252 .ad 253 .sp .6 254 .RS 4n 255 Sets the \fBproxiable\fR flag in all tickets. This allows users to create a 256 proxy ticket that can be transferred to a kerberized service to allow that 257 service to perform some function on behalf of the original user. This option 258 can also be set in the \fB[appdefaults]\fR or \fB[realms]\fR section (see 259 below) to limit its use in particular applications or just to a specific realm. 260 .RE 261 262 .sp 263 .ne 2 264 .na 265 \fB\fBrenew_lifetime =\fR\fIlifetime\fR\fR 266 .ad 267 .sp .6 268 .RS 4n 269 Requests renewable tickets, with a total lifetime of \fIlifetime\fR. The value 270 for \fIlifetime\fR must be followed immediately by one of the following 271 delimiters: 272 .sp 273 .ne 2 274 .na 275 \fB\fBs\fR\fR 276 .ad 277 .sp .6 278 .RS 4n 279 seconds 280 .RE 281 282 .sp 283 .ne 2 284 .na 285 \fB\fBm\fR\fR 286 .ad 287 .sp .6 288 .RS 4n 289 minutes 290 .RE 291 292 .sp 293 .ne 2 294 .na 295 \fB\fBh\fR\fR 296 .ad 297 .sp .6 298 .RS 4n 299 hours 300 .RE 301 302 .sp 303 .ne 2 304 .na 305 \fB\fBd\fR\fR 306 .ad 307 .sp .6 308 .RS 4n 309 days 310 .RE 311 312 Example: 313 .sp 314 .in +2 315 .nf 316 \fBrenew_lifetime = 90m\fR 317 .fi 318 .in -2 319 .sp 320 321 Do not mix units. A value of "\fB3h30m\fR" results in an error. 322 .RE 323 324 .sp 325 .ne 2 326 .na 327 \fB\fBmax_lifetime =\fR\fIlifetime\fR\fR 328 .ad 329 .sp .6 330 .RS 4n 331 Sets the requested maximum lifetime of the ticket. The values for 332 \fIlifetime\fR follow the format described for the \fBrenew_lifetime\fR option, 333 above. 334 .RE 335 336 .sp 337 .ne 2 338 .na 339 \fB\fBdns_lookup_kdc\fR\fR 340 .ad 341 .sp .6 342 .RS 4n 343 Indicates whether DNS SRV records need to be used to locate the KDCs and the 344 other servers for a realm, if they have not already been listed in the 345 \fB[realms]\fR section. This option makes the machine vulnerable to a certain 346 type of DoS attack if someone spoofs the DNS records and does a redirect to 347 another server. This is, however, no worse than a DoS, since the bogus KDC is 348 unable to decode anything sent (excepting the initial ticket request, which has 349 no encrypted data). Also, anything the fake KDC sends out isl not trusted 350 without verification (the local machine is unaware of the secret key to be 351 used). If \fBdns_lookup_kdc\fR is not specified but \fBdns_fallback\fR is, then 352 that value is used instead. In either case, values (if present) in the 353 \fB[realms]\fR section override DNS. \fBdns_lookup_kdc\fR is enabled by 354 default. 355 .RE 356 357 .sp 358 .ne 2 359 .na 360 \fB\fBdns_lookup_realm\fR\fR 361 .ad 362 .sp .6 363 .RS 4n 364 Indicates whether DNS TXT records need to be used to determine the Kerberos 365 realm information and/or the host/domain name-to-realm mapping of a host, if 366 this information is not already present in the \fBkrb5.conf\fR file. Enabling 367 this option might make the host vulnerable to a redirection attack, wherein 368 spoofed DNS replies persuade a client to authenticate to the wrong realm. In a 369 realm with no cross-realm trusts, this a DoS attack. If \fBdns_lookup_realm\fR 370 is not specified but \fBdns_fallback\fR is, then that value is used instead. In 371 either case, values (if present) in the \fB[libdefaults]\fR and 372 \fB[domain_realm]\fR sections override DNS. 373 .RE 374 375 .sp 376 .ne 2 377 .na 378 \fB\fBdns_fallback\fR\fR 379 .ad 380 .sp .6 381 .RS 4n 382 Generic flag controlling the use of DNS for retrieval of information about 383 Kerberos servers and host/domain name-to-realm mapping. If both 384 \fBdns_lookup_kdc\fR and \fBdns_lookup_realm\fR have been specified, this 385 option has no effect. 386 .RE 387 388 .sp 389 .ne 2 390 .na 391 \fB\fBverify_ap_req_nofail [true | false]\fR\fR 392 .ad 393 .sp .6 394 .RS 4n 395 If \fBtrue\fR, the local keytab file (\fB/etc/krb5/krb5.keytab\fR) must contain 396 an entry for the local \fBhost\fR principal, for example, 397 \fBhost/foo.bar.com@FOO.COM\fR. This entry is needed to verify that the 398 \fBTGT\fR requested was issued by the same \fBKDC\fR that issued the key for 399 the host principal. If undefined, the behavior is as if this option were set to 400 \fBtrue\fR. Setting this value to \fBfalse\fR leaves the system vulnerable to 401 \fBDNS\fR spoofing attacks. This parameter can be in the \fB[realms]\fR section 402 to set it on a per-realm basis, or it can be in the \fB[libdefaults]\fR section 403 to make it a network-wide setting for all realms. 404 .RE 405 406 .SS "The \fB[appdefaults]\fR Section" 407 This section contains subsections for Kerberos V5 applications, where 408 \fIrelation-subsection\fR is the name of an application. Each subsection 409 contains relations that define the default behaviors for that application. 410 .sp 411 .LP 412 The following relations can be found in the \fB[appdefaults]\fR section, though 413 not all relations are recognized by all kerberized applications. Some are 414 specific to particular applications. 415 .sp 416 .ne 2 417 .na 418 \fB\fBautologin =\fR [\fBtrue\fR | \fBfalse\fR]\fR 419 .ad 420 .sp .6 421 .RS 4n 422 Forces the application to attempt automatic login by presenting Kerberos 423 credentials. This is valid for the following applications: \fBrlogin\fR, 424 \fBrsh\fR, \fBrcp\fR, \fBrdist\fR, and \fBtelnet\fR. 425 .RE 426 427 .sp 428 .ne 2 429 .na 430 \fB\fBencrypt =\fR [\fBtrue\fR | \fBfalse\fR]\fR 431 .ad 432 .sp .6 433 .RS 4n 434 Forces applications to use encryption by default (after authentication) to 435 protect the privacy of the sessions. This is valid for the following 436 applications: \fBrlogin\fR, \fBrsh\fR, \fBrcp\fR, \fBrdist\fR, and 437 \fBtelnet\fR. 438 .RE 439 440 .sp 441 .ne 2 442 .na 443 \fB\fBforward =\fR [\fBtrue\fR | \fBfalse\fR]\fR 444 .ad 445 .sp .6 446 .RS 4n 447 Forces applications to forward the user'ss credentials (after authentication) 448 to the remote server. This is valid for the following applications: 449 \fBrlogin\fR, \fBrsh\fR, \fBrcp\fR, \fBrdist\fR, and \fBtelnet\fR. 450 .RE 451 452 .sp 453 .ne 2 454 .na 455 \fB\fBforwardable =\fR [\fBtrue\fR | \fBfalse\fR]\fR 456 .ad 457 .sp .6 458 .RS 4n 459 See the description in the \fB[libdefaults]\fR section above. This is used by 460 any application that creates a ticket granting ticket and also by applications 461 that can forward tickets to a remote server. 462 .RE 463 464 .sp 465 .ne 2 466 .na 467 \fB\fBproxiable =\fR [\fBtrue\fR | \fBfalse\fR]\fR 468 .ad 469 .sp .6 470 .RS 4n 471 See the description in the \fB[libdefaults]\fR section above. This is used by 472 any application that creates a ticket granting ticket. 473 .RE 474 475 .sp 476 .ne 2 477 .na 478 \fB\fBrenewable =\fR [\fBtrue\fR | \fBfalse\fR]\fR 479 .ad 480 .sp .6 481 .RS 4n 482 Creates a TGT that can be renewed (prior to the ticket expiration time). This 483 is used by any application that creates a ticket granting ticket. 484 .RE 485 486 .sp 487 .ne 2 488 .na 489 \fB\fBno_addresses =\fR [\fBtrue\fR | \fBfalse\fR]\fR 490 .ad 491 .sp .6 492 .RS 4n 493 Creates tickets with no address bindings. This is to allow tickets to be used 494 across a \fBNAT\fR boundary or when using multi-homed systems. This option is 495 valid in the \fBkinit\fR \fB[appdefault]\fR section only. 496 .RE 497 498 .sp 499 .ne 2 500 .na 501 \fB\fBmax_life =\fR\fIlifetime\fR\fR 502 .ad 503 .sp .6 504 .RS 4n 505 Sets the maximum lifetime of the ticket, with a total lifetime of 506 \fIlifetime\fR. The values for \fIlifetime\fR follow the format described in 507 the \fB[libdefaults]\fR section above. This option is obsolete and is removed 508 in a future release of the Solaris operating system. 509 .RE 510 511 .sp 512 .ne 2 513 .na 514 \fB\fBmax_renewable_life =\fR\fIlifetime\fR\fR 515 .ad 516 .sp .6 517 .RS 4n 518 Requests renewable tickets, with a total lifetime of \fIlifetime\fR. The values 519 for \fIlifetime\fR follow the format described in the \fB[libdefaults]\fR 520 section above. This option is obsolete and is removed in a future release of 521 the Solaris operating system. 522 .RE 523 524 .sp 525 .ne 2 526 .na 527 \fB\fBrcmd_protocol =\fR [ \fBrcmdv1\fR | \fBrcmdv2\fR ]\fR 528 .ad 529 .sp .6 530 .RS 4n 531 Specifies which Kerberized "\fBrcmd\fR" protocol to use when using the 532 Kerberized \fBrlogin\fR(1), \fBrsh\fR(1), \fBrcp\fR(1), or \fBrdist\fR(1) 533 programs. The default is to use \fBrcmdv2\fR by default, as this is the more 534 secure and more recent update of the protocol. However, when talking to older 535 \fBMIT\fR or \fBSEAM\fR-based "\fBrcmd\fR" servers, it can be necessary to 536 force the new clients to use the older \fBrcmdv1\fR protocol. This option is 537 valid only for the following applications: \fBrlogin\fR, \fBrcp\fR, \fBrsh\fR, 538 and \fBrdist\fR. 539 .RE 540 541 .sp 542 .LP 543 The following application defaults can be set to \fBtrue\fR or \fBfalse\fR: 544 .sp 545 .in +2 546 .nf 547 kinit 548 forwardable = true 549 proxiable = true 550 renewable = true 551 no_addresses = true 552 max_life = \fIdelta_time\fR 553 max_renewable_life = \fIdelta_time\fR 554 .fi 555 .in -2 556 .sp 557 558 .sp 559 .LP 560 See \fBkinit\fR(1) for the valid time duration formats you can specify for 561 \fIdelta_time\fR. 562 .sp 563 .LP 564 In the following example, \fBkinit\fR gets forwardable tickets by default and 565 \fBtelnet\fR has three default behaviors specified: 566 .sp 567 .in +2 568 .nf 569 [appdefaults] 570 kinit = { 571 forwardable = true 572 } 573 574 telnet = { 575 forward = true 576 encrypt = true 577 autologin = true 578 } 579 .fi 580 .in -2 581 .sp 582 583 .sp 584 .LP 585 The application defaults specified here are overridden by those specified in 586 the \fB[realms]\fR section. 587 .SS "The \fB[realms]\fR Section" 588 This section contains subsections for Kerberos realms, where 589 \fIrelation-subsection\fR is the name of a realm. Each subsection contains 590 relations that define the properties for that particular realm. The following 591 relations can be specified in each \fB[realms]\fR subsection: 592 .sp 593 .ne 2 594 .na 595 \fB\fBadmin_server\fR\fR 596 .ad 597 .sp .6 598 .RS 4n 599 Identifies the host where the Kerberos administration daemon (\fBkadmind\fR) is 600 running. Typically, this is the master \fBKDC\fR. 601 .RE 602 603 .sp 604 .ne 2 605 .na 606 \fB\fIapplication defaults\fR\fR 607 .ad 608 .sp .6 609 .RS 4n 610 Application defaults that are specific to a particular realm can be specified 611 within a \fB[realms]\fR subsection. Realm-specific application defaults 612 override the global defaults specified in the \fB[appdefaults]\fR section. 613 .RE 614 615 .sp 616 .ne 2 617 .na 618 \fB\fBauth_to_local_realm\fR\fR 619 .ad 620 .sp .6 621 .RS 4n 622 For use in the default realm, non-default realms can be equated with the 623 default realm for authenticated name-to-local name mapping. 624 .RE 625 626 .sp 627 .ne 2 628 .na 629 \fB\fBauth_to_local_names\fR\fR 630 .ad 631 .sp .6 632 .RS 4n 633 This subsection allows you to set explicit mappings from principal names to 634 local user names. The tag is the mapping name and the value is the 635 corresponding local user name. 636 .RE 637 638 .sp 639 .ne 2 640 .na 641 \fB\fBauth_to_local\fR\fR 642 .ad 643 .sp .6 644 .RS 4n 645 This tag allows you to set a general rule for mapping principal names to local 646 user names. It is used if there is not an explicit mapping for the principal 647 name that is being translated. The possible values are: 648 .sp 649 .in +2 650 .nf 651 RULE:[<ncomps>:<format>](<regex>)s/<regex>/<text>/ 652 .fi 653 .in -2 654 655 Each rule has three parts: 656 .sp 657 .ne 2 658 .na 659 \fBFirst part\(emFormulate the string on which to perform operations:\fR 660 .ad 661 .sp .6 662 .RS 4n 663 If not present then the string defaults to the fully flattened principal minus 664 the realm name. Otherwise the syntax is as follows: 665 .sp 666 .in +2 667 .nf 668 "[" \fI<ncomps>\fR ":" \fI<format>\fR "]" 669 .fi 670 .in -2 671 672 Where: 673 .sp 674 \fI<ncomps>\fR is the number of expected components for this rule. If the 675 particular principal does not have this number of components, then this rule 676 does not apply. 677 .sp 678 \fI<format>\fR is a string of \fI<component>\fR or verbatim characters to be 679 inserted. 680 .sp 681 \fI<component>\fR is of the form "\fB$\fR"\fI<number>\fR to select the 682 \fI<number>\fRth component. \fI<number>\fR begins from 1. 683 .RE 684 685 .sp 686 .ne 2 687 .na 688 \fBSecond part\(emselect rule validity:\fR 689 .ad 690 .sp .6 691 .RS 4n 692 If not present, this rule can apply to all selections. Otherwise the syntax is 693 as follows: 694 .sp 695 .in +2 696 .nf 697 "(" \fI<regex>\fR ")" 698 .fi 699 .in -2 700 701 Where: 702 .sp 703 \fI<regex>\fR is a selector regular expression. If this regular expression 704 matches the whole pattern generated from the first part, then this rule still 705 applies. 706 .RE 707 708 .sp 709 .ne 2 710 .na 711 \fBThird part\(emTransform rule:\fR 712 .ad 713 .sp .6 714 .RS 4n 715 If not present, then the selection string is passed verbatim and is matched. 716 Otherwise, the syntax is as follows: 717 .sp 718 .in +2 719 .nf 720 \fI<rule>\fR ... 721 .fi 722 .in -2 723 724 Where: 725 .sp 726 \fI<rule>\fR is of the form: 727 .sp 728 .in +2 729 .nf 730 "s/" <regex> "/" <text> "/" ["g"] 731 .fi 732 .in -2 733 734 Regular expressions are defined in \fBregex\fR(5). 735 .sp 736 For example: 737 .sp 738 auth_to_local = RULE:[1:$1@$0](.*@.*ACME\.COM)s/@.*// 739 .sp 740 The preceding maps \fB\fIusername\fR@ACME.COM\fR and all sub-realms of 741 \fBACME.COM\fR to \fIusername\fR. 742 .RE 743 744 .sp 745 .ne 2 746 .na 747 \fBDEFAULT\fR 748 .ad 749 .sp .6 750 .RS 4n 751 The principal name is used as the local name. If the principal has more than 752 one component or is not in the default realm, this rule is not applicable and 753 the conversion fails. 754 .RE 755 756 .RE 757 758 .sp 759 .ne 2 760 .na 761 \fB\fBdatabase_module\fR\fR 762 .ad 763 .sp .6 764 .RS 4n 765 Selects the \fBdbmodule\fR section entry to use to access the Kerberos 766 database. 767 .RE 768 769 .sp 770 .ne 2 771 .na 772 \fB\fBextra_addresses\fR...\fR 773 .ad 774 .sp .6 775 .RS 4n 776 This allows a computer to use multiple local addresses, to allow Kerberos to 777 work in a network that uses NATs. The addresses should be in a comma-separated 778 list. 779 .RE 780 781 .sp 782 .ne 2 783 .na 784 \fB\fBkdc\fR\fR 785 .ad 786 .sp .6 787 .RS 4n 788 The name of a host running a \fBKDC\fR for that realm. An optional port number 789 (separated from the hostname by a colon) can be included. 790 .RE 791 792 .sp 793 .ne 2 794 .na 795 \fB\fBkpasswd_server\fR\fR 796 .ad 797 .sp .6 798 .RS 4n 799 Identifies the host where the Kerberos password-changing server is running. 800 Typically, this is the same as host indicated in the \fBadmin_server\fR. If 801 this parameter is omitted, the host in \fBadmin_server\fR is used. You can also 802 specify a port number if the server indicated by \fBkpasswd_server\fR runs on a 803 port other than 464 (the default). The format of this parameter is: 804 \fIhostname\fR[:\fIport\fR]. 805 .RE 806 807 .sp 808 .ne 2 809 .na 810 \fB\fBkpasswd_protocol\fR\fR 811 .ad 812 .sp .6 813 .RS 4n 814 Identifies the protocol to be used when communicating with the server indicated 815 by \fBkpasswd_server\fR. By default, this parameter is defined to be 816 \fBRPCSEC_GSS\fR, which is the protocol used by Solaris-based administration 817 servers. To be able to change a principal's password stored on non-Solaris 818 Kerberos server, such as Microsoft Active Directory or \fBMIT\fR Kerberos, this 819 value should be \fBSET_CHANGE\fR. This indicates that a non-RPC- based protocol 820 is used to communicate the password change request to the server in the 821 \fBkpasswd_server\fR entry. 822 .RE 823 824 .sp 825 .ne 2 826 .na 827 \fB\fBudp_preference_limit\fR\fR 828 .ad 829 .sp .6 830 .RS 4n 831 When sending a message to the KDC, the library tries using TCP before UDP if 832 the size of the message is above \fBudp_preference_limit\fR. If the message is 833 smaller than \fBudp_preference_limit\fR, then UDP is tried before TCP. 834 Regardless of the size, both protocols are tried if the first attempt fails. 835 .RE 836 837 .sp 838 .ne 2 839 .na 840 \fB\fBverify_ap_req_nofail\fR [\fBtrue\fR | \fBfalse\fR]\fR 841 .ad 842 .sp .6 843 .RS 4n 844 If \fBtrue\fR, the local keytab file (\fB/etc/krb5/krb5.keytab\fR) must contain 845 an entry for the local \fBhost\fR principal, for example, 846 \fBhost/foo.bar.com@FOO.COM\fR. This entry is needed to verify that the 847 \fBTGT\fR requested was issued by the same \fBKDC\fR that issued the key for 848 the host principal. If undefined, the behavior is as if this option were set to 849 \fBtrue\fR. Setting this value to \fBfalse\fR leaves the system vulnerable to 850 \fBDNS\fR spoofing attacks. This parameter might be in the \fB[realms]\fR 851 section to set it on a per-realm basis, or it might be in the 852 \fB[libdefaults]\fR section to make it a network-wide setting for all realms. 853 .RE 854 855 .sp 856 .LP 857 The parameters "\fBforwardable\fR", "\fBproxiable\fR", and 858 "\fBrenew_lifetime\fR" as described in the \fB[libdefaults]\fR section (see 859 above) are also valid in the \fB[realms]\fR section. 860 .sp 861 .LP 862 Notice that \fBkpasswd_server\fR and \fBkpasswd_protocol\fR are realm-specific 863 parameters. Most often, you need to specify them only when using a 864 non-Solaris-based Kerberos server. Otherwise, the change request is sent over 865 \fBRPCSEC_GSS\fR to the Solaris Kerberos administration server. 866 .SS "The \fB[domain_realm]\fR Section" 867 This section provides a translation from a domain name or hostname to a 868 Kerberos realm name. The \fIrelation\fR can be a host name, or a domain name, 869 where domain names are indicated by a period (`\fB\&.\fR') prefix. 870 \fIrelation-value\fR is the Kerberos realm name for that particular host or 871 domain. Host names and domain names should be in lower case. 872 .sp 873 .LP 874 If no translation entry applies, the host's realm is considered to be the 875 hostname's domain portion converted to upper case. For example, the following 876 \fB[domain_realm]\fR section maps \fBcrash.mit.edu\fR into the 877 \fBTEST.ATHENA.MIT.EDU\fR realm: 878 .sp 879 .in +2 880 .nf 881 [domain_realm] 882 .mit.edu = ATHENA.MIT.EDU 883 mit.edu = ATHENA.MIT.EDU 884 crash.mit.edu = TEST.ATHENA.MIT.EDU 885 .fubar.org = FUBAR.ORG 886 fubar.org = FUBAR.ORG 887 .fi 888 .in -2 889 .sp 890 891 .sp 892 .LP 893 All other hosts in the \fBmit.edu\fR domain maps by default to the 894 \fBATHENA.MIT.EDU\fR realm, and all hosts in the \fBfubar.org\fR domain maps by 895 default into the \fBFUBAR.ORG\fR realm. The entries for the hosts \fBmit.edu\fR 896 and \fBfubar.org\fR. Without these entries, these hosts would be mapped into 897 the Kerberos realms \fBEDU\fR and \fBORG\fR, respectively. 898 .SS "The \fB[logging]\fR Section" 899 This section indicates how Kerberos programs are to perform logging. There are 900 two types of relations for this section: relations to specify how to log and a 901 relation to specify how to rotate \fBkdc\fR log files. 902 .sp 903 .LP 904 The following relations can be defined to specify how to log. The same relation 905 can be repeated if you want to assign it multiple logging methods. 906 .sp 907 .ne 2 908 .na 909 \fB\fBadmin_server\fR\fR 910 .ad 911 .sp .6 912 .RS 4n 913 Specifies how to log the Kerberos administration daemon (\fBkadmind\fR). The 914 default is \fBFILE:/var/krb5/kadmin.log.\fR 915 .RE 916 917 .sp 918 .ne 2 919 .na 920 \fB\fBdefault\fR\fR 921 .ad 922 .sp .6 923 .RS 4n 924 Specifies how to perform logging in the absence of explicit specifications 925 otherwise. 926 .RE 927 928 .sp 929 .ne 2 930 .na 931 \fB\fBkdc\fR\fR 932 .ad 933 .sp .6 934 .RS 4n 935 Specifies how the \fBKDC\fR is to perform its logging. The default is 936 \fBFILE:/var/krb5/kdc.log\fR. 937 .RE 938 939 .sp 940 .LP 941 The \fBadmin_server\fR, \fBdefault\fR, and \fBkdc\fR relations can have the 942 following values: 943 .sp 944 .ne 2 945 .na 946 \fB\fBFILE:\fR\fIfilename\fR\fR 947 .ad 948 .br 949 .na 950 \fB\fBFILE=\fR\fIfilename\fR\fR 951 .ad 952 .sp .6 953 .RS 4n 954 This value causes the entity's logging messages to go to the specified file. If 955 the `=' form is used, the file is overwritten. If the `:' form is used, the 956 file is appended to. 957 .RE 958 959 .sp 960 .ne 2 961 .na 962 \fB\fBSTDERR\fR\fR 963 .ad 964 .sp .6 965 .RS 4n 966 This value causes the entity's logging messages to go to its standard error 967 stream. 968 .RE 969 970 .sp 971 .ne 2 972 .na 973 \fB\fBCONSOLE\fR\fR 974 .ad 975 .sp .6 976 .RS 4n 977 This value causes the entity's logging messages to go to the console, if the 978 system supports it. 979 .RE 980 981 .sp 982 .ne 2 983 .na 984 \fB\fBDEVICE=\fR\fIdevicename\fR\fR 985 .ad 986 .sp .6 987 .RS 4n 988 This causes the entity's logging messages to go to the specified device. 989 .RE 990 991 .sp 992 .ne 2 993 .na 994 \fB\fBSYSLOG[:\fR\fIseverity\fR\fB[:\fR\fIfacility\fR\fB]]\fR\fR 995 .ad 996 .sp .6 997 .RS 4n 998 This causes the entity's logging messages to go to the system log. 999 .RE 1000 1001 .sp 1002 .LP 1003 The \fIseverity\fR argument specifies the default severity of system log 1004 messages. This can be any of the following severities supported by the 1005 \fBsyslog\fR(3C) call, minus the \fBLOG_\fR prefix: \fBLOG_EMERG\fR, 1006 \fBLOG_ALERT\fR, \fBLOG_CRIT\fR, \fBLOG_ERR\fR, \fBLOG_WARNING\fR, 1007 \fBLOG_NOTICE\fR, \fBLOG_INFO\fR, and \fBLOG_DEBUG\fR. For example, a value of 1008 \fBCRIT\fR would specify \fBLOG_CRIT\fR severity. 1009 .sp 1010 .LP 1011 The \fIfacility\fR argument specifies the facility under which the messages are 1012 logged. This can be any of the following facilities supported by the 1013 \fBsyslog\fR(3C) call minus the \fBLOG_\fR prefix: \fBLOG_KERN\fR, 1014 \fBLOG_USER\fR, \fBLOG_MAIL\fR, \fBLOG_DAEMON\fR, \fBLOG_AUTH\fR, 1015 \fBLOG_LPR\fR, \fBLOG_NEWS\fR, \fBLOG_UUCP\fR, \fBLOG_CRON\fR, and 1016 \fBLOG_LOCAL0\fR through \fBLOG_LOCAL7\fR. 1017 .sp 1018 .LP 1019 If no severity is specified, the default is \fBERR\fR. If no facility is 1020 specified, the default is \fBAUTH\fR. 1021 .sp 1022 .LP 1023 The following relation can be defined to specify how to rotate \fBkdc\fR log 1024 files if the \fBFILE:\fR value is being used to log: 1025 .sp 1026 .ne 2 1027 .na 1028 \fB\fBkdc_rotate\fR\fR 1029 .ad 1030 .sp .6 1031 .RS 4n 1032 A relation subsection that enables \fBkdc\fR logging to be rotated to multiple 1033 files based on a time interval. This can be used to avoid logging to one file, 1034 which might grow too large and bring the \fBKDC\fR to a halt. 1035 .RE 1036 1037 .sp 1038 .LP 1039 The time interval for the rotation is specified by the \fBperiod\fR relation. 1040 The number of log files to be rotated is specified by the \fBversions\fR 1041 relation. Both the \fBperiod\fR and \fBversions\fR (described below) should be 1042 included in this subsection. And, this subsection applies only if the \fBkdc\fR 1043 relation has a \fBFILE:\fR value. 1044 .sp 1045 .LP 1046 The following relations can be specified for the \fBkdc_rotate\fR relation 1047 subsection: 1048 .sp 1049 .ne 2 1050 .na 1051 \fB\fB\fR\fBperiod=\fIdelta_time\fR\fR\fR 1052 .ad 1053 .sp .6 1054 .RS 4n 1055 Specifies the time interval before a new log file is created. See the 1056 \fBTime\fR\fBFormats\fR section in \fBkinit\fR(1) for the valid time duration 1057 formats you can specify for \fIdelta_time\fR. If \fBperiod\fR is not specified 1058 or set to \fBnever\fR, no rotation occurs. 1059 .RE 1060 1061 .sp 1062 .LP 1063 Specifying a time interval does not mean that the log files are rotated at the 1064 time interval based on real time. This is because the time interval is checked 1065 at each attempt to write a record to the log, or when logging is actually 1066 occurring. Therefore, rotation occurs only when logging has actually occurred 1067 for the specified time interval. 1068 .sp 1069 .ne 2 1070 .na 1071 \fB\fBversions=\fR\fInumber\fR\fR 1072 .ad 1073 .sp .6 1074 .RS 4n 1075 Specifies how many previous versions are saved before the rotation begins. A 1076 number is appended to the log file, starting with 0 and ending with 1077 (\fInumber\fR - 1). For example, if \fBversions\fR is set to \fB2\fR, up to 1078 three logging files are created (\fIfilename\fR, \fIfilename\fR.0, and 1079 \fIfilename\fR.1) before the first one is overwritten to begin the rotation. 1080 .RE 1081 1082 .sp 1083 .LP 1084 Notice that if \fBversions\fR is not specified or set to \fB0\fR, only one log 1085 file is created, but it is overwritten whenever the time interval is met. 1086 .sp 1087 .LP 1088 In the following example, the logging messages from the Kerberos administration 1089 daemon goes to the console. The logging messages from the \fBKDC\fR is appended 1090 to the \fB/var/krb5/kdc.log\fR, which is rotated between twenty-one log files 1091 with a specified time interval of a day. 1092 .sp 1093 .in +2 1094 .nf 1095 [logging] 1096 admin_server = CONSOLE 1097 kdc = FILE:/export/logging/kadmin.log 1098 kdc_rotate = { 1099 period = 1d 1100 versions = 20 1101 } 1102 .fi 1103 .in -2 1104 .sp 1105 1106 .SS "The \fB[capaths]\fR Section" 1107 In order to perform direct (non-hierarchical) cross-realm authentication, a 1108 database is needed to construct the authentication paths between the realms. 1109 This section defines that database. 1110 .sp 1111 .LP 1112 A client uses this section to find the authentication path between its realm 1113 and the realm of the server. The server uses this section to verify the 1114 authentication path used by the client, by checking the transited field of the 1115 received ticket. 1116 .sp 1117 .LP 1118 There is a subsection for each participating realm, and each subsection has 1119 relations named for each of the realms. The \fIrelation-value\fR is an 1120 intermediate realm which can participate in the cross-realm authentication. The 1121 relations can be repeated if there is more than one intermediate realm. A value 1122 of '.' means that the two realms share keys directly, and no intermediate 1123 realms should be allowed to participate. 1124 .sp 1125 .LP 1126 There are n**2 possible entries in this table, but only those entries which is 1127 needed on the client or the server need to be present. The client needs a 1128 subsection named for its local realm, with relations named for all the realms 1129 of servers it needs to authenticate with. A server needs a subsection named for 1130 each realm of the clients it serves. 1131 .sp 1132 .LP 1133 For example, \fBANL.GOV\fR, \fBPNL.GOV\fR, and \fBNERSC.GOV\fR all wish to use 1134 the \fBES.NET\fR realm as an intermediate realm. \fBANL\fR has a sub realm of 1135 \fBTEST.ANL.GOV\fR, which authenticates with \fBNERSC.GOV\fR but not 1136 \fBPNL.GOV\fR. The \fB[capath]\fR section for \fBANL.GOV\fR systems would look 1137 like this: 1138 .sp 1139 .in +2 1140 .nf 1141 [capaths] 1142 ANL.GOV = { 1143 TEST.ANL.GOV = . 1144 PNL.GOV = ES.NET 1145 NERSC.GOV = ES.NET 1146 ES.NET = . 1147 } 1148 1149 TEST.ANL.GOV = { 1150 ANL.GOV = . 1151 } 1152 1153 PNL.GOV = { 1154 ANL.GOV = ES.NET 1155 } 1156 1157 NERSC.GOV = { 1158 ANL.GOV = ES.NET 1159 } 1160 1161 ES.NET = { 1162 ANL.GOV = . 1163 } 1164 .fi 1165 .in -2 1166 .sp 1167 1168 .sp 1169 .LP 1170 The \fB[capath]\fR section of the configuration file used on \fBNERSC.GOV\fR 1171 systems would look like this: 1172 .sp 1173 .in +2 1174 .nf 1175 [capaths] 1176 NERSC.GOV = { 1177 ANL.GOV = ES.NET 1178 TEST.ANL.GOV = ES.NET 1179 TEST.ANL.GOV = ANL.GOV 1180 PNL.GOV = ES.NET 1181 ES.NET = . 1182 } 1183 1184 ANL.GOV = { 1185 NERSC.GOV = ES.NET 1186 } 1187 1188 PNL.GOV = { 1189 NERSC.GOV = ES.NET 1190 } 1191 1192 ES.NET = { 1193 NERSC.GOV = . 1194 } 1195 1196 TEST.ANL.GOV = { 1197 NERSC.GOV = ANL.GOV 1198 NERSC.GOV = ES.NET 1199 } 1200 .fi 1201 .in -2 1202 .sp 1203 1204 .sp 1205 .LP 1206 In the above examples, the ordering is not important, except when the same 1207 relation is used more than once. The client uses this to determine the path. 1208 (It is not important to the server, since the transited field is not sorted.) 1209 .SS "PKINIT-specific Options" 1210 The following are \fBpkinit-specific\fR options. These values can be specified 1211 in \fB[libdefaults]\fR as global defaults, or within a realm-specific 1212 subsection of \fB[libdefaults]\fR, or can be specified as realm-specific values 1213 in the \fB[realms]\fR section. A realm-specific value overrides, does not add 1214 to, a generic \fB[libdefaults]\fR specification. 1215 .sp 1216 .LP 1217 The search order is: 1218 .RS +4 1219 .TP 1220 1. 1221 realm-specific subsection of \fB[libdefaults]\fR 1222 .sp 1223 .in +2 1224 .nf 1225 [libdefaults] 1226 EXAMPLE.COM = { 1227 pkinit_anchors = FILE:/usr/local/example.com.crt 1228 .fi 1229 .in -2 1230 1231 .RE 1232 .RS +4 1233 .TP 1234 2. 1235 realm-specific value in the \fB[realms]\fR section 1236 .sp 1237 .in +2 1238 .nf 1239 [realms] 1240 OTHERREALM.ORG = { 1241 pkinit_anchors = FILE:/usr/local/otherrealm.org.crt 1242 .fi 1243 .in -2 1244 1245 .RE 1246 .RS +4 1247 .TP 1248 3. 1249 generic value in the \fB[libdefaults]\fR section 1250 .sp 1251 .in +2 1252 .nf 1253 [libdefaults] 1254 pkinit_anchors = DIR:/usr/local/generic_trusted_cas/ 1255 .fi 1256 .in -2 1257 1258 .RE 1259 .sp 1260 .LP 1261 The syntax for specifying Public Key identity, trust, and revocation 1262 information for \fBpkinit\fR is as follows: 1263 .sp 1264 .ne 2 1265 .na 1266 \fB\fBpkinit_identities\fR \fB=\fR \fIURI\fR\fR 1267 .ad 1268 .sp .6 1269 .RS 4n 1270 Specifies the location(s) to be used to find the user's X.509 identity 1271 information. This option can be specified multiple times. Each value is 1272 attempted in order until identity information is found and authentication is 1273 attempted. These values are not used if the user specifies 1274 \fBX509_user_identity\fR on the command line. 1275 .sp 1276 Valid \fIURI\fR types are \fBFILE\fR, \fBDIR\fR, \fBPKCS11\fR, \fBPKCS12\fR, 1277 and \fBENV\fR. See the \fBPKINIT URI Types\fR section for more details. 1278 .RE 1279 1280 .sp 1281 .ne 2 1282 .na 1283 \fB\fBpkinit_anchors\fR \fB=\fR \fIURI\fR\fR 1284 .ad 1285 .sp .6 1286 .RS 4n 1287 Specifies the location of trusted anchor (root) certificates which the client 1288 trusts to sign KDC certificates. This option can be specified multiple times. 1289 These values from the \fBconfig\fR file are not used if the user specifies 1290 \fBX509_anchors\fR on the command line. 1291 .sp 1292 Valid \fIURI\fR types are \fBFILE\fR and \fBDIR\fR. See the \fBPKINIT URI 1293 Types\fR section for more details. 1294 .RE 1295 1296 .sp 1297 .ne 2 1298 .na 1299 \fB\fBpkinit_pool\fR \fB=\fR \fIURI\fR\fR 1300 .ad 1301 .sp .6 1302 .RS 4n 1303 Specifies the location of intermediate certificates which can be used by the 1304 client to complete the trust chain between a KDC certificate and a trusted 1305 anchor. This option can be specified multiple times. 1306 .sp 1307 Valid \fIURI\fR types are \fBFILE\fR and \fBDIR\fR. See the \fBPKINIT URI 1308 Types\fR section for more details. 1309 .RE 1310 1311 .sp 1312 .ne 2 1313 .na 1314 \fB\fBpkinit_revoke\fR \fB=\fR \fIURI\fR\fR 1315 .ad 1316 .sp .6 1317 .RS 4n 1318 Specifies the location of Certificate Revocation List (CRL) information to be 1319 used by the client when verifying the validity of the KDC certificate 1320 presented. This option can be specified multiple times. 1321 .sp 1322 The only valid \fIURI\fR type is \fBDIR\fR. See the \fBPKINIT URI Types\fR 1323 section for more details. 1324 .RE 1325 1326 .sp 1327 .ne 2 1328 .na 1329 \fB\fBpkinit_require_crl_checking\fR \fB=\fR \fIvalue\fR\fR 1330 .ad 1331 .sp .6 1332 .RS 4n 1333 The default certificate verification process always checks the available 1334 revocation information to see if a certificate has been revoked. If a match is 1335 found for the certificate in a CRL, verification fails. If the certificate 1336 being verified is not listed in a CRL, or there is no CRL present for its 1337 issuing CA, and \fBpkinit_require_crl_checking\fR is \fBfalse\fR, then 1338 verification succeeds. However, if \fBpkinit_require_crl_checking\fR is 1339 \fBtrue\fR and there is no CRL information available for the issuing CA, then 1340 verification fails. \fBpkinit_require_crl_checking\fR should be set to 1341 \fBtrue\fR if the policy is such that up-to-date CRLs must be present for every 1342 CA. 1343 .RE 1344 1345 .sp 1346 .ne 2 1347 .na 1348 \fB\fBpkinit_dh_min_bits\fR \fB=\fR \fIvalue\fR\fR 1349 .ad 1350 .sp .6 1351 .RS 4n 1352 Specifies the size of the Diffie-Hellman key the client attempts to use. The 1353 acceptable values are currently 1024, 2048, and 4096. The default is 2048. 1354 .RE 1355 1356 .sp 1357 .ne 2 1358 .na 1359 \fB\fBpkinit_win2k\fR \fB=\fR \fIvalue\fR\fR 1360 .ad 1361 .sp .6 1362 .RS 4n 1363 This flag specifies whether the target realm is assumed to support only the 1364 old, pre-RFC version of the protocol. The default is \fBfalse\fR. 1365 .RE 1366 1367 .sp 1368 .ne 2 1369 .na 1370 \fB\fBpkinit_win2k_require_binding\fR \fB=\fR \fIvalue\fR\fR 1371 .ad 1372 .sp .6 1373 .RS 4n 1374 If this flag is set to \fBtrue\fR, it expects that the target KDC is patched to 1375 return a reply with a checksum rather than a nonce. The default is \fBfalse\fR. 1376 .RE 1377 1378 .sp 1379 .ne 2 1380 .na 1381 \fB\fBpkinit_eku_checking\fR \fB=\fR \fIvalue\fR\fR 1382 .ad 1383 .sp .6 1384 .RS 4n 1385 This option specifies what Extended Key Usage value the KDC certificate 1386 presented to the client must contain. If the KDC certificate has the \fBpkinit 1387 SubjectAlternativeName\fR encoded as the Kerberos TGS name, EKU checking is not 1388 necessary since the issuing CA has certified this as a KDC certificate. The 1389 values recognized in the \fBkrb5.conf\fR file are: 1390 .sp 1391 .ne 2 1392 .na 1393 \fB\fBkpKDC\fR\fR 1394 .ad 1395 .RS 16n 1396 This is the default value and specifies that the KDC must have the 1397 \fBid-pkinit-KPKdc EKU\fR as defined in RFC4556. 1398 .RE 1399 1400 .sp 1401 .ne 2 1402 .na 1403 \fB\fBkpServerAuth\fR\fR 1404 .ad 1405 .RS 16n 1406 If \fBkpServerAuth\fR is specified, a KDC certificate with the 1407 \fBid-kp-serverAuth EKU\fR as used by Microsoft is accepted. 1408 .RE 1409 1410 .sp 1411 .ne 2 1412 .na 1413 \fB\fBnone\fR\fR 1414 .ad 1415 .RS 16n 1416 If \fBnone\fR is specified, then the KDC certificate is not checked to verify 1417 it has an acceptable EKU. The use of this option is not recommended. 1418 .RE 1419 1420 .RE 1421 1422 .sp 1423 .ne 2 1424 .na 1425 \fB\fBpkinit_kdc_hostname\fR \fB=\fR \fIvalue\fR\fR 1426 .ad 1427 .sp .6 1428 .RS 4n 1429 The presence of this option indicates that the client is willing to accept a 1430 KDC certificate with a \fBdNSName\fR SAN (Subject Alternative Name) rather than 1431 requiring the \fBid-pkinit-san\fR as defined in RFC4556. This option can be 1432 specified multiple times. Its value should contain the acceptable hostname for 1433 the KDC (as contained in its certificate). 1434 .RE 1435 1436 .sp 1437 .ne 2 1438 .na 1439 \fB\fBpkinit_cert_match\fR \fB=\fR \fIrule\fR\fR 1440 .ad 1441 .sp .6 1442 .RS 4n 1443 Specifies matching rules that the client certificate must match before it is 1444 used to attempt \fBpkinit\fR authentication. If a user has multiple 1445 certificates available (on a smart card, or by way of another media), there 1446 must be exactly one certificate chosen before attempting \fBpkinit\fR 1447 authentication. This option can be specified multiple times. All the 1448 available certificates are checked against each rule in order until there is a 1449 match of exactly one certificate. 1450 .sp 1451 The Subject and Issuer comparison strings are the RFC2253 string 1452 representations from the certificate Subject DN and Issuer DN values. 1453 .sp 1454 The syntax of the matching rules is: 1455 .sp 1456 .in +2 1457 .nf 1458 [relation-operator]component-rule `...' 1459 .fi 1460 .in -2 1461 1462 where 1463 .sp 1464 .ne 2 1465 .na 1466 \fB\fIrelation-operator\fR\fR 1467 .ad 1468 .RS 21n 1469 Specify \fIrelation-operator\fR as \fB&&\fR, meaning all component rules must 1470 match, or \fB||\fR, meaning only one component rule must match. If 1471 \fIrelation-operator\fR is not specified, the default is \fB&&\fR\&. 1472 .RE 1473 1474 .sp 1475 .ne 2 1476 .na 1477 \fB\fIcomponent-rule\fR\fR 1478 .ad 1479 .RS 21n 1480 There is no punctuation or white space between component rules.Specify 1481 \fIcomponent-rule\fR as one of the following: 1482 .sp 1483 .in +2 1484 .nf 1485 `<SUBJECT>'regular-expression 1486 1487 `<ISSUER>'regular-expression 1488 1489 `<SAN>'regular-expression 1490 1491 `<EKU>'extended-key-usage-list 1492 where extended-key-usage-list is a comma-separated list 1493 of required Extended Key Usage values. All values in 1494 the list must be present in the certificate. 1495 `pkinit' 1496 `msScLogin' 1497 `clientAuth' 1498 `emailProtection' 1499 `<KU>'key-usage-list 1500 where key-usage-list is a comma-separated list of 1501 required Key Usage values. All values in the list must 1502 be present in the certificate. 1503 `digitalSignature' 1504 .fi 1505 .in -2 1506 1507 .RE 1508 1509 Examples: 1510 .sp 1511 .in +2 1512 .nf 1513 pkinit_cert_match = ||<SUBJECT>.*DoE.*<SAN>.*@EXAMPLE.COM 1514 pkinit_cert_match = &&<EKU>msScLogin,clientAuth<ISSUER>.*DoE.* 1515 pkinit_cert_match = <EKU>msScLogin,clientAuth<KU>digitalSignature 1516 .fi 1517 .in -2 1518 1519 .RE 1520 1521 .SS "PKINIT URI Types" 1522 .ne 2 1523 .na 1524 \fB\fBFILE:\fR\fIfile-name[,key-file-name]\fR\fR 1525 .ad 1526 .sp .6 1527 .RS 4n 1528 This option has context-specific behavior. 1529 .sp 1530 .ne 2 1531 .na 1532 \fB\fBpkinit_identities\fR\fR 1533 .ad 1534 .RS 21n 1535 \fIfile-name\fR specifies the name of a PEM-format file containing the user's 1536 certificate. If \fIkey-file-name\fR is not specified, the user's private key 1537 is expected to be in \fIfile-name\fR as well. Otherwise, \fIkey-file-name\fR 1538 is the name of the file containing the private key. 1539 .RE 1540 1541 .sp 1542 .ne 2 1543 .na 1544 \fB\fBpkinit_anchors\fR\fR 1545 .ad 1546 .br 1547 .na 1548 \fB\fBpkinit_pool\fR\fR 1549 .ad 1550 .RS 21n 1551 \fIfile-name\fR is assumed to be the name of an \fBOpenSSL-style ca-bundle\fR 1552 file. The \fBca-bundle\fR file should be base-64 encoded. 1553 .RE 1554 1555 .RE 1556 1557 .sp 1558 .ne 2 1559 .na 1560 \fB\fBDIR:\fR\fIdirectory-name\fR\fR 1561 .ad 1562 .sp .6 1563 .RS 4n 1564 This option has context-specific behavior. 1565 .sp 1566 .ne 2 1567 .na 1568 \fB\fBpkinit_identities\fR\fR 1569 .ad 1570 .RS 21n 1571 \fIdirectory-name\fR specifies a directory with files named \fB*.crt\fR and 1572 \fB*.key\fR, where the first part of the file name is the same for matching 1573 pairs of certificate and private key files. When a file with a name ending with 1574 \&.\fBcrt\fR is found, a matching file ending with \fB\&.key\fR is assumed to 1575 contain the private key. If no such file is found, then the certificate in the 1576 \fB\&.crt\fR is not used. 1577 .RE 1578 1579 .sp 1580 .ne 2 1581 .na 1582 \fB\fBpkinit_anchors\fR\fR 1583 .ad 1584 .br 1585 .na 1586 \fB\fBpkinit_pool\fR\fR 1587 .ad 1588 .RS 21n 1589 \fIdirectory-name\fR is assumed to be an OpenSSL-style hashed CA directory 1590 where each CA cert is stored in a file named \fBhash-of-ca-cert\fR.\fI#\fR. 1591 This infrastructure is encouraged, but all files in the directory are examined 1592 and if they contain certificates (in PEM format), they are used. 1593 .RE 1594 1595 .RE 1596 1597 .sp 1598 .ne 2 1599 .na 1600 \fB\fBPKCS12:\fR\fIpkcs12-file-name\fR\fR 1601 .ad 1602 .sp .6 1603 .RS 4n 1604 \fIpkcs12-file-name\fR is the name of a \fBPKCS #12\fR format file, containing 1605 the user's certificate and private key. 1606 .RE 1607 1608 .sp 1609 .ne 2 1610 .na 1611 \fB\fBPKCS11:[slotid=\fR\fIslot-id\fR\fB][:token=\fR\fItoken-label\fR\fB][:cert 1612 id=\fR\fIcert-id\fR\fB][:certlabel=\fR\fIcert-label\fR\fB]\fR\fR 1613 .ad 1614 .sp .6 1615 .RS 4n 1616 All keyword/values are optional. PKCS11 modules (for example, 1617 \fBopensc-pkcs11.so\fR) must be installed as a \fBcrypto\fR provider under 1618 \fBlibpkcs11\fR(3LIB). \fBslotid=\fR and/or \fBtoken=\fR can be specified to 1619 force the use of a particular smart card reader or token if there is more than 1620 one available. \fBcertid=\fR and/or \fBcertlabel=\fR can be specified to force 1621 the selection of a particular certificate on the device. See the 1622 \fBpkinit_cert_match\fR configuration option for more ways to select a 1623 particular certificate to use for \fBpkinit\fR. 1624 .RE 1625 1626 .sp 1627 .ne 2 1628 .na 1629 \fB\fBENV:\fR\fIenvironment-variable-name\fR\fR 1630 .ad 1631 .sp .6 1632 .RS 4n 1633 \fIenvironment-variable-name\fR specifies the name of an environment variable 1634 which has been set to a value conforming to one of the previous values. For 1635 example, \fBENV:X509_PROXY\fR, where environment variable \fBX509_PROXY\fR has 1636 been set to \fBFILE:/tmp/my_proxy.pem\fR. 1637 .RE 1638 1639 .SS "The \fB[dbmodules]\fR Section" 1640 This section consists of relations that provide configuration information for 1641 plug-in modules. In particular, the relations describe the configuration for 1642 LDAP KDB plug-in. Use of the \fBdb2\fR KDB plug-in is the default behavior and 1643 that this section does not need to be filled out in that case. 1644 .sp 1645 .ne 2 1646 .na 1647 \fB\fBdb_library\fR\fR 1648 .ad 1649 .sp .6 1650 .RS 4n 1651 Name of the plug-in library. To use the LDAP KDB plug-in the name must be 1652 \fBkdb_ldap\fR. The default value is \fBdb2\fR. 1653 .RE 1654 1655 .sp 1656 .ne 2 1657 .na 1658 \fB\fBdb_module_dir\fR\fR 1659 .ad 1660 .sp .6 1661 .RS 4n 1662 Path to the plug-in libraries. The default is \fB/usr/lib/krb5\fR. 1663 .RE 1664 1665 .sp 1666 .ne 2 1667 .na 1668 \fB\fBldap_cert_path\fR\fR 1669 .ad 1670 .sp .6 1671 .RS 4n 1672 Path to the Network Security Services (NSS) trusted database for an SSL 1673 connection. This is a required parameter when using the LDAP KDB plug-in. 1674 .RE 1675 1676 .sp 1677 .ne 2 1678 .na 1679 \fB\fBldap_conns_per_server\fR\fR 1680 .ad 1681 .sp .6 1682 .RS 4n 1683 Number of connections per LDAP instance. The default is \fB5\fR. 1684 .RE 1685 1686 .sp 1687 .ne 2 1688 .na 1689 \fB\fBldap_kadmind_dn\fR\fR 1690 .ad 1691 .sp .6 1692 .RS 4n 1693 Bind DN for \fBkadmind\fR. This specifies the DN that the \fBkadmind\fR service 1694 uses when binding to the LDAP Directory Server. The password for this bind DN 1695 should be in the \fBldap_service_password_file\fR. 1696 .RE 1697 1698 .sp 1699 .ne 2 1700 .na 1701 \fB\fBldap_kdc_dn\fR\fR 1702 .ad 1703 .sp .6 1704 .RS 4n 1705 Bind DN for a Key Distribution Center (KDC). This specifies the DN that the 1706 \fBkrb5kdc\fR service use when binding to the LDAP Directory Server. The 1707 password for this bind DN should be in the \fBldap_service_password_file\fR. 1708 .RE 1709 1710 .sp 1711 .ne 2 1712 .na 1713 \fB\fBldap_servers\fR\fR 1714 .ad 1715 .sp .6 1716 .RS 4n 1717 List of LDAP directory servers in URI format. Use of either of the following is 1718 acceptable. 1719 .sp 1720 .in +2 1721 .nf 1722 ldap://\fI<ds hostname>\fR:\fI<SSL port>\fR 1723 ldap://\fI<ds hostname>\fR 1724 .fi 1725 .in -2 1726 .sp 1727 1728 Each server URI should be separated by whitespace. 1729 .RE 1730 1731 .sp 1732 .ne 2 1733 .na 1734 \fB\fBldap_service_password_file\fR\fR 1735 .ad 1736 .sp .6 1737 .RS 4n 1738 File containing stashed passwords used by the KDC when binding to the LDAP 1739 Directory Server. The default is \fB/var/krb5/service_passwd\fR. This file is 1740 created using \fBkdb5_ldap_util\fR(1M). 1741 .RE 1742 1743 .sp 1744 .ne 2 1745 .na 1746 \fB\fBldap_ssl_port\fR\fR 1747 .ad 1748 .sp .6 1749 .RS 4n 1750 Port number for SSL connection with directory server. The default is \fB389\fR. 1751 .RE 1752 1753 .SH EXAMPLES 1754 \fBExample 1 \fRSample File 1755 .sp 1756 .LP 1757 The following is an example of a generic \fBkrb5.conf\fR file: 1758 1759 .sp 1760 .in +2 1761 .nf 1762 [libdefaults] 1763 default_realm = ATHENA.MIT.EDU 1764 default_tkt_enctypes = des-cbc-crc 1765 default_tgs_enctypes = des-cbc-crc 1766 1767 [realms] 1768 ATHENA.MIT.EDU = { 1769 kdc = kerberos.mit.edu 1770 kdc = kerberos-1.mit.edu 1771 kdc = kerberos-2.mit.edu 1772 admin_server = kerberos.mit.edu 1773 auth_to_local_realm = KRBDEV.ATHENA.MIT.EDU 1774 } 1775 1776 FUBAR.ORG = { 1777 kdc = kerberos.fubar.org 1778 kdc = kerberos-1.fubar.org 1779 admin_server = kerberos.fubar.org 1780 } 1781 1782 [domain_realm] 1783 .mit.edu = ATHENA.MIT.EDU 1784 mit.edu = ATHENA.MIT.EDU 1785 .fi 1786 .in -2 1787 .sp 1788 1789 .LP 1790 \fBExample 2 \fRKDC Using the LDAP KDB plug-in, \fBrealms\fR and 1791 \fBdbmodules\fR Sections 1792 .sp 1793 .LP 1794 The following is an example of the \fBrealms\fR and \fBdbmodules\fR sections of 1795 a Kerberos configuration file when the KDC is using the LDAP KDB plug-in. 1796 1797 .sp 1798 .in +2 1799 .nf 1800 [realms] 1801 SUN.COM = { 1802 kdc = kc-umpk-01.athena.mit.edu 1803 kdc = kc-umpk-02.athena.mit.edu 1804 admin_server = kc-umpk-01.athena.mit.edu 1805 database_module = LDAP 1806 } 1807 1808 [dbmodules] 1809 LDAP = { 1810 db_library = kdb_ldap 1811 ldap_kerberos_container_dn = "cn=krbcontainer,dc=mit,dc=edu" 1812 ldap_kdc_dn = "cn=kdc service,ou=profile,dc=mit,dc=edu" 1813 ldap_kadmind_dn = "cn=kadmin service,ou=profile,dc=mit,dc=edu" 1814 ldap_cert_path = /var/ldap 1815 ldap_servers = ldaps://ds.mit.edu 1816 } 1817 .fi 1818 .in -2 1819 .sp 1820 1821 .SH FILES 1822 .ne 2 1823 .na 1824 \fB\fB/var/krb5/kdc.log\fR\fR 1825 .ad 1826 .sp .6 1827 .RS 4n 1828 \fBKDC\fR logging file 1829 .RE 1830 1831 .SH ATTRIBUTES 1832 See \fBattributes\fR(5) for descriptions of the following attributes: 1833 .sp 1834 1835 .sp 1836 .TS 1837 box; 1838 c | c 1839 l | l . 1840 ATTRIBUTE TYPE ATTRIBUTE VALUE 1841 _ 1842 Interface Stability See below. 1843 .TE 1844 1845 .sp 1846 .LP 1847 All of the keywords are Committed, except for the \fBPKINIT\fR keywords, which 1848 are Volatile. 1849 .SH SEE ALSO 1850 \fBkinit\fR(1), \fBrcp\fR(1), \fBrdist\fR(1), \fBrlogin\fR(1), \fBrsh\fR(1), 1851 \fBtelnet\fR(1), \fBsyslog\fR(3C), \fBattributes\fR(5), \fBkerberos\fR(5), 1852 \fBregex\fR(5) 1853 .SH NOTES 1854 If the \fBkrb5.conf\fR file is not formatted properly, the \fBtelnet\fR command 1855 fails. However, the \fBdtlogin\fR and \fBlogin\fR commands still succeed, even 1856 if the \fBkrb5.conf\fR file is specified as required for the commands. If this 1857 occurs, the following error message is displayed: 1858 .sp 1859 .in +2 1860 .nf 1861 Error initializing krb5: Improper format of \fIitem\fR 1862 .fi 1863 .in -2 1864 .sp 1865 1866 .sp 1867 .LP 1868 To bypass any other problems that might occur, you should fix the file as soon 1869 as possible. 1870 .sp 1871 .LP 1872 The \fBmax_life\fR and \fBmax_renewable_life\fR options are obsolete and is 1873 removed in a future release of the Solaris operating system.