1KDC.CONF(5)                      MIT Kerberos                      KDC.CONF(5)
2
3
4

NAME

6       kdc.conf - Kerberos V5 KDC configuration file
7
8       The kdc.conf file supplements krb5.conf(5) for programs which are typi‐
9       cally only used on a KDC, such as the krb5kdc(8) and kadmind(8) daemons
10       and  the  kdb5_util(8)  program.  Relations documented here may also be
11       specified in krb5.conf; for the KDC programs mentioned,  krb5.conf  and
12       kdc.conf will be merged into a single configuration profile.
13
14       Normally,  the  kdc.conf  file  is  found  in  the KDC state directory,
15       /var/kerberos/krb5kdc.  You can override the default location  by  set‐
16       ting the environment variable KRB5_KDC_PROFILE.
17
18       Please  note that you need to restart the KDC daemon for any configura‐
19       tion changes to take effect.
20

STRUCTURE

22       The kdc.conf file is set up in the  same  format  as  the  krb5.conf(5)
23       file.
24

SECTIONS

26       The kdc.conf file may contain the following sections:
27
28                    ┌──────────────┬────────────────────────────┐
29[kdcdefaults] │ Default   values  for  KDC │
30                    │              │ behavior                   │
31                    ├──────────────┼────────────────────────────┤
32[realms]      │ Realm-specific    database │
33                    │              │ configuration and settings │
34                    ├──────────────┼────────────────────────────┤
35[dbdefaults]  │ Default database settings  │
36                    ├──────────────┼────────────────────────────┤
37[dbmodules]   │ Per-database settings      │
38                    ├──────────────┼────────────────────────────┤
39[logging]     │ Controls how Kerberos dae‐ │
40                    │              │ mons perform logging       │
41                    └──────────────┴────────────────────────────┘
42
43   [kdcdefaults]
44       With two exceptions, relations in  the  [kdcdefaults]  section  specify
45       default  values for realm variables, to be used if the [realms] subsec‐
46       tion does not contain a relation for the tag.  See the [realms] section
47       for the definitions of these relations.
48
49       · host_based_services
50
51       · kdc_listen
52
53       · kdc_ports
54
55       · kdc_tcp_listen
56
57       · kdc_tcp_ports
58
59       · no_host_referral
60
61       · restrict_anonymous_to_tgt
62
63       kdc_max_dgram_reply_size
64              Specifies  the  maximum  packet  size that can be sent over UDP.
65              The default value is 4096 bytes.
66
67       kdc_tcp_listen_backlog
68              (Integer.)  Set the size of the listen queue length for the  KDC
69              daemon.   The  value may be limited by OS settings.  The default
70              value is 5.
71
72   [realms]
73       Each tag in the [realms] section is the name of a Kerberos realm.   The
74       value of the tag is a subsection where the relations define KDC parame‐
75       ters for that particular realm.  The following  example  shows  how  to
76       define one parameter for the ATHENA.MIT.EDU realm:
77
78          [realms]
79              ATHENA.MIT.EDU = {
80                  max_renewable_life = 7d 0h 0m 0s
81              }
82
83       The following tags may be specified in a [realms] subsection:
84
85       acl_file
86              (String.)   Location  of  the access control list file that kad‐
87              mind(8) uses to determine which  principals  are  allowed  which
88              permissions  on  the  Kerberos  database.   The default value is
89              /var/kerberos/krb5kdc/kadm5.acl.  For more information  on  Ker‐
90              beros ACL file see kadm5.acl(5).
91
92       database_module
93              (String.)  This relation indicates the name of the configuration
94              section under [dbmodules] for database-specific parameters  used
95              by  the  loadable  database  library.   The default value is the
96              realm name.  If  this  configuration  section  does  not  exist,
97              default values will be used for all database parameters.
98
99       database_name
100              (String,  deprecated.)   This relation specifies the location of
101              the Kerberos database for this realm, if the DB2 module is being
102              used  and the [dbmodules] configuration section does not specify
103              a   database   name.    The   default   value    is    /var/ker‐
104              beros/krb5kdc/principal.
105
106       default_principal_expiration
107              (abstime  string.)   Specifies  the  default  expiration date of
108              principals created in this realm.  The default value is 0, which
109              means no expiration date.
110
111       default_principal_flags
112              (Flag  string.)   Specifies the default attributes of principals
113              created in  this  realm.   The  format  for  this  string  is  a
114              comma-separated  list  of  flags, with '+' before each flag that
115              should be enabled and '-' before each flag that should  be  dis‐
116              abled.   The  postdateable,  forwardable,  tgt-based, renewable,
117              proxiable, dup-skey, allow-tickets, and service flags default to
118              enabled.
119
120              There are a number of possible flags:
121
122              allow-tickets
123                     Enabling  this flag means that the KDC will issue tickets
124                     for this  principal.   Disabling  this  flag  essentially
125                     deactivates the principal within this realm.
126
127              dup-skey
128                     Enabling  this flag allows the principal to obtain a ses‐
129                     sion  key  for  another  user,  permitting   user-to-user
130                     authentication for this principal.
131
132              forwardable
133                     Enabling  this  flag  allows the principal to obtain for‐
134                     wardable tickets.
135
136              hwauth If this flag is enabled, then the principal  is  required
137                     to preauthenticate using a hardware device before receiv‐
138                     ing any tickets.
139
140              no-auth-data-required
141                     Enabling this flag prevents  PAC  or  AD-SIGNEDPATH  data
142                     from being added to service tickets for the principal.
143
144              ok-as-delegate
145                     If this flag is enabled, it hints the client that creden‐
146                     tials can and should be delegated when authenticating  to
147                     the service.
148
149              ok-to-auth-as-delegate
150                     Enabling  this  flag  allows the principal to use S4USelf
151                     tickets.
152
153              postdateable
154                     Enabling this flag allows the principal to  obtain  post‐
155                     dateable tickets.
156
157              preauth
158                     If  this flag is enabled on a client principal, then that
159                     principal is  required  to  preauthenticate  to  the  KDC
160                     before  receiving  any  tickets.  On a service principal,
161                     enabling this flag means that service  tickets  for  this
162                     principal  will only be issued to clients with a TGT that
163                     has the preauthenticated bit set.
164
165              proxiable
166                     Enabling this flag allows the principal to  obtain  proxy
167                     tickets.
168
169              pwchange
170                     Enabling  this  flag  forces  a  password change for this
171                     principal.
172
173              pwservice
174                     If this flag is enabled, it marks  this  principal  as  a
175                     password  change  service.   This  should only be used in
176                     special cases, for example,  if  a  user's  password  has
177                     expired,  then the user has to get tickets for that prin‐
178                     cipal without going through the normal password authenti‐
179                     cation in order to be able to change the password.
180
181              renewable
182                     Enabling  this flag allows the principal to obtain renew‐
183                     able tickets.
184
185              service
186                     Enabling this flag allows the the KDC  to  issue  service
187                     tickets for this principal.
188
189              tgt-based
190                     Enabling  this  flag allows a principal to obtain tickets
191                     based on a ticket-granting-ticket, rather than  repeating
192                     the  authentication  process  that was used to obtain the
193                     TGT.
194
195       dict_file
196              (String.)  Location of the dictionary  file  containing  strings
197              that  are not allowed as passwords.  The file should contain one
198              string per line, with no  additional  whitespace.   If  none  is
199              specified or if there is no policy assigned to the principal, no
200              dictionary checks of passwords will be performed.
201
202       host_based_services
203              (Whitespace- or comma-separated  list.)   Lists  services  which
204              will get host-based referral processing even if the server prin‐
205              cipal is not marked as host-based by the client.
206
207       iprop_enable
208              (Boolean value.)  Specifies whether incremental database  propa‐
209              gation is enabled.  The default value is false.
210
211       iprop_master_ulogsize
212              (Integer.)   Specifies  the  maximum number of log entries to be
213              retained for incremental  propagation.   The  default  value  is
214              1000.  Prior to release 1.11, the maximum value was 2500.
215
216       iprop_slave_poll
217              (Delta  time  string.)   Specifies how often the slave KDC polls
218              for new updates from the master.  The default value is 2m  (that
219              is, two minutes).
220
221       iprop_listen
222              (Whitespace-  or comma-separated list.)  Specifies the iprop RPC
223              listening addresses and/or  ports  for  the  kadmind(8)  daemon.
224              Each  entry  may  be  an interface address, a port number, or an
225              address and port number separated by a colon.   If  the  address
226              contains  colons,  enclose it in square brackets.  If no address
227              is specified, the wildcard address is used.  If kadmind fails to
228              bind  to  any of the specified addresses, it will fail to start.
229              The default (when iprop_enable is true) is to bind to the  wild‐
230              card  address  at  the  port  specified  in  iprop_port.  New in
231              release 1.15.
232
233       iprop_port
234              (Port number.)  Specifies the port number to be used for  incre‐
235              mental propagation.  When iprop_enable is true, this relation is
236              required in the slave configuration file, and this  relation  or
237              iprop_listen  is  required  in the master configuration file, as
238              there is no default port  number.   Port  numbers  specified  in
239              iprop_listen entries will override this port number for the kad‐
240              mind(8) daemon.
241
242       iprop_resync_timeout
243              (Delta time string.)  Specifies the amount of time to wait for a
244              full propagation to complete.  This is optional in configuration
245              files, and is used by slave KDCs only.  The default value  is  5
246              minutes (5m).  New in release 1.11.
247
248       iprop_logfile
249              (File  name.)  Specifies where the update log file for the realm
250              database is to be stored.  The  default  is  to  use  the  data‐
251              base_name entry from the realms section of the krb5 config file,
252              with .ulog appended.  (NOTE: If database_name isn't specified in
253              the  realms  section, perhaps because the LDAP database back end
254              is being used, or the file name is specified in the  [dbmodules]
255              section,  then the hard-coded default for database_name is used.
256              Determination of the iprop_logfile default value  will  not  use
257              values from the [dbmodules] section.)
258
259       kadmind_listen
260              (Whitespace- or comma-separated list.)  Specifies the kadmin RPC
261              listening addresses and/or  ports  for  the  kadmind(8)  daemon.
262              Each  entry  may  be  an interface address, a port number, or an
263              address and port number separated by a colon.   If  the  address
264              contains  colons,  enclose it in square brackets.  If no address
265              is specified, the wildcard address is used.  If kadmind fails to
266              bind  to  any of the specified addresses, it will fail to start.
267              The default is to bind to the wildcard address at the port spec‐
268              ified  in  kadmind_port, or the standard kadmin port (749).  New
269              in release 1.15.
270
271       kadmind_port
272              (Port number.)  Specifies the port on which the kadmind(8)  dae‐
273              mon is to listen for this realm.  Port numbers specified in kad‐
274              mind_listen  entries  will  override  this  port  number.    The
275              assigned port for kadmind is 749, which is used by default.
276
277       key_stash_file
278              (String.)   Specifies the location where the master key has been
279              stored  (via  kdb5_util  stash).   The  default   is   /var/ker‐
280              beros/krb5kdc/.k5.REALM, where REALM is the Kerberos realm.
281
282       kdc_listen
283              (Whitespace-  or  comma-separated list.)  Specifies the UDP lis‐
284              tening addresses and/or ports for the krb5kdc(8)  daemon.   Each
285              entry  may be an interface address, a port number, or an address
286              and port number separated by a colon.  If the  address  contains
287              colons,  enclose it in square brackets.  If no address is speci‐
288              fied, the wildcard address is used.  If no  port  is  specified,
289              the standard port (88) is used.  If the KDC daemon fails to bind
290              to any of the specified addresses, it will fail to  start.   The
291              default is to bind to the wildcard address on the standard port.
292              New in release 1.15.
293
294       kdc_ports
295              (Whitespace- or comma-separated  list,  deprecated.)   Prior  to
296              release  1.15,  this relation lists the ports for the krb5kdc(8)
297              daemon to listen on for  UDP  requests.   In  release  1.15  and
298              later, it has the same meaning as kdc_listen if that relation is
299              not defined.
300
301       kdc_tcp_listen
302              (Whitespace- or comma-separated list.)  Specifies the  TCP  lis‐
303              tening  addresses  and/or ports for the krb5kdc(8) daemon.  Each
304              entry may be an interface address, a port number, or an  address
305              and  port  number separated by a colon.  If the address contains
306              colons, enclose it in square brackets.  If no address is  speci‐
307              fied,  the  wildcard  address is used.  If no port is specified,
308              the standard port (88) is used.  To disable  listening  on  TCP,
309              set  this relation to the empty string with kdc_tcp_listen = "".
310              If the KDC  daemon  fails  to  bind  to  any  of  the  specified
311              addresses, it will fail to start.  The default is to bind to the
312              wildcard address on the standard port.  New in release 1.15.
313
314       kdc_tcp_ports
315              (Whitespace- or comma-separated  list,  deprecated.)   Prior  to
316              release  1.15,  this relation lists the ports for the krb5kdc(8)
317              daemon to listen on for  UDP  requests.   In  release  1.15  and
318              later,  it  has the same meaning as kdc_tcp_listen if that rela‐
319              tion is not defined.
320
321       kpasswd_listen
322              (Comma-separated  list.)   Specifies   the   kpasswd   listening
323              addresses  and/or  ports  for the kadmind(8) daemon.  Each entry
324              may be an interface address, a port number, or  an  address  and
325              port  number  separated  by  a  colon.   If the address contains
326              colons, enclose it in square brackets.  If no address is  speci‐
327              fied, the wildcard address is used.  If kadmind fails to bind to
328              any of the specified addresses, it  will  fail  to  start.   The
329              default is to bind to the wildcard address at the port specified
330              in kpasswd_port, or the standard kpasswd  port  (464).   New  in
331              release 1.15.
332
333       kpasswd_port
334              (Port  number.)  Specifies the port on which the kadmind(8) dae‐
335              mon is to listen for password change requests  for  this  realm.
336              Port  numbers  specified in kpasswd_listen entries will override
337              this  port  number.   The  assigned  port  for  password  change
338              requests is 464, which is used by default.
339
340       master_key_name
341              (String.)   Specifies  the name of the principal associated with
342              the master key.  The default is K/M.
343
344       master_key_type
345              (Key type string.)  Specifies the master key's  key  type.   The
346              default  value  for this is aes256-cts-hmac-sha1-96.  For a list
347              of all possible values, see Encryption types.
348
349       max_life
350              (duration string.)  Specifies the maximum time period for  which
351              a  ticket  may  be valid in this realm.  The default value is 24
352              hours.
353
354       max_renewable_life
355              (duration string.)  Specifies the  maximum  time  period  during
356              which  a valid ticket may be renewed in this realm.  The default
357              value is 0.
358
359       no_host_referral
360              (Whitespace- or comma-separated list.)  Lists services to  block
361              from  getting host-based referral processing, even if the client
362              marks the server principal as host-based or the service is  also
363              listed  in  host_based_services.  no_host_referral = * will dis‐
364              able referral processing altogether.
365
366       des_crc_session_supported
367              (Boolean value).  If set to true, the KDC will assume that  ser‐
368              vice  principals  support  des-cbc-crc  for  session key enctype
369              negotiation purposes.  If allow_weak_crypto  in  libdefaults  is
370              false,  or  if des-cbc-crc is not a permitted enctype, then this
371              variable has no effect.  Defaults to true.  New in release 1.11.
372
373       reject_bad_transit
374              (Boolean value.)  If set to true, the KDC will check the list of
375              transited  realms  for  cross-realm  tickets against the transit
376              path computed from the realm names and the  capaths  section  of
377              its  krb5.conf(5)  file;  if the path in the ticket to be issued
378              contains any realms not in the computed path,  the  ticket  will
379              not  be  issued,  and  an  error  will be returned to the client
380              instead.  If this value is set to false, such  tickets  will  be
381              issued anyways, and it will be left up to the application server
382              to validate the realm transit path.
383
384              If the disable-transited-check  flag  is  set  in  the  incoming
385              request,  this  check  is  not  performed  at  all.   Having the
386              reject_bad_transit option will cause such ticket requests to  be
387              rejected always.
388
389              This  transit  path  checking  and  config file option currently
390              apply only to TGS requests.
391
392              The default value is true.
393
394       restrict_anonymous_to_tgt
395              (Boolean value.)  If set to true, the  KDC  will  reject  ticket
396              requests  from  anonymous principals to service principals other
397              than the realm's ticket-granting service.   This  option  allows
398              anonymous  PKINIT  to  be  enabled for use as FAST armor tickets
399              without allowing  anonymous  authentication  to  services.   The
400              default value is false.  New in release 1.9.
401
402       supported_enctypes
403              (List of key:salt strings.)  Specifies the default key/salt com‐
404              binations of principals for this realm.  Any principals  created
405              through  kadmin(1)  will  have keys of these types.  The default
406              value   for   this   tag    is    aes256-cts-hmac-sha1-96:normal
407              aes128-cts-hmac-sha1-96:normal     des3-cbc-sha1:normal     arc‐
408              four-hmac-md5:normal.  For lists of possible values, see Keysalt
409              lists.
410
411   [dbdefaults]
412       The  [dbdefaults]  section  specifies  default values for some database
413       parameters, to be used if the [dbmodules] subsection does not contain a
414       relation  for the tag.  See the [dbmodules] section for the definitions
415       of these relations.
416
417       · ldap_kerberos_container_dn
418
419       · ldap_kdc_dn
420
421       · ldap_kdc_sasl_authcid
422
423       · ldap_kdc_sasl_authzid
424
425       · ldap_kdc_sasl_mech
426
427       · ldap_kdc_sasl_realm
428
429       · ldap_kadmind_dn
430
431       · ldap_kadmind_sasl_authcid
432
433       · ldap_kadmind_sasl_authzid
434
435       · ldap_kadmind_sasl_mech
436
437       · ldap_kadmind_sasl_realm
438
439       · ldap_service_password_file
440
441       · ldap_servers
442
443       · ldap_conns_per_server
444
445   [dbmodules]
446       The [dbmodules] section contains parameters used by  the  KDC  database
447       library  and  database modules.  Each tag in the [dbmodules] section is
448       the name of a Kerberos realm or a section name specified by  a  realm's
449       database_module  parameter.   The following example shows how to define
450       one database parameter for the ATHENA.MIT.EDU realm:
451
452          [dbmodules]
453              ATHENA.MIT.EDU = {
454                  disable_last_success = true
455              }
456
457       The following tags may be specified in a [dbmodules] subsection:
458
459       database_name
460              This DB2-specific tag indicates the location of the database  in
461              the filesystem.  The default is /var/kerberos/krb5kdc/principal.
462
463       db_library
464              This  tag  indicates  the  name of the loadable database module.
465              The value should be db2 for the DB2 module  and  kldap  for  the
466              LDAP module.
467
468       disable_last_success
469              If  set  to true, suppresses KDC updates to the "Last successful
470              authentication" field of principal entries requiring  preauthen‐
471              tication.   Setting this flag may improve performance.  (Princi‐
472              pal entries which do not require preauthentication never  update
473              the  "Last successful authentication" field.).  First introduced
474              in release 1.9.
475
476       disable_lockout
477              If set to true, suppresses  KDC  updates  to  the  "Last  failed
478              authentication" and "Failed password attempts" fields of princi‐
479              pal entries requiring preauthentication.  Setting this flag  may
480              improve  performance,  but also disables account lockout.  First
481              introduced in release 1.9.
482
483       ldap_conns_per_server
484              This LDAP-specific tag indicates the number of connections to be
485              maintained per LDAP server.
486
487       ldap_kdc_dn and ldap_kadmind_dn
488              These  LDAP-specific tags indicate the default DN for binding to
489              the LDAP server.  The krb5kdc(8) daemon uses ldap_kdc_dn,  while
490              the  kadmind(8)  daemon  and  other  administrative programs use
491              ldap_kadmind_dn.  The kadmind DN must have the  rights  to  read
492              and  write  the  Kerberos data in the LDAP database.  The KDC DN
493              must have the  same  rights,  unless  disable_lockout  and  dis‐
494              able_last_success  are true, in which case it only needs to have
495              rights to read the Kerberos data.  These tags are ignored  if  a
496              SASL  mechanism  is  set  with  ldap_kdc_sasl_mech  or ldap_kad‐
497              mind_sasl_mech.
498
499       ldap_kdc_sasl_mech and ldap_kadmind_sasl_mech
500              These LDAP-specific tags specify the  SASL  mechanism  (such  as
501              EXTERNAL)  to  use  when  binding  to  the  LDAP server.  New in
502              release 1.13.
503
504       ldap_kdc_sasl_authcid and ldap_kadmind_sasl_authcid
505              These LDAP-specific tags specify the SASL  authentication  iden‐
506              tity to use when binding to the LDAP server.  Not all SASL mech‐
507              anisms require an authentication identity.  If the  SASL  mecha‐
508              nism  requires  a  secret (such as the password for DIGEST-MD5),
509              these tags also determine the name within the ldap_service_pass‐
510              word_file where the secret is stashed.  New in release 1.13.
511
512       ldap_kdc_sasl_authzid and ldap_kadmind_sasl_authzid
513              These LDAP-specific tags specify the SASL authorization identity
514              to use when binding to the LDAP server.  In  most  circumstances
515              they do not need to be specified.  New in release 1.13.
516
517       ldap_kdc_sasl_realm and ldap_kadmind_sasl_realm
518              These  LDAP-specific  tags  specify  the  SASL realm to use when
519              binding to the LDAP server.  In most circumstances they  do  not
520              need to be set.  New in release 1.13.
521
522       ldap_kerberos_container_dn
523              This  LDAP-specific tag indicates the DN of the container object
524              where the realm objects will be located.
525
526       ldap_servers
527              This LDAP-specific tag indicates the list of LDAP  servers  that
528              the  Kerberos  servers can connect to.  The list of LDAP servers
529              is whitespace-separated.  The LDAP server is specified by a LDAP
530              URI.   It is recommended to use ldapi: or ldaps: URLs to connect
531              to the LDAP server.
532
533       ldap_service_password_file
534              This LDAP-specific tag indicates the file containing the stashed
535              passwords   (created   by  kdb5_ldap_util  stashsrvpw)  for  the
536              ldap_kdc_dn   and   ldap_kadmind_dn   objects,   or   for    the
537              ldap_kdc_sasl_authcid  or  ldap_kadmind_sasl_authcid  names  for
538              SASL authentication.  This file must be kept secure.
539
540       unlockiter
541              If set to true, this DB2-specific tag  causes  iteration  opera‐
542              tions to release the database lock while processing each princi‐
543              pal.  Setting this flag to true can prevent extended blocking of
544              KDC  or  kadmin  operations when dumps of large databases are in
545              progress.  First introduced in release 1.13.
546
547       The following tag may be specified directly in the [dbmodules]  section
548       to control where database modules are loaded from:
549
550       db_module_dir
551              This  tag  controls  where  the plugin system looks for database
552              modules.  The value should be an absolute path.
553
554   [logging]
555       The [logging] section indicates how krb5kdc(8) and  kadmind(8)  perform
556       logging.  It may contain the following relations:
557
558       admin_server
559              Specifies how kadmind(8) performs logging.
560
561       kdc    Specifies how krb5kdc(8) performs logging.
562
563       default
564              Specifies  how  either daemon performs logging in the absence of
565              relations specific to the daemon.
566
567       debug  (Boolean  value.)   Specifies  whether  debugging  messages  are
568              included  in  log outputs other than SYSLOG.  Debugging messages
569              are always included in the system log output because syslog per‐
570              forms  its  own priority filtering.  The default value is false.
571              New in release 1.15.
572
573       Logging specifications may have the following forms:
574
575       FILE=filename or FILE:filename
576              This value causes the daemon's logging messages  to  go  to  the
577              filename.   If  the = form is used, the file is overwritten.  If
578              the : form is used, the file is appended to.
579
580       STDERR This value causes the daemon's logging messages  to  go  to  its
581              standard error stream.
582
583       CONSOLE
584              This  value  causes  the  daemon's logging messages to go to the
585              console, if the system supports it.
586
587       DEVICE=<devicename>
588              This causes the daemon's logging messages to go to the specified
589              device.
590
591       SYSLOG[:severity[:facility]]
592              This  causes  the  daemon's logging messages to go to the system
593              log.
594
595              The severity argument specifies the default severity  of  system
596              log  messages.  This may be any of the following severities sup‐
597              ported by the syslog(3) call,  minus  the  LOG_  prefix:  EMERG,
598              ALERT, CRIT, ERR, WARNING, NOTICE, INFO, and DEBUG.
599
600              The  facility  argument  specifies  the facility under which the
601              messages are logged.  This may be any of the  following  facili‐
602              ties  supported  by  the  syslog(3)  call minus the LOG_ prefix:
603              KERN, USER, MAIL, DAEMON,  AUTH,  LPR,  NEWS,  UUCP,  CRON,  and
604              LOCAL0 through LOCAL7.
605
606              If no severity is specified, the default is ERR.  If no facility
607              is specified, the default is AUTH.
608
609       In the following example, the logging messages from the KDC will go  to
610       the  console  and  to the system log under the facility LOG_DAEMON with
611       default severity of LOG_INFO; and the logging messages from the  admin‐
612       istrative  server  will be appended to the file /var/adm/kadmin.log and
613       sent to the device /dev/tty04.
614
615          [logging]
616              kdc = CONSOLE
617              kdc = SYSLOG:INFO:DAEMON
618              admin_server = FILE:/var/adm/kadmin.log
619              admin_server = DEVICE=/dev/tty04
620
621   [otp]
622       Each subsection of [otp] is the name of an OTP token  type.   The  tags
623       within  the  subsection  define the configuration required to forward a
624       One Time Password request to a RADIUS server.
625
626       For each token type, the following tags may be specified:
627
628       server This is the server to send the RADIUS request to.  It can  be  a
629              hostname  with  optional port, an ip address with optional port,
630              or a Unix domain  socket  address.   The  default  is  /var/ker‐
631              beros/krb5kdc/<name>.socket.
632
633       secret This  tag  indicates  a  filename  (which  may  be  relative  to
634              /var/kerberos/krb5kdc) containing the secret used to encrypt the
635              RADIUS  packets.   The secret should appear in the first line of
636              the file by itself; leading and trailing whitespace on the  line
637              will be removed.  If the value of server is a Unix domain socket
638              address, this tag is optional, and an empty secret will be  used
639              if it is not specified.  Otherwise, this tag is required.
640
641       timeout
642              An  integer which specifies the time in seconds during which the
643              KDC should attempt to contact the RADIUS server.   This  tag  is
644              the  total  time  across all retries and should be less than the
645              time which an OTP value remains valid for.   The  default  is  5
646              seconds.
647
648       retries
649              This  tag  specifies the number of retries to make to the RADIUS
650              server.  The default is 3 retries (4 tries).
651
652       strip_realm
653              If this tag is true, the principal without  the  realm  will  be
654              passed  to  the  RADIUS  server.   Otherwise,  the realm will be
655              included.  The default value is true.
656
657       indicator
658              This tag specifies an authentication indicator to be included in
659              the  ticket  if  this  token type is used to authenticate.  This
660              option may be specified multiple times.  (New in release 1.14.)
661
662       In the following example, requests are sent to a remote server via UDP:
663
664          [otp]
665              MyRemoteTokenType = {
666                  server = radius.mydomain.com:1812
667                  secret = SEmfiajf42$
668                  timeout = 15
669                  retries = 5
670                  strip_realm = true
671              }
672
673       An implicit default token type named DEFAULT is defined  for  when  the
674       per-principal configuration does not specify a token type.  Its config‐
675       uration is shown below.  You may override this token type to  something
676       applicable for your situation:
677
678          [otp]
679              DEFAULT = {
680                  strip_realm = false
681              }
682

