Imported Upstream version 1.15.1
[platform/upstream/krb5.git] / src / man / kdc.conf.man
1 .\" Man page generated from reStructuredText.
2 .
3 .TH "KDC.CONF" "5" " " "1.15.1" "MIT Kerberos"
4 .SH NAME
5 kdc.conf \- Kerberos V5 KDC configuration file
6 .
7 .nr rst2man-indent-level 0
8 .
9 .de1 rstReportMargin
10 \\$1 \\n[an-margin]
11 level \\n[rst2man-indent-level]
12 level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 -
14 \\n[rst2man-indent0]
15 \\n[rst2man-indent1]
16 \\n[rst2man-indent2]
17 ..
18 .de1 INDENT
19 .\" .rstReportMargin pre:
20 . RS \\$1
21 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 . nr rst2man-indent-level +1
23 .\" .rstReportMargin post:
24 ..
25 .de UNINDENT
26 . RE
27 .\" indent \\n[an-margin]
28 .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 .nr rst2man-indent-level -1
30 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
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; for the
38 KDC programs mentioned, krb5.conf and kdc.conf will be merged into a
39 single configuration profile.
40 .sp
41 Normally, the kdc.conf file is found in the KDC state directory,
42 \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\&.  You can override the default location by setting the
43 environment variable \fBKRB5_KDC_PROFILE\fP\&.
44 .sp
45 Please note that you need to restart the KDC daemon for any configuration
46 changes to take effect.
47 .SH STRUCTURE
48 .sp
49 The kdc.conf file is set up in the same format as the
50 \fIkrb5.conf(5)\fP file.
51 .SH SECTIONS
52 .sp
53 The kdc.conf file may contain the following sections:
54 .TS
55 center;
56 |l|l|.
57 _
58 T{
59 \fI\%[kdcdefaults]\fP
60 T}      T{
61 Default values for KDC behavior
62 T}
63 _
64 T{
65 \fI\%[realms]\fP
66 T}      T{
67 Realm\-specific database configuration and settings
68 T}
69 _
70 T{
71 \fI\%[dbdefaults]\fP
72 T}      T{
73 Default database settings
74 T}
75 _
76 T{
77 \fI\%[dbmodules]\fP
78 T}      T{
79 Per\-database settings
80 T}
81 _
82 T{
83 \fI\%[logging]\fP
84 T}      T{
85 Controls how Kerberos daemons perform logging
86 T}
87 _
88 .TE
89 .SS [kdcdefaults]
90 .sp
91 With two exceptions, relations in the [kdcdefaults] section specify
92 default values for realm variables, to be used if the [realms]
93 subsection does not contain a relation for the tag.  See the
94 \fI\%[realms]\fP section for the definitions of these relations.
95 .INDENT 0.0
96 .IP \(bu 2
97 \fBhost_based_services\fP
98 .IP \(bu 2
99 \fBkdc_listen\fP
100 .IP \(bu 2
101 \fBkdc_ports\fP
102 .IP \(bu 2
103 \fBkdc_tcp_listen\fP
104 .IP \(bu 2
105 \fBkdc_tcp_ports\fP
106 .IP \(bu 2
107 \fBno_host_referral\fP
108 .IP \(bu 2
109 \fBrestrict_anonymous_to_tgt\fP
110 .UNINDENT
111 .INDENT 0.0
112 .TP
113 .B \fBkdc_max_dgram_reply_size\fP
114 Specifies the maximum packet size that can be sent over UDP.  The
115 default value is 4096 bytes.
116 .TP
117 .B \fBkdc_tcp_listen_backlog\fP
118 (Integer.)  Set the size of the listen queue length for the KDC
119 daemon.  The value may be limited by OS settings.  The default
120 value is 5.
121 .UNINDENT
122 .SS [realms]
123 .sp
124 Each tag in the [realms] section is the name of a Kerberos realm.  The
125 value of the tag is a subsection where the relations define KDC
126 parameters for that particular realm.  The following example shows how
127 to define one parameter for the ATHENA.MIT.EDU realm:
128 .INDENT 0.0
129 .INDENT 3.5
130 .sp
131 .nf
132 .ft C
133 [realms]
134     ATHENA.MIT.EDU = {
135         max_renewable_life = 7d 0h 0m 0s
136     }
137 .ft P
138 .fi
139 .UNINDENT
140 .UNINDENT
141 .sp
142 The following tags may be specified in a [realms] subsection:
143 .INDENT 0.0
144 .TP
145 .B \fBacl_file\fP
146 (String.)  Location of the access control list file that
147 \fIkadmind(8)\fP uses to determine which principals are allowed
148 which permissions on the Kerberos database.  The default value is
149 \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/kadm5.acl\fP\&.  For more information on Kerberos ACL
150 file see \fIkadm5.acl(5)\fP\&.
151 .TP
152 .B \fBdatabase_module\fP
153 (String.)  This relation indicates the name of the configuration
154 section under \fI\%[dbmodules]\fP for database\-specific parameters
155 used by the loadable database library.  The default value is the
156 realm name.  If this configuration section does not exist, default
157 values will be used for all database parameters.
158 .TP
159 .B \fBdatabase_name\fP
160 (String, deprecated.)  This relation specifies the location of the
161 Kerberos database for this realm, if the DB2 module is being used
162 and the \fI\%[dbmodules]\fP configuration section does not specify a
163 database name.  The default value is \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/principal\fP\&.
164 .TP
165 .B \fBdefault_principal_expiration\fP
166 (\fIabstime\fP string.)  Specifies the default expiration date of
167 principals created in this realm.  The default value is 0, which
168 means no expiration date.
169 .TP
170 .B \fBdefault_principal_flags\fP
171 (Flag string.)  Specifies the default attributes of principals
172 created in this realm.  The format for this string is a
173 comma\-separated list of flags, with \(aq+\(aq before each flag that
174 should be enabled and \(aq\-\(aq before each flag that should be
175 disabled.  The \fBpostdateable\fP, \fBforwardable\fP, \fBtgt\-based\fP,
176 \fBrenewable\fP, \fBproxiable\fP, \fBdup\-skey\fP, \fBallow\-tickets\fP, and
177 \fBservice\fP flags default to enabled.
178 .sp
179 There are a number of possible flags:
180 .INDENT 7.0
181 .TP
182 .B \fBallow\-tickets\fP
183 Enabling this flag means that the KDC will issue tickets for
184 this principal.  Disabling this flag essentially deactivates
185 the principal within this realm.
186 .TP
187 .B \fBdup\-skey\fP
188 Enabling this flag allows the principal to obtain a session
189 key for another user, permitting user\-to\-user authentication
190 for this principal.
191 .TP
192 .B \fBforwardable\fP
193 Enabling this flag allows the principal to obtain forwardable
194 tickets.
195 .TP
196 .B \fBhwauth\fP
197 If this flag is enabled, then the principal is required to
198 preauthenticate using a hardware device before receiving any
199 tickets.
200 .TP
201 .B \fBno\-auth\-data\-required\fP
202 Enabling this flag prevents PAC or AD\-SIGNEDPATH data from
203 being added to service tickets for the principal.
204 .TP
205 .B \fBok\-as\-delegate\fP
206 If this flag is enabled, it hints the client that credentials
207 can and should be delegated when authenticating to the
208 service.
209 .TP
210 .B \fBok\-to\-auth\-as\-delegate\fP
211 Enabling this flag allows the principal to use S4USelf tickets.
212 .TP
213 .B \fBpostdateable\fP
214 Enabling this flag allows the principal to obtain postdateable
215 tickets.
216 .TP
217 .B \fBpreauth\fP
218 If this flag is enabled on a client principal, then that
219 principal is required to preauthenticate to the KDC before
220 receiving any tickets.  On a service principal, enabling this
221 flag means that service tickets for this principal will only
222 be issued to clients with a TGT that has the preauthenticated
223 bit set.
224 .TP
225 .B \fBproxiable\fP
226 Enabling this flag allows the principal to obtain proxy
227 tickets.
228 .TP
229 .B \fBpwchange\fP
230 Enabling this flag forces a password change for this
231 principal.
232 .TP
233 .B \fBpwservice\fP
234 If this flag is enabled, it marks this principal as a password
235 change service.  This should only be used in special cases,
236 for example, if a user\(aqs password has expired, then the user
237 has to get tickets for that principal without going through
238 the normal password authentication in order to be able to
239 change the password.
240 .TP
241 .B \fBrenewable\fP
242 Enabling this flag allows the principal to obtain renewable
243 tickets.
244 .TP
245 .B \fBservice\fP
246 Enabling this flag allows the the KDC to issue service tickets
247 for this principal.
248 .TP
249 .B \fBtgt\-based\fP
250 Enabling this flag allows a principal to obtain tickets based
251 on a ticket\-granting\-ticket, rather than repeating the
252 authentication process that was used to obtain the TGT.
253 .UNINDENT
254 .TP
255 .B \fBdict_file\fP
256 (String.)  Location of the dictionary file containing strings that
257 are not allowed as passwords.  The file should contain one string
258 per line, with no additional whitespace.  If none is specified or
259 if there is no policy assigned to the principal, no dictionary
260 checks of passwords will be performed.
261 .TP
262 .B \fBhost_based_services\fP
263 (Whitespace\- or comma\-separated list.)  Lists services which will
264 get host\-based referral processing even if the server principal is
265 not marked as host\-based by the client.
266 .TP
267 .B \fBiprop_enable\fP
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 (Integer.)  Specifies the maximum number of log entries to be
273 retained for incremental propagation.  The default value is 1000.
274 Prior to release 1.11, the maximum value was 2500.
275 .TP
276 .B \fBiprop_slave_poll\fP
277 (Delta time string.)  Specifies how often the slave KDC polls for
278 new updates from the master.  The default value is \fB2m\fP (that
279 is, two minutes).
280 .TP
281 .B \fBiprop_listen\fP
282 (Whitespace\- or comma\-separated list.)  Specifies the iprop RPC
283 listening addresses and/or ports for the \fIkadmind(8)\fP daemon.
284 Each entry may be an interface address, a port number, or an
285 address and port number separated by a colon.  If the address
286 contains colons, enclose it in square brackets.  If no address is
287 specified, the wildcard address is used.  If kadmind fails to bind
288 to any of the specified addresses, it will fail to start.  The
289 default (when \fBiprop_enable\fP is true) is to bind to the wildcard
290 address at the port specified in \fBiprop_port\fP\&.  New in release
291 1.15.
292 .TP
293 .B \fBiprop_port\fP
294 (Port number.)  Specifies the port number to be used for
295 incremental propagation.  When \fBiprop_enable\fP is true, this
296 relation is required in the slave configuration file, and this
297 relation or \fBiprop_listen\fP is required in the master
298 configuration file, as there is no default port number.  Port
299 numbers specified in \fBiprop_listen\fP entries will override this
300 port number for the \fIkadmind(8)\fP daemon.
301 .TP
302 .B \fBiprop_resync_timeout\fP
303 (Delta time string.)  Specifies the amount of time to wait for a
304 full propagation to complete.  This is optional in configuration
305 files, and is used by slave KDCs only.  The default value is 5
306 minutes (\fB5m\fP).  New in release 1.11.
307 .TP
308 .B \fBiprop_logfile\fP
309 (File name.)  Specifies where the update log file for the realm
310 database is to be stored.  The default is to use the
311 \fBdatabase_name\fP entry from the realms section of the krb5 config
312 file, with \fB\&.ulog\fP appended.  (NOTE: If \fBdatabase_name\fP isn\(aqt
313 specified in the realms section, perhaps because the LDAP database
314 back end is being used, or the file name is specified in the
315 [dbmodules] section, then the hard\-coded default for
316 \fBdatabase_name\fP is used.  Determination of the \fBiprop_logfile\fP
317 default value will not use values from the [dbmodules] section.)
318 .TP
319 .B \fBkadmind_listen\fP
320 (Whitespace\- or comma\-separated list.)  Specifies the kadmin RPC
321 listening addresses and/or ports for the \fIkadmind(8)\fP daemon.
322 Each entry may be an interface address, a port number, or an
323 address and port number separated by a colon.  If the address
324 contains colons, enclose it in square brackets.  If no address is
325 specified, the wildcard address is used.  If kadmind fails to bind
326 to any of the specified addresses, it will fail to start.  The
327 default is to bind to the wildcard address at the port specified
328 in \fBkadmind_port\fP, or the standard kadmin port (749).  New in
329 release 1.15.
330 .TP
331 .B \fBkadmind_port\fP
332 (Port number.)  Specifies the port on which the \fIkadmind(8)\fP
333 daemon is to listen for this realm.  Port numbers specified in
334 \fBkadmind_listen\fP entries will override this port number.  The
335 assigned port for kadmind is 749, which is used by default.
336 .TP
337 .B \fBkey_stash_file\fP
338 (String.)  Specifies the location where the master key has been
339 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.
340 .TP
341 .B \fBkdc_listen\fP
342 (Whitespace\- or comma\-separated list.)  Specifies the UDP
343 listening addresses and/or ports for the \fIkrb5kdc(8)\fP daemon.
344 Each entry may be an interface address, a port number, or an
345 address and port number separated by a colon.  If the address
346 contains colons, enclose it in square brackets.  If no address is
347 specified, the wildcard address is used.  If no port is specified,
348 the standard port (88) is used.  If the KDC daemon fails to bind
349 to any of the specified addresses, it will fail to start.  The
350 default is to bind to the wildcard address on the standard port.
351 New in release 1.15.
352 .TP
353 .B \fBkdc_ports\fP
354 (Whitespace\- or comma\-separated list, deprecated.)  Prior to
355 release 1.15, this relation lists the ports for the
356 \fIkrb5kdc(8)\fP daemon to listen on for UDP requests.  In
357 release 1.15 and later, it has the same meaning as \fBkdc_listen\fP
358 if that relation is not defined.
359 .TP
360 .B \fBkdc_tcp_listen\fP
361 (Whitespace\- or comma\-separated list.)  Specifies the TCP
362 listening addresses and/or ports for the \fIkrb5kdc(8)\fP daemon.
363 Each entry may be an interface address, a port number, or an
364 address and port number separated by a colon.  If the address
365 contains colons, enclose it in square brackets.  If no address is
366 specified, the wildcard address is used.  If no port is specified,
367 the standard port (88) is used.  To disable listening on TCP, set
368 this relation to the empty string with \fBkdc_tcp_listen = ""\fP\&.
369 If the KDC daemon fails to bind to any of the specified addresses,
370 it will fail to start.  The default is to bind to the wildcard
371 address on the standard port.  New in release 1.15.
372 .TP
373 .B \fBkdc_tcp_ports\fP
374 (Whitespace\- or comma\-separated list, deprecated.)  Prior to
375 release 1.15, this relation lists the ports for the
376 \fIkrb5kdc(8)\fP daemon to listen on for UDP requests.  In
377 release 1.15 and later, it has the same meaning as
378 \fBkdc_tcp_listen\fP if that relation is not defined.
379 .TP
380 .B \fBkpasswd_listen\fP
381 (Comma\-separated list.)  Specifies the kpasswd listening addresses
382 and/or ports for the \fIkadmind(8)\fP daemon.  Each entry may be
383 an interface address, a port number, or an address and port number
384 separated by a colon.  If the address contains colons, enclose it
385 in square brackets.  If no address is specified, the wildcard
386 address is used.  If kadmind fails to bind to any of the specified
387 addresses, it will fail to start.  The default is to bind to the
388 wildcard address at the port specified in \fBkpasswd_port\fP, or the
389 standard kpasswd port (464).  New in release 1.15.
390 .TP
391 .B \fBkpasswd_port\fP
392 (Port number.)  Specifies the port on which the \fIkadmind(8)\fP
393 daemon is to listen for password change requests for this realm.
394 Port numbers specified in \fBkpasswd_listen\fP entries will override
395 this port number.  The assigned port for password change requests
396 is 464, which is used by default.
397 .TP
398 .B \fBmaster_key_name\fP
399 (String.)  Specifies the name of the principal associated with the
400 master key.  The default is \fBK/M\fP\&.
401 .TP
402 .B \fBmaster_key_type\fP
403 (Key type string.)  Specifies the master key\(aqs key type.  The
404 default value for this is \fBaes256\-cts\-hmac\-sha1\-96\fP\&.  For a list of all possible
405 values, see \fI\%Encryption types\fP\&.
406 .TP
407 .B \fBmax_life\fP
408 (\fIduration\fP string.)  Specifies the maximum time period for
409 which a ticket may be valid in this realm.  The default value is
410 24 hours.
411 .TP
412 .B \fBmax_renewable_life\fP
413 (\fIduration\fP string.)  Specifies the maximum time period
414 during which a valid ticket may be renewed in this realm.
415 The default value is 0.
416 .TP
417 .B \fBno_host_referral\fP
418 (Whitespace\- or comma\-separated list.)  Lists services to block
419 from getting host\-based referral processing, even if the client
420 marks the server principal as host\-based or the service is also
421 listed in \fBhost_based_services\fP\&.  \fBno_host_referral = *\fP will
422 disable referral processing altogether.
423 .TP
424 .B \fBdes_crc_session_supported\fP
425 (Boolean value).  If set to true, the KDC will assume that service
426 principals support des\-cbc\-crc for session key enctype negotiation
427 purposes.  If \fBallow_weak_crypto\fP in \fIlibdefaults\fP is
428 false, or if des\-cbc\-crc is not a permitted enctype, then this
429 variable has no effect.  Defaults to true.  New in release 1.11.
430 .TP
431 .B \fBreject_bad_transit\fP
432 (Boolean value.)  If set to true, the KDC will check the list of
433 transited realms for cross\-realm tickets against the transit path
434 computed from the realm names and the capaths section of its
435 \fIkrb5.conf(5)\fP file; if the path in the ticket to be issued
436 contains any realms not in the computed path, the ticket will not
437 be issued, and an error will be returned to the client instead.
438 If this value is set to false, such tickets will be issued
439 anyways, and it will be left up to the application server to
440 validate the realm transit path.
441 .sp
442 If the disable\-transited\-check flag is set in the incoming
443 request, this check is not performed at all.  Having the
444 \fBreject_bad_transit\fP option will cause such ticket requests to
445 be rejected always.
446 .sp
447 This transit path checking and config file option currently apply
448 only to TGS requests.
449 .sp
450 The default value is true.
451 .TP
452 .B \fBrestrict_anonymous_to_tgt\fP
453 (Boolean value.)  If set to true, the KDC will reject ticket
454 requests from anonymous principals to service principals other
455 than the realm\(aqs ticket\-granting service.  This option allows
456 anonymous PKINIT to be enabled for use as FAST armor tickets
457 without allowing anonymous authentication to services.  The
458 default value is false.  New in release 1.9.
459 .TP
460 .B \fBsupported_enctypes\fP
461 (List of \fIkey\fP:\fIsalt\fP strings.)  Specifies the default key/salt
462 combinations of principals for this realm.  Any principals created
463 through \fIkadmin(1)\fP will have keys of these types.  The
464 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
465 possible values, see \fI\%Keysalt lists\fP\&.
466 .UNINDENT
467 .SS [dbdefaults]
468 .sp
469 The [dbdefaults] section specifies default values for some database
470 parameters, to be used if the [dbmodules] subsection does not contain
471 a relation for the tag.  See the \fI\%[dbmodules]\fP section for the
472 definitions of these relations.
473 .INDENT 0.0
474 .IP \(bu 2
475 \fBldap_kerberos_container_dn\fP
476 .IP \(bu 2
477 \fBldap_kdc_dn\fP
478 .IP \(bu 2
479 \fBldap_kdc_sasl_authcid\fP
480 .IP \(bu 2
481 \fBldap_kdc_sasl_authzid\fP
482 .IP \(bu 2
483 \fBldap_kdc_sasl_mech\fP
484 .IP \(bu 2
485 \fBldap_kdc_sasl_realm\fP
486 .IP \(bu 2
487 \fBldap_kadmind_dn\fP
488 .IP \(bu 2
489 \fBldap_kadmind_sasl_authcid\fP
490 .IP \(bu 2
491 \fBldap_kadmind_sasl_authzid\fP
492 .IP \(bu 2
493 \fBldap_kadmind_sasl_mech\fP
494 .IP \(bu 2
495 \fBldap_kadmind_sasl_realm\fP
496 .IP \(bu 2
497 \fBldap_service_password_file\fP
498 .IP \(bu 2
499 \fBldap_servers\fP
500 .IP \(bu 2
501 \fBldap_conns_per_server\fP
502 .UNINDENT
503 .SS [dbmodules]
504 .sp
505 The [dbmodules] section contains parameters used by the KDC database
506 library and database modules.  Each tag in the [dbmodules] section is
507 the name of a Kerberos realm or a section name specified by a realm\(aqs
508 \fBdatabase_module\fP parameter.  The following example shows how to
509 define one database parameter for the ATHENA.MIT.EDU realm:
510 .INDENT 0.0
511 .INDENT 3.5
512 .sp
513 .nf
514 .ft C
515 [dbmodules]
516     ATHENA.MIT.EDU = {
517         disable_last_success = true
518     }
519 .ft P
520 .fi
521 .UNINDENT
522 .UNINDENT
523 .sp
524 The following tags may be specified in a [dbmodules] subsection:
525 .INDENT 0.0
526 .TP
527 .B \fBdatabase_name\fP
528 This DB2\-specific tag indicates the location of the database in
529 the filesystem.  The default is \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/principal\fP\&.
530 .TP
531 .B \fBdb_library\fP
532 This tag indicates the name of the loadable database module.  The
533 value should be \fBdb2\fP for the DB2 module and \fBkldap\fP for the
534 LDAP module.
535 .TP
536 .B \fBdisable_last_success\fP
537 If set to \fBtrue\fP, suppresses KDC updates to the "Last successful
538 authentication" field of principal entries requiring
539 preauthentication.  Setting this flag may improve performance.
540 (Principal entries which do not require preauthentication never
541 update the "Last successful authentication" field.).  First
542 introduced in release 1.9.
543 .TP
544 .B \fBdisable_lockout\fP
545 If set to \fBtrue\fP, suppresses KDC updates to the "Last failed
546 authentication" and "Failed password attempts" fields of principal
547 entries requiring preauthentication.  Setting this flag may
548 improve performance, but also disables account lockout.  First
549 introduced in release 1.9.
550 .TP
551 .B \fBldap_conns_per_server\fP
552 This LDAP\-specific tag indicates the number of connections to be
553 maintained per LDAP server.
554 .TP
555 .B \fBldap_kdc_dn\fP and \fBldap_kadmind_dn\fP
556 These LDAP\-specific tags indicate the default DN for binding to
557 the LDAP server.  The \fIkrb5kdc(8)\fP daemon uses
558 \fBldap_kdc_dn\fP, while the \fIkadmind(8)\fP daemon and other
559 administrative programs use \fBldap_kadmind_dn\fP\&.  The kadmind DN
560 must have the rights to read and write the Kerberos data in the
561 LDAP database.  The KDC DN must have the same rights, unless
562 \fBdisable_lockout\fP and \fBdisable_last_success\fP are true, in
563 which case it only needs to have rights to read the Kerberos data.
564 These tags are ignored if a SASL mechanism is set with
565 \fBldap_kdc_sasl_mech\fP or \fBldap_kadmind_sasl_mech\fP\&.
566 .TP
567 .B \fBldap_kdc_sasl_mech\fP and \fBldap_kadmind_sasl_mech\fP
568 These LDAP\-specific tags specify the SASL mechanism (such as
569 \fBEXTERNAL\fP) to use when binding to the LDAP server.  New in
570 release 1.13.
571 .TP
572 .B \fBldap_kdc_sasl_authcid\fP and \fBldap_kadmind_sasl_authcid\fP
573 These LDAP\-specific tags specify the SASL authentication identity
574 to use when binding to the LDAP server.  Not all SASL mechanisms
575 require an authentication identity.  If the SASL mechanism
576 requires a secret (such as the password for \fBDIGEST\-MD5\fP), these
577 tags also determine the name within the
578 \fBldap_service_password_file\fP where the secret is stashed.  New
579 in release 1.13.
580 .TP
581 .B \fBldap_kdc_sasl_authzid\fP and \fBldap_kadmind_sasl_authzid\fP
582 These LDAP\-specific tags specify the SASL authorization identity
583 to use when binding to the LDAP server.  In most circumstances
584 they do not need to be specified.  New in release 1.13.
585 .TP
586 .B \fBldap_kdc_sasl_realm\fP and \fBldap_kadmind_sasl_realm\fP
587 These LDAP\-specific tags specify the SASL realm to use when
588 binding to the LDAP server.  In most circumstances they do not
589 need to be set.  New in release 1.13.
590 .TP
591 .B \fBldap_kerberos_container_dn\fP
592 This LDAP\-specific tag indicates the DN of the container object
593 where the realm objects will be located.
594 .TP
595 .B \fBldap_servers\fP
596 This LDAP\-specific tag indicates the list of LDAP servers that the
597 Kerberos servers can connect to.  The list of LDAP servers is
598 whitespace\-separated.  The LDAP server is specified by a LDAP URI.
599 It is recommended to use \fBldapi:\fP or \fBldaps:\fP URLs to connect
600 to the LDAP server.
601 .TP
602 .B \fBldap_service_password_file\fP
603 This LDAP\-specific tag indicates the file containing the stashed
604 passwords (created by \fBkdb5_ldap_util stashsrvpw\fP) for the
605 \fBldap_kdc_dn\fP and \fBldap_kadmind_dn\fP objects, or for the
606 \fBldap_kdc_sasl_authcid\fP or \fBldap_kadmind_sasl_authcid\fP names
607 for SASL authentication.  This file must be kept secure.
608 .TP
609 .B \fBunlockiter\fP
610 If set to \fBtrue\fP, this DB2\-specific tag causes iteration
611 operations to release the database lock while processing each
612 principal.  Setting this flag to \fBtrue\fP can prevent extended
613 blocking of KDC or kadmin operations when dumps of large databases
614 are in progress.  First introduced in release 1.13.
615 .UNINDENT
616 .sp
617 The following tag may be specified directly in the [dbmodules]
618 section to control where database modules are loaded from:
619 .INDENT 0.0
620 .TP
621 .B \fBdb_module_dir\fP
622 This tag controls where the plugin system looks for database
623 modules.  The value should be an absolute path.
624 .UNINDENT
625 .SS [logging]
626 .sp
627 The [logging] section indicates how \fIkrb5kdc(8)\fP and
628 \fIkadmind(8)\fP perform logging.  It may contain the following
629 relations:
630 .INDENT 0.0
631 .TP
632 .B \fBadmin_server\fP
633 Specifies how \fIkadmind(8)\fP performs logging.
634 .TP
635 .B \fBkdc\fP
636 Specifies how \fIkrb5kdc(8)\fP performs logging.
637 .TP
638 .B \fBdefault\fP
639 Specifies how either daemon performs logging in the absence of
640 relations specific to the daemon.
641 .TP
642 .B \fBdebug\fP
643 (Boolean value.)  Specifies whether debugging messages are
644 included in log outputs other than SYSLOG.  Debugging messages are
645 always included in the system log output because syslog performs
646 its own priority filtering.  The default value is false.  New in
647 release 1.15.
648 .UNINDENT
649 .sp
650 Logging specifications may have the following forms:
651 .INDENT 0.0
652 .TP
653 .B \fBFILE=\fP\fIfilename\fP or \fBFILE:\fP\fIfilename\fP
654 This value causes the daemon\(aqs logging messages to go to the
655 \fIfilename\fP\&.  If the \fB=\fP form is used, the file is overwritten.
656 If the \fB:\fP form is used, the file is appended to.
657 .TP
658 .B \fBSTDERR\fP
659 This value causes the daemon\(aqs logging messages to go to its
660 standard error stream.
661 .TP
662 .B \fBCONSOLE\fP
663 This value causes the daemon\(aqs logging messages to go to the
664 console, if the system supports it.
665 .TP
666 .B \fBDEVICE=\fP\fI<devicename>\fP
667 This causes the daemon\(aqs logging messages to go to the specified
668 device.
669 .TP
670 .B \fBSYSLOG\fP[\fB:\fP\fIseverity\fP[\fB:\fP\fIfacility\fP]]
671 This causes the daemon\(aqs logging messages to go to the system log.
672 .sp
673 The severity argument specifies the default severity of system log
674 messages.  This may be any of the following severities supported
675 by the syslog(3) call, minus the \fBLOG_\fP prefix: \fBEMERG\fP,
676 \fBALERT\fP, \fBCRIT\fP, \fBERR\fP, \fBWARNING\fP, \fBNOTICE\fP, \fBINFO\fP,
677 and \fBDEBUG\fP\&.
678 .sp
679 The facility argument specifies the facility under which the
680 messages are logged.  This may be any of the following facilities
681 supported by the syslog(3) call minus the LOG_ prefix: \fBKERN\fP,
682 \fBUSER\fP, \fBMAIL\fP, \fBDAEMON\fP, \fBAUTH\fP, \fBLPR\fP, \fBNEWS\fP,
683 \fBUUCP\fP, \fBCRON\fP, and \fBLOCAL0\fP through \fBLOCAL7\fP\&.
684 .sp
685 If no severity is specified, the default is \fBERR\fP\&.  If no
686 facility is specified, the default is \fBAUTH\fP\&.
687 .UNINDENT
688 .sp
689 In the following example, the logging messages from the KDC will go to
690 the console and to the system log under the facility LOG_DAEMON with
691 default severity of LOG_INFO; and the logging messages from the
692 administrative server will be appended to the file
693 \fB/var/adm/kadmin.log\fP and sent to the device \fB/dev/tty04\fP\&.
694 .INDENT 0.0
695 .INDENT 3.5
696 .sp
697 .nf
698 .ft C
699 [logging]
700     kdc = CONSOLE
701     kdc = SYSLOG:INFO:DAEMON
702     admin_server = FILE:/var/adm/kadmin.log
703     admin_server = DEVICE=/dev/tty04
704 .ft P
705 .fi
706 .UNINDENT
707 .UNINDENT
708 .SS [otp]
709 .sp
710 Each subsection of [otp] is the name of an OTP token type.  The tags
711 within the subsection define the configuration required to forward a
712 One Time Password request to a RADIUS server.
713 .sp
714 For each token type, the following tags may be specified:
715 .INDENT 0.0
716 .TP
717 .B \fBserver\fP
718 This is the server to send the RADIUS request to.  It can be a
719 hostname with optional port, an ip address with optional port, or
720 a Unix domain socket address.  The default is
721 \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/<name>.socket\fP\&.
722 .TP
723 .B \fBsecret\fP
724 This tag indicates a filename (which may be relative to \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP)
725 containing the secret used to encrypt the RADIUS packets.  The
726 secret should appear in the first line of the file by itself;
727 leading and trailing whitespace on the line will be removed.  If
728 the value of \fBserver\fP is a Unix domain socket address, this tag
729 is optional, and an empty secret will be used if it is not
730 specified.  Otherwise, this tag is required.
731 .TP
732 .B \fBtimeout\fP
733 An integer which specifies the time in seconds during which the
734 KDC should attempt to contact the RADIUS server.  This tag is the
735 total time across all retries and should be less than the time
736 which an OTP value remains valid for.  The default is 5 seconds.
737 .TP
738 .B \fBretries\fP
739 This tag specifies the number of retries to make to the RADIUS
740 server.  The default is 3 retries (4 tries).
741 .TP
742 .B \fBstrip_realm\fP
743 If this tag is \fBtrue\fP, the principal without the realm will be
744 passed to the RADIUS server.  Otherwise, the realm will be
745 included.  The default value is \fBtrue\fP\&.
746 .TP
747 .B \fBindicator\fP
748 This tag specifies an authentication indicator to be included in
749 the ticket if this token type is used to authenticate.  This
750 option may be specified multiple times.  (New in release 1.14.)
751 .UNINDENT
752 .sp
753 In the following example, requests are sent to a remote server via UDP:
754 .INDENT 0.0
755 .INDENT 3.5
756 .sp
757 .nf
758 .ft C
759 [otp]
760     MyRemoteTokenType = {
761         server = radius.mydomain.com:1812
762         secret = SEmfiajf42$
763         timeout = 15
764         retries = 5
765         strip_realm = true
766     }
767 .ft P
768 .fi
769 .UNINDENT
770 .UNINDENT
771 .sp
772 An implicit default token type named \fBDEFAULT\fP is defined for when
773 the per\-principal configuration does not specify a token type.  Its
774 configuration is shown below.  You may override this token type to
775 something applicable for your situation:
776 .INDENT 0.0
777 .INDENT 3.5
778 .sp
779 .nf
780 .ft C
781 [otp]
782     DEFAULT = {
783         strip_realm = false
784     }
785 .ft P
786 .fi
787 .UNINDENT
788 .UNINDENT
789 .SH PKINIT OPTIONS
790 .sp
791 \fBNOTE:\fP
792 .INDENT 0.0
793 .INDENT 3.5
794 The following are pkinit\-specific options.  These values may
795 be specified in [kdcdefaults] as global defaults, or within
796 a realm\-specific subsection of [realms].  Also note that a
797 realm\-specific value over\-rides, does not add to, a generic
798 [kdcdefaults] specification.  The search order is:
799 .UNINDENT
800 .UNINDENT
801 .INDENT 0.0
802 .IP 1. 3
803 realm\-specific subsection of [realms]:
804 .INDENT 3.0
805 .INDENT 3.5
806 .sp
807 .nf
808 .ft C
809 [realms]
810     EXAMPLE.COM = {
811         pkinit_anchors = FILE:/usr/local/example.com.crt
812     }
813 .ft P
814 .fi
815 .UNINDENT
816 .UNINDENT
817 .IP 2. 3
818 generic value in the [kdcdefaults] section:
819 .INDENT 3.0
820 .INDENT 3.5
821 .sp
822 .nf
823 .ft C
824 [kdcdefaults]
825     pkinit_anchors = DIR:/usr/local/generic_trusted_cas/
826 .ft P
827 .fi
828 .UNINDENT
829 .UNINDENT
830 .UNINDENT
831 .sp
832 For information about the syntax of some of these options, see
833 \fISpecifying PKINIT identity information\fP in
834 \fIkrb5.conf(5)\fP\&.
835 .INDENT 0.0
836 .TP
837 .B \fBpkinit_anchors\fP
838 Specifies the location of trusted anchor (root) certificates which
839 the KDC trusts to sign client certificates.  This option is
840 required if pkinit is to be supported by the KDC.  This option may
841 be specified multiple times.
842 .TP
843 .B \fBpkinit_dh_min_bits\fP
844 Specifies the minimum number of bits the KDC is willing to accept
845 for a client\(aqs Diffie\-Hellman key.  The default is 2048.
846 .TP
847 .B \fBpkinit_allow_upn\fP
848 Specifies that the KDC is willing to accept client certificates
849 with the Microsoft UserPrincipalName (UPN) Subject Alternative
850 Name (SAN).  This means the KDC accepts the binding of the UPN in
851 the certificate to the Kerberos principal name.  The default value
852 is false.
853 .sp
854 Without this option, the KDC will only accept certificates with
855 the id\-pkinit\-san as defined in \fI\%RFC 4556\fP\&.  There is currently
856 no option to disable SAN checking in the KDC.
857 .TP
858 .B \fBpkinit_eku_checking\fP
859 This option specifies what Extended Key Usage (EKU) values the KDC
860 is willing to accept in client certificates.  The values
861 recognized in the kdc.conf file are:
862 .INDENT 7.0
863 .TP
864 .B \fBkpClientAuth\fP
865 This is the default value and specifies that client
866 certificates must have the id\-pkinit\-KPClientAuth EKU as
867 defined in \fI\%RFC 4556\fP\&.
868 .TP
869 .B \fBscLogin\fP
870 If scLogin is specified, client certificates with the
871 Microsoft Smart Card Login EKU (id\-ms\-kp\-sc\-logon) will be
872 accepted.
873 .TP
874 .B \fBnone\fP
875 If none is specified, then client certificates will not be
876 checked to verify they have an acceptable EKU.  The use of
877 this option is not recommended.
878 .UNINDENT
879 .TP
880 .B \fBpkinit_identity\fP
881 Specifies the location of the KDC\(aqs X.509 identity information.
882 This option is required if pkinit is to be supported by the KDC.
883 .TP
884 .B \fBpkinit_indicator\fP
885 Specifies an authentication indicator to include in the ticket if
886 pkinit is used to authenticate.  This option may be specified
887 multiple times.  (New in release 1.14.)
888 .TP
889 .B \fBpkinit_kdc_ocsp\fP
890 Specifies the location of the KDC\(aqs OCSP.
891 .TP
892 .B \fBpkinit_pool\fP
893 Specifies the location of intermediate certificates which may be
894 used by the KDC to complete the trust chain between a client\(aqs
895 certificate and a trusted anchor.  This option may be specified
896 multiple times.
897 .TP
898 .B \fBpkinit_revoke\fP
899 Specifies the location of Certificate Revocation List (CRL)
900 information to be used by the KDC when verifying the validity of
901 client certificates.  This option may be specified multiple times.
902 .TP
903 .B \fBpkinit_require_crl_checking\fP
904 The default certificate verification process will always check the
905 available revocation information to see if a certificate has been
906 revoked.  If a match is found for the certificate in a CRL,
907 verification fails.  If the certificate being verified is not
908 listed in a CRL, or there is no CRL present for its issuing CA,
909 and \fBpkinit_require_crl_checking\fP is false, then verification
910 succeeds.
911 .sp
912 However, if \fBpkinit_require_crl_checking\fP is true and there is
913 no CRL information available for the issuing CA, then verification
914 fails.
915 .sp
916 \fBpkinit_require_crl_checking\fP should be set to true if the
917 policy is such that up\-to\-date CRLs must be present for every CA.
918 .UNINDENT
919 .SH ENCRYPTION TYPES
920 .sp
921 Any tag in the configuration files which requires a list of encryption
922 types can be set to some combination of the following strings.
923 Encryption types marked as "weak" are available for compatibility but
924 not recommended for use.
925 .TS
926 center;
927 |l|l|.
928 _
929 T{
930 des\-cbc\-crc
931 T}      T{
932 DES cbc mode with CRC\-32 (weak)
933 T}
934 _
935 T{
936 des\-cbc\-md4
937 T}      T{
938 DES cbc mode with RSA\-MD4 (weak)
939 T}
940 _
941 T{
942 des\-cbc\-md5
943 T}      T{
944 DES cbc mode with RSA\-MD5 (weak)
945 T}
946 _
947 T{
948 des\-cbc\-raw
949 T}      T{
950 DES cbc mode raw (weak)
951 T}
952 _
953 T{
954 des3\-cbc\-raw
955 T}      T{
956 Triple DES cbc mode raw (weak)
957 T}
958 _
959 T{
960 des3\-cbc\-sha1 des3\-hmac\-sha1 des3\-cbc\-sha1\-kd
961 T}      T{
962 Triple DES cbc mode with HMAC/sha1
963 T}
964 _
965 T{
966 des\-hmac\-sha1
967 T}      T{
968 DES with HMAC/sha1 (weak)
969 T}
970 _
971 T{
972 aes256\-cts\-hmac\-sha1\-96 aes256\-cts aes256\-sha1
973 T}      T{
974 AES\-256 CTS mode with 96\-bit SHA\-1 HMAC
975 T}
976 _
977 T{
978 aes128\-cts\-hmac\-sha1\-96 aes128\-cts aes128\-sha1
979 T}      T{
980 AES\-128 CTS mode with 96\-bit SHA\-1 HMAC
981 T}
982 _
983 T{
984 aes256\-cts\-hmac\-sha384\-192 aes256\-sha2
985 T}      T{
986 AES\-256 CTS mode with 192\-bit SHA\-384 HMAC
987 T}
988 _
989 T{
990 aes128\-cts\-hmac\-sha256\-128 aes128\-sha2
991 T}      T{
992 AES\-128 CTS mode with 128\-bit SHA\-256 HMAC
993 T}
994 _
995 T{
996 arcfour\-hmac rc4\-hmac arcfour\-hmac\-md5
997 T}      T{
998 RC4 with HMAC/MD5
999 T}
1000 _
1001 T{
1002 arcfour\-hmac\-exp rc4\-hmac\-exp arcfour\-hmac\-md5\-exp
1003 T}      T{
1004 Exportable RC4 with HMAC/MD5 (weak)
1005 T}
1006 _
1007 T{
1008 camellia256\-cts\-cmac camellia256\-cts
1009 T}      T{
1010 Camellia\-256 CTS mode with CMAC
1011 T}
1012 _
1013 T{
1014 camellia128\-cts\-cmac camellia128\-cts
1015 T}      T{
1016 Camellia\-128 CTS mode with CMAC
1017 T}
1018 _
1019 T{
1020 des
1021 T}      T{
1022 The DES family: des\-cbc\-crc, des\-cbc\-md5, and des\-cbc\-md4 (weak)
1023 T}
1024 _
1025 T{
1026 des3
1027 T}      T{
1028 The triple DES family: des3\-cbc\-sha1
1029 T}
1030 _
1031 T{
1032 aes
1033 T}      T{
1034 The AES family: aes256\-cts\-hmac\-sha1\-96 and aes128\-cts\-hmac\-sha1\-96
1035 T}
1036 _
1037 T{
1038 rc4
1039 T}      T{
1040 The RC4 family: arcfour\-hmac
1041 T}
1042 _
1043 T{
1044 camellia
1045 T}      T{
1046 The Camellia family: camellia256\-cts\-cmac and camellia128\-cts\-cmac
1047 T}
1048 _
1049 .TE
1050 .sp
1051 The string \fBDEFAULT\fP can be used to refer to the default set of
1052 types for the variable in question.  Types or families can be removed
1053 from the current list by prefixing them with a minus sign ("\-").
1054 Types or families can be prefixed with a plus sign ("+") for symmetry;
1055 it has the same meaning as just listing the type or family.  For
1056 example, "\fBDEFAULT \-des\fP" would be the default set of encryption
1057 types with DES types removed, and "\fBdes3 DEFAULT\fP" would be the
1058 default set of encryption types with triple DES types moved to the
1059 front.
1060 .sp
1061 While \fBaes128\-cts\fP and \fBaes256\-cts\fP are supported for all Kerberos
1062 operations, they are not supported by very old versions of our GSSAPI
1063 implementation (krb5\-1.3.1 and earlier).  Services running versions of
1064 krb5 without AES support must not be given keys of these encryption
1065 types in the KDC database.
1066 .sp
1067 The \fBaes128\-sha2\fP and \fBaes256\-sha2\fP encryption types are new in
1068 release 1.15.  Services running versions of krb5 without support for
1069 these newer encryption types must not be given keys of these
1070 encryption types in the KDC database.
1071 .SH KEYSALT LISTS
1072 .sp
1073 Kerberos keys for users are usually derived from passwords.  Kerberos
1074 commands and configuration parameters that affect generation of keys
1075 take lists of enctype\-salttype ("keysalt") pairs, known as \fIkeysalt
1076 lists\fP\&.  Each keysalt pair is an enctype name followed by a salttype
1077 name, in the format \fIenc\fP:\fIsalt\fP\&.  Individual keysalt list members are
1078 separated by comma (",") characters or space characters.  For example:
1079 .INDENT 0.0
1080 .INDENT 3.5
1081 .sp
1082 .nf
1083 .ft C
1084 kadmin \-e aes256\-cts:normal,aes128\-cts:normal
1085 .ft P
1086 .fi
1087 .UNINDENT
1088 .UNINDENT
1089 .sp
1090 would start up kadmin so that by default it would generate
1091 password\-derived keys for the \fBaes256\-cts\fP and \fBaes128\-cts\fP
1092 encryption types, using a \fBnormal\fP salt.
1093 .sp
1094 To ensure that people who happen to pick the same password do not have
1095 the same key, Kerberos 5 incorporates more information into the key
1096 using something called a salt.  The supported salt types are as
1097 follows:
1098 .TS
1099 center;
1100 |l|l|.
1101 _
1102 T{
1103 normal
1104 T}      T{
1105 default for Kerberos Version 5
1106 T}
1107 _
1108 T{
1109 v4
1110 T}      T{
1111 the only type used by Kerberos Version 4 (no salt)
1112 T}
1113 _
1114 T{
1115 norealm
1116 T}      T{
1117 same as the default, without using realm information
1118 T}
1119 _
1120 T{
1121 onlyrealm
1122 T}      T{
1123 uses only realm information as the salt
1124 T}
1125 _
1126 T{
1127 afs3
1128 T}      T{
1129 AFS version 3, only used for compatibility with Kerberos 4 in AFS
1130 T}
1131 _
1132 T{
1133 special
1134 T}      T{
1135 generate a random salt
1136 T}
1137 _
1138 .TE
1139 .SH SAMPLE KDC.CONF FILE
1140 .sp
1141 Here\(aqs an example of a kdc.conf file:
1142 .INDENT 0.0
1143 .INDENT 3.5
1144 .sp
1145 .nf
1146 .ft C
1147 [kdcdefaults]
1148     kdc_listen = 88
1149     kdc_tcp_listen = 88
1150 [realms]
1151     ATHENA.MIT.EDU = {
1152         kadmind_port = 749
1153         max_life = 12h 0m 0s
1154         max_renewable_life = 7d 0h 0m 0s
1155         master_key_type = aes256\-cts\-hmac\-sha1\-96
1156         supported_enctypes = aes256\-cts\-hmac\-sha1\-96:normal aes128\-cts\-hmac\-sha1\-96:normal
1157         database_module = openldap_ldapconf
1158     }
1159
1160 [logging]
1161     kdc = FILE:/usr/local/var/krb5kdc/kdc.log
1162     admin_server = FILE:/usr/local/var/krb5kdc/kadmin.log
1163
1164 [dbdefaults]
1165     ldap_kerberos_container_dn = cn=krbcontainer,dc=mit,dc=edu
1166
1167 [dbmodules]
1168     openldap_ldapconf = {
1169         db_library = kldap
1170         disable_last_success = true
1171         ldap_kdc_dn = "cn=krbadmin,dc=mit,dc=edu"
1172             # this object needs to have read rights on
1173             # the realm container and principal subtrees
1174         ldap_kadmind_dn = "cn=krbadmin,dc=mit,dc=edu"
1175             # this object needs to have read and write rights on
1176             # the realm container and principal subtrees
1177         ldap_service_password_file = /etc/kerberos/service.keyfile
1178         ldap_servers = ldaps://kerberos.mit.edu
1179         ldap_conns_per_server = 5
1180     }
1181 .ft P
1182 .fi
1183 .UNINDENT
1184 .UNINDENT
1185 .SH FILES
1186 .sp
1187 \fB@LOCALSTATEDIR@\fP\fB/krb5kdc\fP\fB/kdc.conf\fP
1188 .SH SEE ALSO
1189 .sp
1190 \fIkrb5.conf(5)\fP, \fIkrb5kdc(8)\fP, \fIkadm5.acl(5)\fP
1191 .SH AUTHOR
1192 MIT
1193 .SH COPYRIGHT
1194 1985-2017, MIT
1195 .\" Generated by docutils manpage writer.
1196 .