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