PKINIT OPTIONS

684       NOTE:
685          The  following  are  pkinit-specific  options.   These values may be
686          specified  in  [kdcdefaults]  as  global  defaults,  or   within   a
687          realm-specific  subsection of [realms].  Also note that a realm-spe‐
688          cific value over-rides, does not add  to,  a  generic  [kdcdefaults]
689          specification.  The search order is:
690
691       1. realm-specific subsection of [realms]:
692
693             [realms]
694                 EXAMPLE.COM = {
695                     pkinit_anchors = FILE:/usr/local/example.com.crt
696                 }
697
698       2. generic value in the [kdcdefaults] section:
699
700             [kdcdefaults]
701                 pkinit_anchors = DIR:/usr/local/generic_trusted_cas/
702
703       For information about the syntax of some of these options, see Specify‐
704       ing PKINIT identity information in krb5.conf(5).
705
706       pkinit_anchors
707              Specifies the location of  trusted  anchor  (root)  certificates
708              which  the  KDC trusts to sign client certificates.  This option
709              is required if pkinit is to  be  supported  by  the  KDC.   This
710              option may be specified multiple times.
711
712       pkinit_dh_min_bits
713              Specifies  the  minimum  number  of  bits  the KDC is willing to
714              accept for a client's Diffie-Hellman key.  The default is 2048.
715
716       pkinit_allow_upn
717              Specifies that the KDC is willing to accept client  certificates
718              with  the  Microsoft UserPrincipalName (UPN) Subject Alternative
719              Name (SAN).  This means the KDC accepts the binding of  the  UPN
720              in  the certificate to the Kerberos principal name.  The default
721              value is false.
722
723              Without this option, the KDC will only accept certificates  with
724              the id-pkinit-san as defined in RFC 4556.  There is currently no
725              option to disable SAN checking in the KDC.
726
727       pkinit_eku_checking
728              This option specifies what Extended Key Usage (EKU)  values  the
729              KDC  is  willing  to  accept in client certificates.  The values
730              recognized in the kdc.conf file are:
731
732              kpClientAuth
733                     This is the default value and specifies that client  cer‐
734                     tificates  must  have  the  id-pkinit-KPClientAuth EKU as
735                     defined in RFC 4556.
736
737              scLogin
738                     If scLogin is specified, client certificates with the Mi‐
739                     crosoft  Smart Card Login EKU (id-ms-kp-sc-logon) will be
740                     accepted.
741
742              none   If none is specified, then client certificates  will  not
743                     be  checked  to  verify they have an acceptable EKU.  The
744                     use of this option is not recommended.
745
746       pkinit_identity
747              Specifies the location of the KDC's X.509 identity  information.
748              This option is required if pkinit is to be supported by the KDC.
749
750       pkinit_indicator
751              Specifies  an  authentication indicator to include in the ticket
752              if pkinit is used to authenticate.  This option may be specified
753              multiple times.  (New in release 1.14.)
754
755       pkinit_pool
756              Specifies the location of intermediate certificates which may be
757              used by the KDC to complete the trust chain between  a  client's
758              certificate  and a trusted anchor.  This option may be specified
759              multiple times.
760
761       pkinit_revoke
762              Specifies the location  of  Certificate  Revocation  List  (CRL)
763              information to be used by the KDC when verifying the validity of
764              client certificates.  This  option  may  be  specified  multiple
765              times.
766
767       pkinit_require_crl_checking
768              The  default  certificate verification process will always check
769              the available revocation information to see if a certificate has
770              been revoked.  If a match is found for the certificate in a CRL,
771              verification fails.  If the certificate being  verified  is  not
772              listed  in a CRL, or there is no CRL present for its issuing CA,
773              and pkinit_require_crl_checking is false, then verification suc‐
774              ceeds.
775
776              However,  if pkinit_require_crl_checking is true and there is no
777              CRL information available for the issuing CA, then  verification
778              fails.
779
780              pkinit_require_crl_checking  should be set to true if the policy
781              is such that up-to-date CRLs must be present for every CA.
782

