Fix "(empty" typo in "{etypes}" handler in trace.c
[krb5.git] / src / man / kdc.conf.man
1 .TH "KDC.CONF" "5" " " "0.0.1" "MIT Kerberos"
2 .SH NAME
3 kdc.conf \- Kerberos V5 KDC configuration file
4 .
5 .nr rst2man-indent-level 0
6 .
7 .de1 rstReportMargin
8 \\$1 \\n[an-margin]
9 level \\n[rst2man-indent-level]
10 level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
11 -
12 \\n[rst2man-indent0]
13 \\n[rst2man-indent1]
14 \\n[rst2man-indent2]
15 ..
16 .de1 INDENT
17 .\" .rstReportMargin pre:
18 . RS \\$1
19 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
20 . nr rst2man-indent-level +1
21 .\" .rstReportMargin post:
22 ..
23 .de UNINDENT
24 . RE
25 .\" indent \\n[an-margin]
26 .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
27 .nr rst2man-indent-level -1
28 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
30 ..
31 .\" Man page generated from reStructeredText.
32 .
33 .sp
34 The kdc.conf file supplements \fIkrb5.conf(5)\fP for programs which
35 are typically only used on a KDC, such as the \fIkrb5kdc(8)\fP and
36 \fIkadmind(8)\fP daemons and the \fIkdb5_util(8)\fP program.
37 Relations documented here may also be specified in krb5.conf.
38 .sp
39 Normally, the kdc.conf file is found in the KDC state directory,
40 \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP.  You can override the default location by setting the
41 environment variable \fBKRB5_KDC_PROFILE\fP.
42 .SH STRUCTURE
43 .sp
44 The kdc.conf file is set up in the same format as the
45 \fIkrb5.conf(5)\fP file.
46 .SH SECTIONS
47 .sp
48 The kdc.conf file may contain the following sections:
49 .TS
50 center;
51 |l|l|.
52 _
53 T{
54 \fI\%[kdcdefaults]\fP
55 T}      T{
56 Default values for KDC behavior
57 T}
58 _
59 T{
60 \fI\%[realms]\fP
61 T}      T{
62 Realm\-specific database configuration and settings
63 T}
64 _
65 T{
66 \fI\%[logging]\fP
67 T}      T{
68 Controls how Kerberos daemons perform logging
69 T}
70 _
71 T{
72 \fI\%[dbdefaults]\fP
73 T}      T{
74 Default database settings
75 T}
76 _
77 T{
78 \fI\%[dbmodules]\fP
79 T}      T{
80 Per\-database settings
81 T}
82 _
83 .TE
84 .SS [kdcdefaults]
85 .sp
86 With one exception, relations in the [kdcdefaults] section specify
87 default values for realm variables, to be used if the [realms]
88 subsection does not contain a relation for the tag.  See the
89 \fI\%[realms]\fP section for the definitions of these relations.
90 .INDENT 0.0
91 .IP \(bu 2
92 .
93 \fBhost_based_services\fP
94 .IP \(bu 2
95 .
96 \fBkdc_ports\fP
97 .IP \(bu 2
98 .
99 \fBkdc_tcp_ports\fP
100 .IP \(bu 2
101 .
102 \fBno_host_referral\fP
103 .IP \(bu 2
104 .
105 \fBrestrict_anonymous_to_tgt\fP
106 .UNINDENT
107 .INDENT 0.0
108 .TP
109 .B \fBkdc_max_dgram_reply_size\fP
110 .sp
111 Specifies the maximum packet size that can be sent over UDP.  The
112 default value is 4096 bytes.
113 .UNINDENT
114 .SS [realms]
115 .sp
116 Each tag in the [realms] section of the file names a Kerberos realm.
117 The value of the tag is a subsection where the relations in that
118 subsection define KDC parameters for that particular realm.
119 .sp
120 For each realm, the following tags may be specified in the [realms]
121 subsection:
122 .INDENT 0.0
123 .TP
124 .B \fBacl_file\fP
125 .sp
126 (String.)  Location of the access control list file that
127 \fIkadmind(8)\fP uses to determine which principals are allowed
128 which permissions on the database.  The default value is
129 \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/kadm5.acl\fP.
130 .TP
131 .B \fBdatabase_module\fP
132 .sp
133 This relation indicates the name of the configuration section
134 under \fI\%[dbmodules]\fP for database specific parameters used by
135 the loadable database library.
136 .TP
137 .B \fBdatabase_name\fP
138 .sp
139 (String.)  This string specifies the location of the Kerberos
140 database for this realm, if the DB2 back\-end is being used.  If a
141 \fBdatabase_module\fP is specified for the realm and the
142 corresponding module contains a \fBdatabase_name\fP parameter, that
143 value will take precedence over this one.  The default value is
144 \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/principal\fP.
145 .TP
146 .B \fBdefault_principal_expiration\fP
147 .sp
148 (Absolute time string.)  Specifies the default expiration date of
149 principals created in this realm.  The default value is 0, which
150 means no expiration date.
151 .TP
152 .B \fBdefault_principal_flags\fP
153 .sp
154 (Flag string.)  Specifies the default attributes of principals
155 created in this realm.  The format for this string is a
156 comma\-separated list of flags, with \(aq+\(aq before each flag that
157 should be enabled and \(aq\-\(aq before each flag that should be
158 disabled.  The \fBpostdateable\fP, \fBforwardable\fP, \fBtgt\-based\fP,
159 \fBrenewable\fP, \fBproxiable\fP, \fBdup\-skey\fP, \fBallow\-tickets\fP, and
160 \fBservice\fP flags default to enabled.
161 .sp
162 There are a number of possible flags:
163 .INDENT 7.0
164 .TP
165 .B \fBallow\-tickets\fP
166 .sp
167 Enabling this flag means that the KDC will issue tickets for
168 this principal.  Disabling this flag essentially deactivates
169 the principal within this realm.
170 .TP
171 .B \fBdup\-skey\fP
172 .sp
173 Enabling this flag allows the principal to obtain a session
174 key for another user, permitting user\-to\-user authentication
175 for this principal.
176 .TP
177 .B \fBforwardable\fP
178 .sp
179 Enabling this flag allows the principal to obtain forwardable
180 tickets.
181 .TP
182 .B \fBhwauth\fP
183 .sp
184 If this flag is enabled, then the principal is required to
185 preauthenticate using a hardware device before receiving any
186 tickets.
187 .TP
188 .B \fBno\-auth\-data\-required\fP
189 .sp
190 Enabling this flag prvents PAC data from being added to the
191 service tickets.
192 .TP
193 .B \fBok\-as\-delegate\fP
194 .sp
195 If this flag is enabled, it hints the client that credentials
196 can and should be delegated when authenticating to the
197 service.
198 .TP
199 .B \fBok\-to\-auth\-as\-delegate\fP
200 .sp
201 Enabling this flag allows the principal to use S4USelf ticket.
202 .TP
203 .B \fBpostdateable\fP
204 .sp
205 Enabling this flag allows the principal to obtain postdateable
206 tickets.
207 .TP
208 .B \fBpreauth\fP
209 .sp
210 If this flag is enabled on a client principal, then that
211 principal is required to preauthenticate to the KDC before
212 receiving any tickets.  On a service principal, enabling this
213 flag means that service tickets for this principal will only
214 be issued to clients with a TGT that has the preauthenticated
215 ticket set.
216 .TP
217 .B \fBproxiable\fP
218 .sp
219 Enabling this flag allows the principal to obtain proxy
220 tickets.
221 .TP
222 .B \fBpwchange\fP
223 .sp
224 Enabling this flag forces a password change for this
225 principal.
226 .TP
227 .B \fBpwservice\fP
228 .sp
229 If this flag is enabled, it marks this principal as a password
230 change service.  This should only be used in special cases,
231 for example, if a user\(aqs password has expired, then the user
232 has to get tickets for that principal without going through
233 the normal password authentication in order to be able to
234 change the password.
235 .TP
236 .B \fBrenewable\fP
237 .sp
238 Enabling this flag allows the principal to obtain renewable
239 tickets.
240 .TP
241 .B \fBservice\fP
242 .sp
243 Enabling this flag allows the the KDC to issue service tickets
244 for this principal.
245 .TP
246 .B \fBtgt\-based\fP
247 .sp
248 Enabling this flag allows a principal to obtain tickets based
249 on a ticket\-granting\-ticket, rather than repeating the
250 authentication process that was used to obtain the TGT.
251 .UNINDENT
252 .TP
253 .B \fBdict_file\fP
254 .sp
255 (String.)  Location of the dictionary file containing strings that
256 are not allowed as passwords.  If none is specified or if there is
257 no policy assigned to the principal, no dictionary checks of
258 passwords will be performed.
259 .TP
260 .B \fBhost_based_services\fP
261 .sp
262 (Whitespace\- or comma\-separated list.)  Lists services which will
263 get host\-based referral processing even if the server principal is
264 not marked as host\-based by the client.
265 .TP
266 .B \fBiprop_enable\fP
267 .sp
268 (Boolean value.)  Specifies whether incremental database
269 propagation is enabled.  The default value is false.
270 .TP
271 .B \fBiprop_master_ulogsize\fP
272 .sp
273 (Integer.)  Specifies the maximum number of log entries to be
274 retained for incremental propagation.  The maximum value is 2500;
275 the default value is 1000.
276 .TP
277 .B \fBiprop_slave_poll\fP
278 .sp
279 (Delta time string.)  Specifies how often the slave KDC polls for
280 new updates from the master.  The default value is \fB2m\fP (that
281 is, two minutes).
282 .TP
283 .B \fBiprop_port\fP
284 .sp
285 (Port number.)  Specifies the port number to be used for
286 incremental propagation.  This is required in both master and
287 slave configuration files.
288 .TP
289 .B \fBiprop_logfile\fP
290 .sp
291 (File name.)  Specifies where the update log file for the realm
292 database is to be stored.  The default is to use the
293 \fBdatabase_name\fP entry from the realms section of the krb5 config
294 file, with \fB.ulog\fP appended.  (NOTE: If \fBdatabase_name\fP isn\(aqt
295 specified in the realms section, perhaps because the LDAP database
296 back end is being used, or the file name is specified in the
297 [dbmodules] section, then the hard\-coded default for
298 \fBdatabase_name\fP is used.  Determination of the \fBiprop_logfile\fP
299 default value will not use values from the [dbmodules] section.)
300 .TP
301 .B \fBkadmind_port\fP
302 .sp
303 (Port number.)  Specifies the port on which the \fIkadmind(8)\fP
304 daemon is to listen for this realm.  The assigned port for kadmind
305 is 749.
306 .TP
307 .B \fBkey_stash_file\fP
308 .sp
309 (String.)  Specifies the location where the master key has been
310 stored (via kdb5_util stash).  The default is \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/.k5.REALM\fP, where \fIREALM\fP is the Kerberos realm.
311 .TP
312 .B \fBkdc_ports\fP
313 .sp
314 (Whitespace\- or comma\-separated list.)  Lists the ports on which
315 the Kerberos server should listen for UDP requests, as a
316 comma\-separated list of integers.  The default value is
317 \fB88,750\fP, which are the assigned Kerberos port and the port
318 historically used by Kerberos V4.
319 .TP
320 .B \fBkdc_tcp_ports\fP
321 .sp
322 (Whitespace\- or comma\-separated list.)  Lists the ports on which
323 the Kerberos server should listen for TCP connections, as a
324 comma\-separated list of integers.  If this relation is not
325 specified, the compiled\-in default is not to listen for TCP
326 connections at all.
327 .sp
328 If you wish to change this (note that the current implementation
329 has little protection against denial\-of\-service attacks), the
330 standard port number assigned for Kerberos TCP traffic is port 88.
331 .TP
332 .B \fBmaster_key_name\fP
333 .sp
334 (String.)  Specifies the name of the principal associated with the
335 master key.  The default is \fBK/M\fP.
336 .TP
337 .B \fBmaster_key_type\fP
338 .sp
339 (Key type string.)  Specifies the master key\(aqs key type.  The
340 default value for this is \fBaes256\-cts\-hmac\-sha1\-96\fP.  For a list of all possible
341 values, see \fI\%Encryption and salt types\fP.
342 .TP
343 .B \fBmax_life\fP
344 .sp
345 (Delta time string.)  Specifies the maximum time period for which
346 a ticket may be valid in this realm.  The default value is 24
347 hours.
348 .TP
349 .B \fBmax_renewable_life\fP
350 .sp
351 (Delta time string.)  Specifies the maximum time period during
352 which a valid ticket may be renewed in this realm.  The default
353 value is 0.
354 .TP
355 .B \fBno_host_referral\fP
356 .sp
357 (Whitespace\- or comma\-separated list.)  Lists services to block
358 from getting host\-based referral processing, even if the client
359 marks the server principal as host\-based or the service is also
360 listed in \fBhost_based_services\fP.  \fBno_host_referral = *\fP will
361 disable referral processing altogether.
362 .TP
363 .B \fBreject_bad_transit\fP
364 .sp
365 (Boolean value.)  If set to true, the KDC will check the list of
366 transited realms for cross\-realm tickets against the transit path
367 computed from the realm names and the capaths section of its
368 \fIkrb5.conf(5)\fP file; if the path in the ticket to be issued
369 contains any realms not in the computed path, the ticket will not
370 be issued, and an error will be returned to the client instead.
371 If this value is set to false, such tickets will be issued
372 anyways, and it will be left up to the application server to
373 validate the realm transit path.
374 .sp
375 If the disable\-transited\-check flag is set in the incoming
376 request, this check is not performed at all.  Having the
377 \fBreject_bad_transit\fP option will cause such ticket requests to
378 be rejected always.
379 .sp
380 This transit path checking and config file option currently apply
381 only to TGS requests.
382 .sp
383 The default value is true.
384 .TP
385 .B \fBrestrict_anonymous_to_tgt\fP
386 .sp
387 (Boolean value.)  If set to true, the KDC will reject ticket
388 requests from anonymous principals to service principals other
389 than the realm\(aqs ticket\-granting service.  This option allows
390 anonymous PKINIT to be enabled for use as FAST armor tickets
391 without allowing anonymous authentication to services.  The
392 default value is false.
393 .TP
394 .B \fBsupported_enctypes\fP
395 .sp
396 (List of \fIkey\fP:\fIsalt\fP strings.)  Specifies the default key/salt
397 combinations of principals for this realm.  Any principals created
398 through \fIkadmin(1)\fP will have keys of these types.  The
399 default value for this tag is \fBaes256\-cts\-hmac\-sha1\-96:normal aes128\-cts\-hmac\-sha1\-96:normal des3\-cbc\-sha1:normal arcfour\-hmac\-md5:normal\fP.  For lists of
400 possible values, see \fI\%Encryption and salt types\fP.
401 .UNINDENT
402 .SS [logging]
403 .sp
404 The [logging] section indicates how \fIkrb5kdc(8)\fP and
405 \fIkadmind(8)\fP perform logging.  The keys in this section are
406 daemon names, which may be one of:
407 .INDENT 0.0
408 .TP
409 .B \fBadmin_server\fP
410 .sp
411 Specifies how \fIkadmind(8)\fP performs logging.
412 .TP
413 .B \fBkdc\fP
414 .sp
415 Specifies how \fIkrb5kdc(8)\fP performs logging.
416 .TP
417 .B \fBdefault\fP
418 .sp
419 Specifies how either daemon performs logging in the absence of
420 relations specific to the daemon.
421 .UNINDENT
422 .sp
423 Values are of the following forms:
424 .INDENT 0.0
425 .TP
426 .B \fBFILE=\fP\fIfilename\fP or \fBFILE:\fP\fIfilename\fP
427 .sp
428 This value causes the daemon\(aqs logging messages to go to the
429 \fIfilename\fP.  If the \fB=\fP form is used, the file is overwritten.
430 If the \fB:\fP form is used, the file is appended to.
431 .TP
432 .B \fBSTDERR\fP
433 .sp
434 This value causes the daemon\(aqs logging messages to go to its
435 standard error stream.
436 .TP
437 .B \fBCONSOLE\fP
438 .sp
439 This value causes the daemon\(aqs logging messages to go to the
440 console, if the system supports it.
441 .TP
442 .B \fBDEVICE=\fP\fI<devicename>\fP
443 .sp
444 This causes the daemon\(aqs logging messages to go to the specified
445 device.
446 .TP
447 .B \fBSYSLOG\fP[\fB:\fP\fIseverity\fP[\fB:\fP\fIfacility\fP]]
448 .sp
449 This causes the daemon\(aqs logging messages to go to the system log.
450 .sp
451 The severity argument specifies the default severity of system log
452 messages.  This may be any of the following severities supported
453 by the syslog(3) call, minus the \fBLOG_\fP prefix: \fBEMERG\fP,
454 \fBALERT\fP, \fBCRIT\fP, \fBERR\fP, \fBWARNING\fP, \fBNOTICE\fP, \fBINFO\fP,
455 and \fBDEBUG\fP.
456 .sp
457 The facility argument specifies the facility under which the
458 messages are logged.  This may be any of the following facilities
459 supported by the syslog(3) call minus the LOG_ prefix: \fBKERN\fP,
460 \fBUSER\fP, \fBMAIL\fP, \fBDAEMON\fP, \fBAUTH\fP, \fBLPR\fP, \fBNEWS\fP,
461 \fBUUCP\fP, \fBCRON\fP, and \fBLOCAL0\fP through \fBLOCAL7\fP.
462 .sp
463 If no severity is specified, the default is \fBERR\fP.  If no
464 facility is specified, the default is \fBAUTH\fP.
465 .UNINDENT
466 .sp
467 In the following example, the logging messages from the KDC will go to
468 the console and to the system log under the facility LOG_DAEMON with
469 default severity of LOG_INFO; and the logging messages from the
470 administrative server will be appended to the file
471 \fB/var/adm/kadmin.log\fP and sent to the device \fB/dev/tty04\fP.
472 .INDENT 0.0
473 .INDENT 3.5
474 .sp
475 .nf
476 .ft C
477 [logging]
478     kdc = CONSOLE
479     kdc = SYSLOG:INFO:DAEMON
480     admin_server = FILE:/var/adm/kadmin.log
481     admin_server = DEVICE=/dev/tty04
482 .ft P
483 .fi
484 .UNINDENT
485 .UNINDENT
486 .SS [dbdefaults]
487 .sp
488 The [dbdefaults] section specifies default values for some database
489 parameters, to be used if the [dbmodules] subsection does not contain
490 a relation for the tag.  See the \fI\%[dbmodules]\fP section for the
491 definitions of these relations.
492 .INDENT 0.0
493 .IP \(bu 2
494 .
495 \fBldap_kerberos_container_dn\fP
496 .IP \(bu 2
497 .
498 \fBldap_kdc_dn\fP
499 .IP \(bu 2
500 .
501 \fBldap_kadmind_dn\fP
502 .IP \(bu 2
503 .
504 \fBldap_service_password_file\fP
505 .IP \(bu 2
506 .
507 \fBldap_servers\fP
508 .IP \(bu 2
509 .
510 \fBldap_conns_per_server\fP
511 .UNINDENT
512 .SS [dbmodules]
513 .sp
514 The [dbmodules] section contains parameters used by the KDC database
515 library and database modules.  The following tag may be specified
516 in the [dbmodules] section:
517 .INDENT 0.0
518 .TP
519 .B \fBdb_module_dir\fP
520 .sp
521 This tag controls where the plugin system looks for modules.  The
522 value should be an absolute path.
523 .UNINDENT
524 .sp
525 Other tags in the [dbmodules] section name a configuration subsection
526 for parameters which can be referred to by a realm\(aqs
527 \fBdatabase_module\fP parameter.  The following tags may be specified in
528 the subsection:
529 .INDENT 0.0
530 .TP
531 .B \fBdatabase_name\fP
532 .sp
533 This DB2\-specific tag indicates the location of the database in
534 the filesystem.  The default is \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/principal\fP.
535 .TP
536 .B \fBdb_library\fP
537 .sp
538 This tag indicates the name of the loadable database module.  The
539 value should be \fBdb2\fP for the DB2 module and \fBkldap\fP for the
540 LDAP module.
541 .TP
542 .B \fBdisable_last_success\fP
543 .sp
544 If set to \fBtrue\fP, suppresses KDC updates to the "Last successful
545 authentication" field of principal entries requiring
546 preauthentication.  Setting this flag may improve performance.
547 (Principal entries which do not require preauthentication never
548 update the "Last successful authentication" field.).
549 .TP
550 .B \fBdisable_lockout\fP
551 .sp
552 If set to \fBtrue\fP, suppresses KDC updates to the "Last failed
553 authentication" and "Failed password attempts" fields of principal
554 entries requiring preauthentication.  Setting this flag may
555 improve performance, but also disables account lockout.
556 .TP
557 .B \fBldap_conns_per_server\fP
558 .sp
559 This LDAP\-specific tag indicates the number of connections to be
560 maintained per LDAP server.
561 .TP
562 .B \fBldap_kadmind_dn\fP
563 .sp
564 This LDAP\-specific tag indicates the default bind DN for the
565 \fIkadmind(8)\fP daemon.  kadmind does a login to the directory
566 as this object.  This object should have the rights to read and
567 write the Kerberos data in the LDAP database.
568 .TP
569 .B \fBldap_kdc_dn\fP
570 .sp
571 This LDAP\-specific tag indicates the default bind DN for the
572 \fIkrb5kdc(8)\fP daemon.  The KDC does a login to the directory
573 as this object.  This object should have the rights to read the
574 Kerberos data in the LDAP database, and to write data unless
575 \fBdisable_lockout\fP and \fBdisable_last_success\fP are true.
576 .TP
577 .B \fBldap_kerberos_container_dn\fP
578 .sp
579 This LDAP\-specific tag indicates the DN of the container object
580 where the realm objects will be located.
581 .TP
582 .B \fBldap_servers\fP
583 .sp
584 This LDAP\-specific tag indicates the list of LDAP servers that the
585 Kerberos servers can connect to.  The list of LDAP servers is
586 whitespace\-separated.  The LDAP server is specified by a LDAP URI.
587 It is recommended to use \fBldapi:\fP or \fBldaps:\fP URLs to connect
588 to the LDAP server.
589 .TP
590 .B \fBldap_service_password_file\fP
591 .sp
592 This LDAP\-specific tag indicates the file containing the stashed
593 passwords (created by \fBkdb5_ldap_util stashsrvpw\fP) for the
594 \fBldap_kadmind_dn\fP and \fBldap_kdc_dn\fP objects.  This file must
595 be kept secure.
596 .UNINDENT
597 .SH PKINIT OPTIONS
598 .IP Note
599 .
600 The following are pkinit\-specific options.  These values may
601 be specified in [kdcdefaults] as global defaults, or within
602 a realm\-specific subsection of [realms].  Also note that a
603 realm\-specific value over\-rides, does not add to, a generic
604 [kdcdefaults] specification.  The search order is:
605 .RE
606 .INDENT 0.0
607 .IP 1. 3
608 .
609 realm\-specific subsection of [realms],
610 .INDENT 3.0
611 .INDENT 3.5
612 .sp
613 .nf
614 .ft C
615 [realms]
616     EXAMPLE.COM = {
617         pkinit_anchors = FILE\e:/usr/local/example.com.crt
618     }
619 .ft P
620 .fi
621 .UNINDENT
622 .UNINDENT
623 .IP 2. 3
624 .
625 generic value in the [kdcdefaults] section.
626 .INDENT 3.0
627 .INDENT 3.5
628 .sp
629 .nf
630 .ft C
631 [kdcdefaults]
632     pkinit_anchors = DIR\e:/usr/local/generic_trusted_cas/
633 .ft P
634 .fi
635 .UNINDENT
636 .UNINDENT
637 .UNINDENT
638 .sp
639 For information about the syntax of some of these options, see
640 \fISpecifying PKINIT identity information\fP in
641 \fIkrb5.conf(5)\fP.
642 .INDENT 0.0
643 .TP
644 .B \fBpkinit_anchors\fP
645 .sp
646 Specifies the location of trusted anchor (root) certificates which
647 the KDC trusts to sign client certificates.  This option is
648 required if pkinit is to be supported by the KDC.  This option may
649 be specified multiple times.
650 .TP
651 .B \fBpkinit_dh_min_bits\fP
652 .sp
653 Specifies the minimum number of bits the KDC is willing to accept
654 for a client\(aqs Diffie\-Hellman key.  The default is 2048.
655 .TP
656 .B \fBpkinit_allow_upn\fP
657 .sp
658 Specifies that the KDC is willing to accept client certificates
659 with the Microsoft UserPrincipalName (UPN) Subject Alternative
660 Name (SAN).  This means the KDC accepts the binding of the UPN in
661 the certificate to the Kerberos principal name.  The default value
662 is false.
663 .sp
664 Without this option, the KDC will only accept certificates with
665 the id\-pkinit\-san as defined in \fI\%RFC 4556\fP.  There is currently
666 no option to disable SAN checking in the KDC.
667 .TP
668 .B \fBpkinit_eku_checking\fP
669 .sp
670 This option specifies what Extended Key Usage (EKU) values the KDC
671 is willing to accept in client certificates.  The values
672 recognized in the kdc.conf file are:
673 .INDENT 7.0
674 .TP
675 .B \fBkpClientAuth\fP
676 .sp
677 This is the default value and specifies that client
678 certificates must have the id\-pkinit\-KPClientAuth EKU as
679 defined in \fI\%RFC 4556\fP.
680 .TP
681 .B \fBscLogin\fP
682 .sp
683 If scLogin is specified, client certificates with the
684 Microsoft Smart Card Login EKU (id\-ms\-kp\-sc\-logon) will be
685 accepted.
686 .TP
687 .B \fBnone\fP
688 .sp
689 If none is specified, then client certificates will not be
690 checked to verify they have an acceptable EKU.  The use of
691 this option is not recommended.
692 .UNINDENT
693 .TP
694 .B \fBpkinit_identity\fP
695 .sp
696 Specifies the location of the KDC\(aqs X.509 identity information.
697 This option is required if pkinit is to be supported by the KDC.
698 .TP
699 .B \fBpkinit_kdc_ocsp\fP
700 .sp
701 Specifies the location of the KDC\(aqs OCSP.
702 .TP
703 .B \fBpkinit_mapping_file\fP
704 .sp
705 Specifies the name of the ACL pkinit mapping file.  This file maps
706 principals to the certificates that they can use.
707 .TP
708 .B \fBpkinit_pool\fP
709 .sp
710 Specifies the location of intermediate certificates which may be
711 used by the KDC to complete the trust chain between a client\(aqs
712 certificate and a trusted anchor.  This option may be specified
713 multiple times.
714 .TP
715 .B \fBpkinit_revoke\fP
716 .sp
717 Specifies the location of Certificate Revocation List (CRL)
718 information to be used by the KDC when verifying the validity of
719 client certificates.  This option may be specified multiple times.
720 .TP
721 .B \fBpkinit_require_crl_checking\fP
722 .sp
723 The default certificate verification process will always check the
724 available revocation information to see if a certificate has been
725 revoked.  If a match is found for the certificate in a CRL,
726 verification fails.  If the certificate being verified is not
727 listed in a CRL, or there is no CRL present for its issuing CA,
728 and \fBpkinit_require_crl_checking\fP is false, then verification
729 succeeds.
730 .sp
731 However, if \fBpkinit_require_crl_checking\fP is true and there is
732 no CRL information available for the issuing CA, then verification
733 fails.
734 .sp
735 \fBpkinit_require_crl_checking\fP should be set to true if the
736 policy is such that up\-to\-date CRLs must be present for every CA.
737 .UNINDENT
738 .SH ENCRYPTION AND SALT TYPES
739 .sp
740 Any tag in the configuration files which requires a list of encryption
741 types can be set to some combination of the following strings.
742 Encryption types marked as "weak" are available for compatibility but
743 not recommended for use.
744 .TS
745 center;
746 |l|l|.
747 _
748 T{
749 des\-cbc\-crc
750 T}      T{
751 DES cbc mode with CRC\-32 (weak)
752 T}
753 _
754 T{
755 des\-cbc\-md4
756 T}      T{
757 DES cbc mode with RSA\-MD4 (weak)
758 T}
759 _
760 T{
761 des\-cbc\-md5
762 T}      T{
763 DES cbc mode with RSA\-MD5 (weak)
764 T}
765 _
766 T{
767 des\-cbc\-raw
768 T}      T{
769 DES cbc mode raw (weak)
770 T}
771 _
772 T{
773 des3\-cbc\-raw
774 T}      T{
775 Triple DES cbc mode raw (weak)
776 T}
777 _
778 T{
779 des3\-cbc\-sha1 des3\-hmac\-sha1 des3\-cbc\-sha1\-kd
780 T}      T{
781 Triple DES cbc mode with HMAC/sha1
782 T}
783 _
784 T{
785 des\-hmac\-sha1
786 T}      T{
787 DES with HMAC/sha1 (weak)
788 T}
789 _
790 T{
791 aes256\-cts\-hmac\-sha1\-96 aes256\-cts AES\-256
792 T}      T{
793 CTS mode with 96\-bit SHA\-1 HMAC
794 T}
795 _
796 T{
797 aes128\-cts\-hmac\-sha1\-96 aes128\-cts AES\-128
798 T}      T{
799 CTS mode with 96\-bit SHA\-1 HMAC
800 T}
801 _
802 T{
803 arcfour\-hmac rc4\-hmac arcfour\-hmac\-md5
804 T}      T{
805 RC4 with HMAC/MD5
806 T}
807 _
808 T{
809 arcfour\-hmac\-exp rc4\-hmac\-exp arcfour\-hmac\-md5\-exp
810 T}      T{
811 Exportable RC4 with HMAC/MD5 (weak)
812 T}
813 _
814 T{
815 des
816 T}      T{
817 The DES family: des\-cbc\-crc, des\-cbc\-md5, and des\-cbc\-md4 (weak)
818 T}
819 _
820 T{
821 des3
822 T}      T{
823 The triple DES family: des3\-cbc\-sha1
824 T}
825 _
826 T{
827 aes
828 T}      T{
829 The AES family: aes256\-cts\-hmac\-sha1\-96 and aes128\-cts\-hmac\-sha1\-96
830 T}
831 _
832 T{
833 rc4
834 T}      T{
835 The RC4 family: arcfour\-hmac
836 T}
837 _
838 .TE
839 .sp
840 The string \fBDEFAULT\fP can be used to refer to the default set of
841 types for the variable in question.  Types or families can be removed
842 from the current list by prefixing them with a minus sign ("\-").
843 Types or families can be prefixed with a plus sign ("+") for symmetry;
844 it has the same meaning as just listing the type or family.  For
845 example, "\fBDEFAULT \-des\fP" would be the default set of encryption
846 types with DES types removed, and "\fBdes3 DEFAULT\fP" would be the
847 default set of encryption types with triple DES types moved to the
848 front.
849 .sp
850 While \fBaes128\-cts\fP and \fBaes256\-cts\fP are supported for all Kerberos
851 operations, they are not supported by very old versions of our GSSAPI
852 implementation (krb5\-1.3.1 and earlier).  Services running versions of
853 krb5 without AES support must not be given AES keys in the KDC
854 database.
855 .sp
856 Kerberos keys for users are usually derived from passwords.  To ensure
857 that people who happen to pick the same password do not have the same
858 key, Kerberos 5 incorporates more information into the key using
859 something called a salt.  The supported salt types are as follows:
860 .TS
861 center;
862 |l|l|.
863 _
864 T{
865 normal
866 T}      T{
867 default for Kerberos Version 5
868 T}
869 _
870 T{
871 v4
872 T}      T{
873 the only type used by Kerberos Version 4 (no salt)
874 T}
875 _
876 T{
877 norealm
878 T}      T{
879 same as the default, without using realm information
880 T}
881 _
882 T{
883 onlyrealm
884 T}      T{
885 uses only realm information as the salt
886 T}
887 _
888 T{
889 afs3
890 T}      T{
891 AFS version 3, only used for compatibility with Kerberos 4 in AFS
892 T}
893 _
894 T{
895 special
896 T}      T{
897 generate a random salt
898 T}
899 _
900 .TE
901 .SH SAMPLE KDC.CONF FILE
902 .sp
903 Here\(aqs an example of a kdc.conf file:
904 .INDENT 0.0
905 .INDENT 3.5
906 .sp
907 .nf
908 .ft C
909 [kdcdefaults]
910     kdc_ports = 88
911
912 [realms]
913     ATHENA.MIT.EDU = {
914         kadmind_port = 749
915         max_life = 12h 0m 0s
916         max_renewable_life = 7d 0h 0m 0s
917         master_key_type = des3\-hmac\-sha1
918         supported_enctypes = des3\-hmac\-sha1:normal des\-cbc\-crc:normal des\-cbc\-crc:v4
919     }
920
921 [logging]
922     kdc = FILE:/usr/local/var/krb5kdc/kdc.log
923     admin_server = FILE:/usr/local/var/krb5kdc/kadmin.log
924 .ft P
925 .fi
926 .UNINDENT
927 .UNINDENT
928 .SH FILES
929 .sp
930 \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/kdc.conf\fP
931 .SH SEE ALSO
932 .sp
933 \fIkrb5.conf(5)\fP, \fIkrb5kdc(8)\fP
934 .SH AUTHOR
935 MIT
936 .SH COPYRIGHT
937 2011, MIT
938 .\" Generated by docutils manpage writer.
939 .