ENCRYPTION TYPES

784       Any tag in the configuration files which requires a list of  encryption
785       types can be set to some combination of the following strings.  Encryp‐
786       tion types marked as "weak" are available  for  compatibility  but  not
787       recommended for use.
788
789              ┌───────────────────────────┬────────────────────────────┐
790              │des-cbc-crc                │ DES  cbc  mode with CRC-32 │
791              │                           │ (weak)                     │
792              ├───────────────────────────┼────────────────────────────┤
793              │des-cbc-md4                │ DES cbc mode with  RSA-MD4 │
794              │                           │ (weak)                     │
795              ├───────────────────────────┼────────────────────────────┤
796              │des-cbc-md5                │ DES  cbc mode with RSA-MD5 │
797              │                           │ (weak)                     │
798              ├───────────────────────────┼────────────────────────────┤
799              │des-cbc-raw                │ DES cbc mode raw (weak)    │
800              ├───────────────────────────┼────────────────────────────┤
801              │des3-cbc-raw               │ Triple DES  cbc  mode  raw │
802              │                           │ (weak)                     │
803              ├───────────────────────────┼────────────────────────────┤
804              │des3-cbc-sha1              │ Triple  DES  cbc mode with │
805              │des3-hmac-sha1             │ HMAC/sha1                  │
806              │des3-cbc-sha1-kd           │                            │
807              ├───────────────────────────┼────────────────────────────┤
808              │des-hmac-sha1              │ DES with HMAC/sha1 (weak)  │
809              ├───────────────────────────┼────────────────────────────┤
810              │aes256-cts-hmac-sha1-96    │ AES-256   CTS   mode  with │
811              │aes256-cts aes256-sha1     │ 96-bit SHA-1 HMAC          │
812              ├───────────────────────────┼────────────────────────────┤
813              │aes128-cts-hmac-sha1-96    │ AES-128   CTS   mode  with │
814              │aes128-cts aes128-sha1     │ 96-bit SHA-1 HMAC          │
815              ├───────────────────────────┼────────────────────────────┤
816              │aes256-cts-hmac-sha384-192 │ AES-256   CTS   mode  with │
817              │aes256-sha2                │ 192-bit SHA-384 HMAC       │
818              ├───────────────────────────┼────────────────────────────┤
819              │aes128-cts-hmac-sha256-128 │ AES-128   CTS   mode  with │
820              │aes128-sha2                │ 128-bit SHA-256 HMAC       │
821              ├───────────────────────────┼────────────────────────────┤
822              │arcfour-hmac rc4-hmac arc‐ │ RC4 with HMAC/MD5          │
823              │four-hmac-md5              │                            │
824              ├───────────────────────────┼────────────────────────────┤
825              │arcfour-hmac-exp           │ Exportable     RC4    with │
826              │rc4-hmac-exp          arc‐ │ HMAC/MD5 (weak)            │
827              │four-hmac-md5-exp          │                            │
828              ├───────────────────────────┼────────────────────────────┤
829              │camellia256-cts-cmac       │ Camellia-256 CTS mode with │
830              │camellia256-cts            │ CMAC                       │
831              ├───────────────────────────┼────────────────────────────┤
832              │camellia128-cts-cmac       │ Camellia-128 CTS mode with │
833              │camellia128-cts            │ CMAC                       │
834              ├───────────────────────────┼────────────────────────────┤
835              │des                        │ The      DES       family: │
836              │                           │ des-cbc-crc,  des-cbc-md5, │
837              │                           │ and des-cbc-md4 (weak)     │
838              ├───────────────────────────┼────────────────────────────┤
839              │des3                       │ The  triple  DES   family: │
840              │                           │ des3-cbc-sha1              │
841              ├───────────────────────────┼────────────────────────────┤
842              │aes                        │ The       AES      family: │
843              │                           │ aes256-cts-hmac-sha1-96    │
844              │                           │ and                        │
845              │                           │ aes128-cts-hmac-sha1-96    │
846              ├───────────────────────────┼────────────────────────────┤
847              │rc4                        │ The   RC4   family:   arc‐ │
848              │                           │ four-hmac                  │
849              ├───────────────────────────┼────────────────────────────┤
850              │camellia                   │ The    Camellia    family: │
851              │                           │ camellia256-cts-cmac   and │
852              │                           │ camellia128-cts-cmac       │
853              └───────────────────────────┴────────────────────────────┘
854
855       The string DEFAULT can be used to refer to the default set of types for
856       the variable in question.  Types or families can be  removed  from  the
857       current list by prefixing them with a minus sign ("-").  Types or fami‐
858       lies can be prefixed with a plus sign ("+") for symmetry;  it  has  the
859       same meaning as just listing the type or family.  For example, "DEFAULT
860       -des" would be the default set  of  encryption  types  with  DES  types
861       removed,  and  "des3  DEFAULT"  would  be the default set of encryption
862       types with triple DES types moved to the front.
863
864       While aes128-cts and aes256-cts are supported for all  Kerberos  opera‐
865       tions, they are not supported by very old versions of our GSSAPI imple‐
866       mentation (krb5-1.3.1 and earlier).  Services running versions of  krb5
867       without AES support must not be given keys of these encryption types in
868       the KDC database.
869
870       The aes128-sha2 and aes256-sha2 encryption types  are  new  in  release
871       1.15.   Services  running  versions  of  krb5 without support for these
872       newer encryption types must not be given keys of these encryption types
873       in the KDC database.
874

KEYSALT LISTS

876       Kerberos  keys  for users are usually derived from passwords.  Kerberos
877       commands and configuration parameters that affect  generation  of  keys
878       take  lists  of  enctype-salttype  ("keysalt")  pairs, known as keysalt
879       lists.  Each keysalt pair is an enctype name  followed  by  a  salttype
880       name, in the format enc:salt.  Individual keysalt list members are sep‐
881       arated by comma (",") characters or space characters.  For example:
882
883          kadmin -e aes256-cts:normal,aes128-cts:normal
884
885       would start up kadmin so  that  by  default  it  would  generate  pass‐
886       word-derived  keys  for the aes256-cts and aes128-cts encryption types,
887       using a normal salt.
888
889       To ensure that people who happen to pick the same password do not  have
890       the  same  key,  Kerberos  5 incorporates more information into the key
891       using something called a salt.  The supported salt types  are  as  fol‐
892       lows:
893
894                      ┌──────────┬────────────────────────────┐
895                      │normal    │ default  for Kerberos Ver‐ │
896                      │          │ sion 5                     │
897                      ├──────────┼────────────────────────────┤
898                      │v4        │ the only type used by Ker‐ │
899                      │          │ beros Version 4 (no salt)  │
900                      ├──────────┼────────────────────────────┤
901                      │norealm   │ same as the default, with‐ │
902                      │          │ out using  realm  informa‐ │
903                      │          │ tion                       │
904                      ├──────────┼────────────────────────────┤
905                      │onlyrealm │ uses  only  realm informa‐ │
906                      │          │ tion as the salt           │
907                      ├──────────┼────────────────────────────┤
908                      │afs3      │ AFS version 3,  only  used │
909                      │          │ for   compatibility   with │
910                      │          │ Kerberos 4 in AFS          │
911                      ├──────────┼────────────────────────────┤
912                      │special   │ generate a random salt     │
913                      └──────────┴────────────────────────────┘
914

SAMPLE KDC.CONF FILE

916       Here's an example of a kdc.conf file:
917
918          [kdcdefaults]
919              kdc_listen = 88
920              kdc_tcp_listen = 88
921          [realms]
922              ATHENA.MIT.EDU = {
923                  kadmind_port = 749
924                  max_life = 12h 0m 0s
925                  max_renewable_life = 7d 0h 0m 0s
926                  master_key_type = aes256-cts-hmac-sha1-96
927                  supported_enctypes = aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal
928                  database_module = openldap_ldapconf
929              }
930
931          [logging]
932              kdc = FILE:/usr/local/var/krb5kdc/kdc.log
933              admin_server = FILE:/usr/local/var/krb5kdc/kadmin.log
934
935          [dbdefaults]
936              ldap_kerberos_container_dn = cn=krbcontainer,dc=mit,dc=edu
937
938          [dbmodules]
939              openldap_ldapconf = {
940                  db_library = kldap
941                  disable_last_success = true
942                  ldap_kdc_dn = "cn=krbadmin,dc=mit,dc=edu"
943                      # this object needs to have read rights on
944                      # the realm container and principal subtrees
945                  ldap_kadmind_dn = "cn=krbadmin,dc=mit,dc=edu"
946                      # this object needs to have read and write rights on
947                      # the realm container and principal subtrees
948                  ldap_service_password_file = /etc/kerberos/service.keyfile
949                  ldap_servers = ldaps://kerberos.mit.edu
950                  ldap_conns_per_server = 5
951              }
952

FILES

954       /var/kerberos/krb5kdc/kdc.conf
955

SEE ALSO

957       krb5.conf(5), krb5kdc(8), kadm5.acl(5)
958

AUTHOR

960       MIT
961
963       1985-2017, MIT
964
965
966
967
9681.15.1                                                             KDC.CONF(5)
Impressum