1*7f2fe78bSCy Schubert.. _kdc.conf(5): 2*7f2fe78bSCy Schubert 3*7f2fe78bSCy Schubertkdc.conf 4*7f2fe78bSCy Schubert======== 5*7f2fe78bSCy Schubert 6*7f2fe78bSCy SchubertThe kdc.conf file supplements :ref:`krb5.conf(5)` for programs which 7*7f2fe78bSCy Schubertare typically only used on a KDC, such as the :ref:`krb5kdc(8)` and 8*7f2fe78bSCy Schubert:ref:`kadmind(8)` daemons and the :ref:`kdb5_util(8)` program. 9*7f2fe78bSCy SchubertRelations documented here may also be specified in krb5.conf; for the 10*7f2fe78bSCy SchubertKDC programs mentioned, krb5.conf and kdc.conf will be merged into a 11*7f2fe78bSCy Schubertsingle configuration profile. 12*7f2fe78bSCy Schubert 13*7f2fe78bSCy SchubertNormally, the kdc.conf file is found in the KDC state directory, 14*7f2fe78bSCy Schubert|kdcdir|. You can override the default location by setting the 15*7f2fe78bSCy Schubertenvironment variable **KRB5_KDC_PROFILE**. 16*7f2fe78bSCy Schubert 17*7f2fe78bSCy SchubertPlease note that you need to restart the KDC daemon for any configuration 18*7f2fe78bSCy Schubertchanges to take effect. 19*7f2fe78bSCy Schubert 20*7f2fe78bSCy SchubertStructure 21*7f2fe78bSCy Schubert--------- 22*7f2fe78bSCy Schubert 23*7f2fe78bSCy SchubertThe kdc.conf file is set up in the same format as the 24*7f2fe78bSCy Schubert:ref:`krb5.conf(5)` file. 25*7f2fe78bSCy Schubert 26*7f2fe78bSCy Schubert 27*7f2fe78bSCy SchubertSections 28*7f2fe78bSCy Schubert-------- 29*7f2fe78bSCy Schubert 30*7f2fe78bSCy SchubertThe kdc.conf file may contain the following sections: 31*7f2fe78bSCy Schubert 32*7f2fe78bSCy Schubert==================== ================================================= 33*7f2fe78bSCy Schubert:ref:`kdcdefaults` Default values for KDC behavior 34*7f2fe78bSCy Schubert:ref:`kdc_realms` Realm-specific database configuration and settings 35*7f2fe78bSCy Schubert:ref:`dbdefaults` Default database settings 36*7f2fe78bSCy Schubert:ref:`dbmodules` Per-database settings 37*7f2fe78bSCy Schubert:ref:`logging` Controls how Kerberos daemons perform logging 38*7f2fe78bSCy Schubert==================== ================================================= 39*7f2fe78bSCy Schubert 40*7f2fe78bSCy Schubert 41*7f2fe78bSCy Schubert.. _kdcdefaults: 42*7f2fe78bSCy Schubert 43*7f2fe78bSCy Schubert[kdcdefaults] 44*7f2fe78bSCy Schubert~~~~~~~~~~~~~ 45*7f2fe78bSCy Schubert 46*7f2fe78bSCy SchubertSome relations in the [kdcdefaults] section specify default values for 47*7f2fe78bSCy Schubertrealm variables, to be used if the [realms] subsection does not 48*7f2fe78bSCy Schubertcontain a relation for the tag. See the :ref:`kdc_realms` section for 49*7f2fe78bSCy Schubertthe definitions of these relations. 50*7f2fe78bSCy Schubert 51*7f2fe78bSCy Schubert* **host_based_services** 52*7f2fe78bSCy Schubert* **kdc_listen** 53*7f2fe78bSCy Schubert* **kdc_ports** 54*7f2fe78bSCy Schubert* **kdc_tcp_listen** 55*7f2fe78bSCy Schubert* **kdc_tcp_ports** 56*7f2fe78bSCy Schubert* **no_host_referral** 57*7f2fe78bSCy Schubert* **restrict_anonymous_to_tgt** 58*7f2fe78bSCy Schubert 59*7f2fe78bSCy SchubertThe following [kdcdefaults] variables have no per-realm equivalent: 60*7f2fe78bSCy Schubert 61*7f2fe78bSCy Schubert**kdc_max_dgram_reply_size** 62*7f2fe78bSCy Schubert Specifies the maximum packet size that can be sent over UDP. The 63*7f2fe78bSCy Schubert default value is 4096 bytes. 64*7f2fe78bSCy Schubert 65*7f2fe78bSCy Schubert**kdc_tcp_listen_backlog** 66*7f2fe78bSCy Schubert (Integer.) Set the size of the listen queue length for the KDC 67*7f2fe78bSCy Schubert daemon. The value may be limited by OS settings. The default 68*7f2fe78bSCy Schubert value is 5. 69*7f2fe78bSCy Schubert 70*7f2fe78bSCy Schubert**spake_preauth_kdc_challenge** 71*7f2fe78bSCy Schubert (String.) Specifies the group for a SPAKE optimistic challenge. 72*7f2fe78bSCy Schubert See the **spake_preauth_groups** variable in :ref:`libdefaults` 73*7f2fe78bSCy Schubert for possible values. The default is not to issue an optimistic 74*7f2fe78bSCy Schubert challenge. (New in release 1.17.) 75*7f2fe78bSCy Schubert 76*7f2fe78bSCy Schubert 77*7f2fe78bSCy Schubert.. _kdc_realms: 78*7f2fe78bSCy Schubert 79*7f2fe78bSCy Schubert[realms] 80*7f2fe78bSCy Schubert~~~~~~~~ 81*7f2fe78bSCy Schubert 82*7f2fe78bSCy SchubertEach tag in the [realms] section is the name of a Kerberos realm. The 83*7f2fe78bSCy Schubertvalue of the tag is a subsection where the relations define KDC 84*7f2fe78bSCy Schubertparameters for that particular realm. The following example shows how 85*7f2fe78bSCy Schubertto define one parameter for the ATHENA.MIT.EDU realm:: 86*7f2fe78bSCy Schubert 87*7f2fe78bSCy Schubert [realms] 88*7f2fe78bSCy Schubert ATHENA.MIT.EDU = { 89*7f2fe78bSCy Schubert max_renewable_life = 7d 0h 0m 0s 90*7f2fe78bSCy Schubert } 91*7f2fe78bSCy Schubert 92*7f2fe78bSCy SchubertThe following tags may be specified in a [realms] subsection: 93*7f2fe78bSCy Schubert 94*7f2fe78bSCy Schubert**acl_file** 95*7f2fe78bSCy Schubert (String.) Location of the access control list file that 96*7f2fe78bSCy Schubert :ref:`kadmind(8)` uses to determine which principals are allowed 97*7f2fe78bSCy Schubert which permissions on the Kerberos database. To operate without an 98*7f2fe78bSCy Schubert ACL file, set this relation to the empty string with ``acl_file = 99*7f2fe78bSCy Schubert ""``. The default value is |kdcdir|\ ``/kadm5.acl``. For more 100*7f2fe78bSCy Schubert information on Kerberos ACL file see :ref:`kadm5.acl(5)`. 101*7f2fe78bSCy Schubert 102*7f2fe78bSCy Schubert**database_module** 103*7f2fe78bSCy Schubert (String.) This relation indicates the name of the configuration 104*7f2fe78bSCy Schubert section under :ref:`dbmodules` for database-specific parameters 105*7f2fe78bSCy Schubert used by the loadable database library. The default value is the 106*7f2fe78bSCy Schubert realm name. If this configuration section does not exist, default 107*7f2fe78bSCy Schubert values will be used for all database parameters. 108*7f2fe78bSCy Schubert 109*7f2fe78bSCy Schubert**database_name** 110*7f2fe78bSCy Schubert (String, deprecated.) This relation specifies the location of the 111*7f2fe78bSCy Schubert Kerberos database for this realm, if the DB2 module is being used 112*7f2fe78bSCy Schubert and the :ref:`dbmodules` configuration section does not specify a 113*7f2fe78bSCy Schubert database name. The default value is |kdcdir|\ ``/principal``. 114*7f2fe78bSCy Schubert 115*7f2fe78bSCy Schubert**default_principal_expiration** 116*7f2fe78bSCy Schubert (:ref:`abstime` string.) Specifies the default expiration date of 117*7f2fe78bSCy Schubert principals created in this realm. The default value is 0, which 118*7f2fe78bSCy Schubert means no expiration date. 119*7f2fe78bSCy Schubert 120*7f2fe78bSCy Schubert**default_principal_flags** 121*7f2fe78bSCy Schubert (Flag string.) Specifies the default attributes of principals 122*7f2fe78bSCy Schubert created in this realm. The format for this string is a 123*7f2fe78bSCy Schubert comma-separated list of flags, with '+' before each flag that 124*7f2fe78bSCy Schubert should be enabled and '-' before each flag that should be 125*7f2fe78bSCy Schubert disabled. The **postdateable**, **forwardable**, **tgt-based**, 126*7f2fe78bSCy Schubert **renewable**, **proxiable**, **dup-skey**, **allow-tickets**, and 127*7f2fe78bSCy Schubert **service** flags default to enabled. 128*7f2fe78bSCy Schubert 129*7f2fe78bSCy Schubert There are a number of possible flags: 130*7f2fe78bSCy Schubert 131*7f2fe78bSCy Schubert **allow-tickets** 132*7f2fe78bSCy Schubert Enabling this flag means that the KDC will issue tickets for 133*7f2fe78bSCy Schubert this principal. Disabling this flag essentially deactivates 134*7f2fe78bSCy Schubert the principal within this realm. 135*7f2fe78bSCy Schubert 136*7f2fe78bSCy Schubert **dup-skey** 137*7f2fe78bSCy Schubert Enabling this flag allows the KDC to issue user-to-user 138*7f2fe78bSCy Schubert service tickets for this principal. 139*7f2fe78bSCy Schubert 140*7f2fe78bSCy Schubert **forwardable** 141*7f2fe78bSCy Schubert Enabling this flag allows the principal to obtain forwardable 142*7f2fe78bSCy Schubert tickets. 143*7f2fe78bSCy Schubert 144*7f2fe78bSCy Schubert **hwauth** 145*7f2fe78bSCy Schubert If this flag is enabled, then the principal is required to 146*7f2fe78bSCy Schubert preauthenticate using a hardware device before receiving any 147*7f2fe78bSCy Schubert tickets. 148*7f2fe78bSCy Schubert 149*7f2fe78bSCy Schubert **no-auth-data-required** 150*7f2fe78bSCy Schubert Enabling this flag prevents PAC or AD-SIGNEDPATH data from 151*7f2fe78bSCy Schubert being added to service tickets for the principal. 152*7f2fe78bSCy Schubert 153*7f2fe78bSCy Schubert **ok-as-delegate** 154*7f2fe78bSCy Schubert If this flag is enabled, it hints the client that credentials 155*7f2fe78bSCy Schubert can and should be delegated when authenticating to the 156*7f2fe78bSCy Schubert service. 157*7f2fe78bSCy Schubert 158*7f2fe78bSCy Schubert **ok-to-auth-as-delegate** 159*7f2fe78bSCy Schubert Enabling this flag allows the principal to use S4USelf tickets. 160*7f2fe78bSCy Schubert 161*7f2fe78bSCy Schubert **postdateable** 162*7f2fe78bSCy Schubert Enabling this flag allows the principal to obtain postdateable 163*7f2fe78bSCy Schubert tickets. 164*7f2fe78bSCy Schubert 165*7f2fe78bSCy Schubert **preauth** 166*7f2fe78bSCy Schubert If this flag is enabled on a client principal, then that 167*7f2fe78bSCy Schubert principal is required to preauthenticate to the KDC before 168*7f2fe78bSCy Schubert receiving any tickets. On a service principal, enabling this 169*7f2fe78bSCy Schubert flag means that service tickets for this principal will only 170*7f2fe78bSCy Schubert be issued to clients with a TGT that has the preauthenticated 171*7f2fe78bSCy Schubert bit set. 172*7f2fe78bSCy Schubert 173*7f2fe78bSCy Schubert **proxiable** 174*7f2fe78bSCy Schubert Enabling this flag allows the principal to obtain proxy 175*7f2fe78bSCy Schubert tickets. 176*7f2fe78bSCy Schubert 177*7f2fe78bSCy Schubert **pwchange** 178*7f2fe78bSCy Schubert Enabling this flag forces a password change for this 179*7f2fe78bSCy Schubert principal. 180*7f2fe78bSCy Schubert 181*7f2fe78bSCy Schubert **pwservice** 182*7f2fe78bSCy Schubert If this flag is enabled, it marks this principal as a password 183*7f2fe78bSCy Schubert change service. This should only be used in special cases, 184*7f2fe78bSCy Schubert for example, if a user's password has expired, then the user 185*7f2fe78bSCy Schubert has to get tickets for that principal without going through 186*7f2fe78bSCy Schubert the normal password authentication in order to be able to 187*7f2fe78bSCy Schubert change the password. 188*7f2fe78bSCy Schubert 189*7f2fe78bSCy Schubert **renewable** 190*7f2fe78bSCy Schubert Enabling this flag allows the principal to obtain renewable 191*7f2fe78bSCy Schubert tickets. 192*7f2fe78bSCy Schubert 193*7f2fe78bSCy Schubert **service** 194*7f2fe78bSCy Schubert Enabling this flag allows the the KDC to issue service tickets 195*7f2fe78bSCy Schubert for this principal. In release 1.17 and later, user-to-user 196*7f2fe78bSCy Schubert service tickets are still allowed if the **dup-skey** flag is 197*7f2fe78bSCy Schubert set. 198*7f2fe78bSCy Schubert 199*7f2fe78bSCy Schubert **tgt-based** 200*7f2fe78bSCy Schubert Enabling this flag allows a principal to obtain tickets based 201*7f2fe78bSCy Schubert on a ticket-granting-ticket, rather than repeating the 202*7f2fe78bSCy Schubert authentication process that was used to obtain the TGT. 203*7f2fe78bSCy Schubert 204*7f2fe78bSCy Schubert**dict_file** 205*7f2fe78bSCy Schubert (String.) Location of the dictionary file containing strings that 206*7f2fe78bSCy Schubert are not allowed as passwords. The file should contain one string 207*7f2fe78bSCy Schubert per line, with no additional whitespace. If none is specified or 208*7f2fe78bSCy Schubert if there is no policy assigned to the principal, no dictionary 209*7f2fe78bSCy Schubert checks of passwords will be performed. 210*7f2fe78bSCy Schubert 211*7f2fe78bSCy Schubert**disable_pac** 212*7f2fe78bSCy Schubert (Boolean value.) If true, the KDC will not issue PACs for this 213*7f2fe78bSCy Schubert realm, and S4U2Self and S4U2Proxy operations will be disabled. 214*7f2fe78bSCy Schubert The default is false, which will permit the KDC to issue PACs. 215*7f2fe78bSCy Schubert New in release 1.20. 216*7f2fe78bSCy Schubert 217*7f2fe78bSCy Schubert**encrypted_challenge_indicator** 218*7f2fe78bSCy Schubert (String.) Specifies the authentication indicator value that the KDC 219*7f2fe78bSCy Schubert asserts into tickets obtained using FAST encrypted challenge 220*7f2fe78bSCy Schubert pre-authentication. New in 1.16. 221*7f2fe78bSCy Schubert 222*7f2fe78bSCy Schubert**host_based_services** 223*7f2fe78bSCy Schubert (Whitespace- or comma-separated list.) Lists services which will 224*7f2fe78bSCy Schubert get host-based referral processing even if the server principal is 225*7f2fe78bSCy Schubert not marked as host-based by the client. 226*7f2fe78bSCy Schubert 227*7f2fe78bSCy Schubert**iprop_enable** 228*7f2fe78bSCy Schubert (Boolean value.) Specifies whether incremental database 229*7f2fe78bSCy Schubert propagation is enabled. The default value is false. 230*7f2fe78bSCy Schubert 231*7f2fe78bSCy Schubert**iprop_ulogsize** 232*7f2fe78bSCy Schubert (Integer.) Specifies the maximum number of log entries to be 233*7f2fe78bSCy Schubert retained for incremental propagation. The default value is 1000. 234*7f2fe78bSCy Schubert Prior to release 1.11, the maximum value was 2500. New in release 235*7f2fe78bSCy Schubert 1.19. 236*7f2fe78bSCy Schubert 237*7f2fe78bSCy Schubert**iprop_master_ulogsize** 238*7f2fe78bSCy Schubert The name for **iprop_ulogsize** prior to release 1.19. Its value is 239*7f2fe78bSCy Schubert used as a fallback if **iprop_ulogsize** is not specified. 240*7f2fe78bSCy Schubert 241*7f2fe78bSCy Schubert**iprop_replica_poll** 242*7f2fe78bSCy Schubert (Delta time string.) Specifies how often the replica KDC polls 243*7f2fe78bSCy Schubert for new updates from the primary. The default value is ``2m`` 244*7f2fe78bSCy Schubert (that is, two minutes). New in release 1.17. 245*7f2fe78bSCy Schubert 246*7f2fe78bSCy Schubert**iprop_slave_poll** 247*7f2fe78bSCy Schubert (Delta time string.) The name for **iprop_replica_poll** prior to 248*7f2fe78bSCy Schubert release 1.17. Its value is used as a fallback if 249*7f2fe78bSCy Schubert **iprop_replica_poll** is not specified. 250*7f2fe78bSCy Schubert 251*7f2fe78bSCy Schubert**iprop_listen** 252*7f2fe78bSCy Schubert (Whitespace- or comma-separated list.) Specifies the iprop RPC 253*7f2fe78bSCy Schubert listening addresses and/or ports for the :ref:`kadmind(8)` daemon. 254*7f2fe78bSCy Schubert Each entry may be an interface address, a port number, or an 255*7f2fe78bSCy Schubert address and port number separated by a colon. If the address 256*7f2fe78bSCy Schubert contains colons, enclose it in square brackets. If no address is 257*7f2fe78bSCy Schubert specified, the wildcard address is used. If kadmind fails to bind 258*7f2fe78bSCy Schubert to any of the specified addresses, it will fail to start. The 259*7f2fe78bSCy Schubert default (when **iprop_enable** is true) is to bind to the wildcard 260*7f2fe78bSCy Schubert address at the port specified in **iprop_port**. New in release 261*7f2fe78bSCy Schubert 1.15. 262*7f2fe78bSCy Schubert 263*7f2fe78bSCy Schubert**iprop_port** 264*7f2fe78bSCy Schubert (Port number.) Specifies the port number to be used for 265*7f2fe78bSCy Schubert incremental propagation. When **iprop_enable** is true, this 266*7f2fe78bSCy Schubert relation is required in the replica KDC configuration file, and 267*7f2fe78bSCy Schubert this relation or **iprop_listen** is required in the primary 268*7f2fe78bSCy Schubert configuration file, as there is no default port number. Port 269*7f2fe78bSCy Schubert numbers specified in **iprop_listen** entries will override this 270*7f2fe78bSCy Schubert port number for the :ref:`kadmind(8)` daemon. 271*7f2fe78bSCy Schubert 272*7f2fe78bSCy Schubert**iprop_resync_timeout** 273*7f2fe78bSCy Schubert (Delta time string.) Specifies the amount of time to wait for a 274*7f2fe78bSCy Schubert full propagation to complete. This is optional in configuration 275*7f2fe78bSCy Schubert files, and is used by replica KDCs only. The default value is 5 276*7f2fe78bSCy Schubert minutes (``5m``). New in release 1.11. 277*7f2fe78bSCy Schubert 278*7f2fe78bSCy Schubert**iprop_logfile** 279*7f2fe78bSCy Schubert (File name.) Specifies where the update log file for the realm 280*7f2fe78bSCy Schubert database is to be stored. The default is to use the 281*7f2fe78bSCy Schubert **database_name** entry from the realms section of the krb5 config 282*7f2fe78bSCy Schubert file, with ``.ulog`` appended. (NOTE: If **database_name** isn't 283*7f2fe78bSCy Schubert specified in the realms section, perhaps because the LDAP database 284*7f2fe78bSCy Schubert back end is being used, or the file name is specified in the 285*7f2fe78bSCy Schubert [dbmodules] section, then the hard-coded default for 286*7f2fe78bSCy Schubert **database_name** is used. Determination of the **iprop_logfile** 287*7f2fe78bSCy Schubert default value will not use values from the [dbmodules] section.) 288*7f2fe78bSCy Schubert 289*7f2fe78bSCy Schubert**kadmind_listen** 290*7f2fe78bSCy Schubert (Whitespace- or comma-separated list.) Specifies the kadmin RPC 291*7f2fe78bSCy Schubert listening addresses and/or ports for the :ref:`kadmind(8)` daemon. 292*7f2fe78bSCy Schubert Each entry may be an interface address, a port number, or an 293*7f2fe78bSCy Schubert address and port number separated by a colon. If the address 294*7f2fe78bSCy Schubert contains colons, enclose it in square brackets. If no address is 295*7f2fe78bSCy Schubert specified, the wildcard address is used. If kadmind fails to bind 296*7f2fe78bSCy Schubert to any of the specified addresses, it will fail to start. The 297*7f2fe78bSCy Schubert default is to bind to the wildcard address at the port specified 298*7f2fe78bSCy Schubert in **kadmind_port**, or the standard kadmin port (749). New in 299*7f2fe78bSCy Schubert release 1.15. 300*7f2fe78bSCy Schubert 301*7f2fe78bSCy Schubert**kadmind_port** 302*7f2fe78bSCy Schubert (Port number.) Specifies the port on which the :ref:`kadmind(8)` 303*7f2fe78bSCy Schubert daemon is to listen for this realm. Port numbers specified in 304*7f2fe78bSCy Schubert **kadmind_listen** entries will override this port number. The 305*7f2fe78bSCy Schubert assigned port for kadmind is 749, which is used by default. 306*7f2fe78bSCy Schubert 307*7f2fe78bSCy Schubert**key_stash_file** 308*7f2fe78bSCy Schubert (String.) Specifies the location where the master key has been 309*7f2fe78bSCy Schubert stored (via kdb5_util stash). The default is |kdcdir|\ 310*7f2fe78bSCy Schubert ``/.k5.REALM``, where *REALM* is the Kerberos realm. 311*7f2fe78bSCy Schubert 312*7f2fe78bSCy Schubert**kdc_listen** 313*7f2fe78bSCy Schubert (Whitespace- or comma-separated list.) Specifies the UDP 314*7f2fe78bSCy Schubert listening addresses and/or ports for the :ref:`krb5kdc(8)` daemon. 315*7f2fe78bSCy Schubert Each entry may be an interface address, a port number, or an 316*7f2fe78bSCy Schubert address and port number separated by a colon. If the address 317*7f2fe78bSCy Schubert contains colons, enclose it in square brackets. If no address is 318*7f2fe78bSCy Schubert specified, the wildcard address is used. If no port is specified, 319*7f2fe78bSCy Schubert the standard port (88) is used. If the KDC daemon fails to bind 320*7f2fe78bSCy Schubert to any of the specified addresses, it will fail to start. The 321*7f2fe78bSCy Schubert default is to bind to the wildcard address on the standard port. 322*7f2fe78bSCy Schubert New in release 1.15. 323*7f2fe78bSCy Schubert 324*7f2fe78bSCy Schubert**kdc_ports** 325*7f2fe78bSCy Schubert (Whitespace- or comma-separated list, deprecated.) Prior to 326*7f2fe78bSCy Schubert release 1.15, this relation lists the ports for the 327*7f2fe78bSCy Schubert :ref:`krb5kdc(8)` daemon to listen on for UDP requests. In 328*7f2fe78bSCy Schubert release 1.15 and later, it has the same meaning as **kdc_listen** 329*7f2fe78bSCy Schubert if that relation is not defined. 330*7f2fe78bSCy Schubert 331*7f2fe78bSCy Schubert**kdc_tcp_listen** 332*7f2fe78bSCy Schubert (Whitespace- or comma-separated list.) Specifies the TCP 333*7f2fe78bSCy Schubert listening addresses and/or ports for the :ref:`krb5kdc(8)` daemon. 334*7f2fe78bSCy Schubert Each entry may be an interface address, a port number, or an 335*7f2fe78bSCy Schubert address and port number separated by a colon. If the address 336*7f2fe78bSCy Schubert contains colons, enclose it in square brackets. If no address is 337*7f2fe78bSCy Schubert specified, the wildcard address is used. If no port is specified, 338*7f2fe78bSCy Schubert the standard port (88) is used. To disable listening on TCP, set 339*7f2fe78bSCy Schubert this relation to the empty string with ``kdc_tcp_listen = ""``. 340*7f2fe78bSCy Schubert If the KDC daemon fails to bind to any of the specified addresses, 341*7f2fe78bSCy Schubert it will fail to start. The default is to bind to the wildcard 342*7f2fe78bSCy Schubert address on the standard port. New in release 1.15. 343*7f2fe78bSCy Schubert 344*7f2fe78bSCy Schubert**kdc_tcp_ports** 345*7f2fe78bSCy Schubert (Whitespace- or comma-separated list, deprecated.) Prior to 346*7f2fe78bSCy Schubert release 1.15, this relation lists the ports for the 347*7f2fe78bSCy Schubert :ref:`krb5kdc(8)` daemon to listen on for UDP requests. In 348*7f2fe78bSCy Schubert release 1.15 and later, it has the same meaning as 349*7f2fe78bSCy Schubert **kdc_tcp_listen** if that relation is not defined. 350*7f2fe78bSCy Schubert 351*7f2fe78bSCy Schubert**kpasswd_listen** 352*7f2fe78bSCy Schubert (Comma-separated list.) Specifies the kpasswd listening addresses 353*7f2fe78bSCy Schubert and/or ports for the :ref:`kadmind(8)` daemon. Each entry may be 354*7f2fe78bSCy Schubert an interface address, a port number, or an address and port number 355*7f2fe78bSCy Schubert separated by a colon. If the address contains colons, enclose it 356*7f2fe78bSCy Schubert in square brackets. If no address is specified, the wildcard 357*7f2fe78bSCy Schubert address is used. If kadmind fails to bind to any of the specified 358*7f2fe78bSCy Schubert addresses, it will fail to start. The default is to bind to the 359*7f2fe78bSCy Schubert wildcard address at the port specified in **kpasswd_port**, or the 360*7f2fe78bSCy Schubert standard kpasswd port (464). New in release 1.15. 361*7f2fe78bSCy Schubert 362*7f2fe78bSCy Schubert**kpasswd_port** 363*7f2fe78bSCy Schubert (Port number.) Specifies the port on which the :ref:`kadmind(8)` 364*7f2fe78bSCy Schubert daemon is to listen for password change requests for this realm. 365*7f2fe78bSCy Schubert Port numbers specified in **kpasswd_listen** entries will override 366*7f2fe78bSCy Schubert this port number. The assigned port for password change requests 367*7f2fe78bSCy Schubert is 464, which is used by default. 368*7f2fe78bSCy Schubert 369*7f2fe78bSCy Schubert**master_key_name** 370*7f2fe78bSCy Schubert (String.) Specifies the name of the principal associated with the 371*7f2fe78bSCy Schubert master key. The default is ``K/M``. 372*7f2fe78bSCy Schubert 373*7f2fe78bSCy Schubert**master_key_type** 374*7f2fe78bSCy Schubert (Key type string.) Specifies the master key's key type. The 375*7f2fe78bSCy Schubert default value for this is |defmkey|. For a list of all possible 376*7f2fe78bSCy Schubert values, see :ref:`Encryption_types`. 377*7f2fe78bSCy Schubert 378*7f2fe78bSCy Schubert**max_life** 379*7f2fe78bSCy Schubert (:ref:`duration` string.) Specifies the maximum time period for 380*7f2fe78bSCy Schubert which a ticket may be valid in this realm. The default value is 381*7f2fe78bSCy Schubert 24 hours. 382*7f2fe78bSCy Schubert 383*7f2fe78bSCy Schubert**max_renewable_life** 384*7f2fe78bSCy Schubert (:ref:`duration` string.) Specifies the maximum time period 385*7f2fe78bSCy Schubert during which a valid ticket may be renewed in this realm. 386*7f2fe78bSCy Schubert The default value is 0. 387*7f2fe78bSCy Schubert 388*7f2fe78bSCy Schubert**no_host_referral** 389*7f2fe78bSCy Schubert (Whitespace- or comma-separated list.) Lists services to block 390*7f2fe78bSCy Schubert from getting host-based referral processing, even if the client 391*7f2fe78bSCy Schubert marks the server principal as host-based or the service is also 392*7f2fe78bSCy Schubert listed in **host_based_services**. ``no_host_referral = *`` will 393*7f2fe78bSCy Schubert disable referral processing altogether. 394*7f2fe78bSCy Schubert 395*7f2fe78bSCy Schubert**reject_bad_transit** 396*7f2fe78bSCy Schubert (Boolean value.) If set to true, the KDC will check the list of 397*7f2fe78bSCy Schubert transited realms for cross-realm tickets against the transit path 398*7f2fe78bSCy Schubert computed from the realm names and the capaths section of its 399*7f2fe78bSCy Schubert :ref:`krb5.conf(5)` file; if the path in the ticket to be issued 400*7f2fe78bSCy Schubert contains any realms not in the computed path, the ticket will not 401*7f2fe78bSCy Schubert be issued, and an error will be returned to the client instead. 402*7f2fe78bSCy Schubert If this value is set to false, such tickets will be issued 403*7f2fe78bSCy Schubert anyways, and it will be left up to the application server to 404*7f2fe78bSCy Schubert validate the realm transit path. 405*7f2fe78bSCy Schubert 406*7f2fe78bSCy Schubert If the disable-transited-check flag is set in the incoming 407*7f2fe78bSCy Schubert request, this check is not performed at all. Having the 408*7f2fe78bSCy Schubert **reject_bad_transit** option will cause such ticket requests to 409*7f2fe78bSCy Schubert be rejected always. 410*7f2fe78bSCy Schubert 411*7f2fe78bSCy Schubert This transit path checking and config file option currently apply 412*7f2fe78bSCy Schubert only to TGS requests. 413*7f2fe78bSCy Schubert 414*7f2fe78bSCy Schubert The default value is true. 415*7f2fe78bSCy Schubert 416*7f2fe78bSCy Schubert**restrict_anonymous_to_tgt** 417*7f2fe78bSCy Schubert (Boolean value.) If set to true, the KDC will reject ticket 418*7f2fe78bSCy Schubert requests from anonymous principals to service principals other 419*7f2fe78bSCy Schubert than the realm's ticket-granting service. This option allows 420*7f2fe78bSCy Schubert anonymous PKINIT to be enabled for use as FAST armor tickets 421*7f2fe78bSCy Schubert without allowing anonymous authentication to services. The 422*7f2fe78bSCy Schubert default value is false. New in release 1.9. 423*7f2fe78bSCy Schubert 424*7f2fe78bSCy Schubert**spake_preauth_indicator** 425*7f2fe78bSCy Schubert (String.) Specifies an authentication indicator value that the 426*7f2fe78bSCy Schubert KDC asserts into tickets obtained using SPAKE pre-authentication. 427*7f2fe78bSCy Schubert The default is not to add any indicators. This option may be 428*7f2fe78bSCy Schubert specified multiple times. New in release 1.17. 429*7f2fe78bSCy Schubert 430*7f2fe78bSCy Schubert**supported_enctypes** 431*7f2fe78bSCy Schubert (List of *key*:*salt* strings.) Specifies the default key/salt 432*7f2fe78bSCy Schubert combinations of principals for this realm. Any principals created 433*7f2fe78bSCy Schubert through :ref:`kadmin(1)` will have keys of these types. The 434*7f2fe78bSCy Schubert default value for this tag is |defkeysalts|. For lists of 435*7f2fe78bSCy Schubert possible values, see :ref:`Keysalt_lists`. 436*7f2fe78bSCy Schubert 437*7f2fe78bSCy Schubert 438*7f2fe78bSCy Schubert.. _dbdefaults: 439*7f2fe78bSCy Schubert 440*7f2fe78bSCy Schubert[dbdefaults] 441*7f2fe78bSCy Schubert~~~~~~~~~~~~ 442*7f2fe78bSCy Schubert 443*7f2fe78bSCy SchubertThe [dbdefaults] section specifies default values for some database 444*7f2fe78bSCy Schubertparameters, to be used if the [dbmodules] subsection does not contain 445*7f2fe78bSCy Schuberta relation for the tag. See the :ref:`dbmodules` section for the 446*7f2fe78bSCy Schubertdefinitions of these relations. 447*7f2fe78bSCy Schubert 448*7f2fe78bSCy Schubert* **ldap_kerberos_container_dn** 449*7f2fe78bSCy Schubert* **ldap_kdc_dn** 450*7f2fe78bSCy Schubert* **ldap_kdc_sasl_authcid** 451*7f2fe78bSCy Schubert* **ldap_kdc_sasl_authzid** 452*7f2fe78bSCy Schubert* **ldap_kdc_sasl_mech** 453*7f2fe78bSCy Schubert* **ldap_kdc_sasl_realm** 454*7f2fe78bSCy Schubert* **ldap_kadmind_dn** 455*7f2fe78bSCy Schubert* **ldap_kadmind_sasl_authcid** 456*7f2fe78bSCy Schubert* **ldap_kadmind_sasl_authzid** 457*7f2fe78bSCy Schubert* **ldap_kadmind_sasl_mech** 458*7f2fe78bSCy Schubert* **ldap_kadmind_sasl_realm** 459*7f2fe78bSCy Schubert* **ldap_service_password_file** 460*7f2fe78bSCy Schubert* **ldap_conns_per_server** 461*7f2fe78bSCy Schubert 462*7f2fe78bSCy Schubert 463*7f2fe78bSCy Schubert.. _dbmodules: 464*7f2fe78bSCy Schubert 465*7f2fe78bSCy Schubert[dbmodules] 466*7f2fe78bSCy Schubert~~~~~~~~~~~ 467*7f2fe78bSCy Schubert 468*7f2fe78bSCy SchubertThe [dbmodules] section contains parameters used by the KDC database 469*7f2fe78bSCy Schubertlibrary and database modules. Each tag in the [dbmodules] section is 470*7f2fe78bSCy Schubertthe name of a Kerberos realm or a section name specified by a realm's 471*7f2fe78bSCy Schubert**database_module** parameter. The following example shows how to 472*7f2fe78bSCy Schubertdefine one database parameter for the ATHENA.MIT.EDU realm:: 473*7f2fe78bSCy Schubert 474*7f2fe78bSCy Schubert [dbmodules] 475*7f2fe78bSCy Schubert ATHENA.MIT.EDU = { 476*7f2fe78bSCy Schubert disable_last_success = true 477*7f2fe78bSCy Schubert } 478*7f2fe78bSCy Schubert 479*7f2fe78bSCy SchubertThe following tags may be specified in a [dbmodules] subsection: 480*7f2fe78bSCy Schubert 481*7f2fe78bSCy Schubert**database_name** 482*7f2fe78bSCy Schubert This DB2-specific tag indicates the location of the database in 483*7f2fe78bSCy Schubert the filesystem. The default is |kdcdir|\ ``/principal``. 484*7f2fe78bSCy Schubert 485*7f2fe78bSCy Schubert**db_library** 486*7f2fe78bSCy Schubert This tag indicates the name of the loadable database module. The 487*7f2fe78bSCy Schubert value should be ``db2`` for the DB2 module, ``klmdb`` for the LMDB 488*7f2fe78bSCy Schubert module, or ``kldap`` for the LDAP module. 489*7f2fe78bSCy Schubert 490*7f2fe78bSCy Schubert**disable_last_success** 491*7f2fe78bSCy Schubert If set to ``true``, suppresses KDC updates to the "Last successful 492*7f2fe78bSCy Schubert authentication" field of principal entries requiring 493*7f2fe78bSCy Schubert preauthentication. Setting this flag may improve performance. 494*7f2fe78bSCy Schubert (Principal entries which do not require preauthentication never 495*7f2fe78bSCy Schubert update the "Last successful authentication" field.). First 496*7f2fe78bSCy Schubert introduced in release 1.9. 497*7f2fe78bSCy Schubert 498*7f2fe78bSCy Schubert**disable_lockout** 499*7f2fe78bSCy Schubert If set to ``true``, suppresses KDC updates to the "Last failed 500*7f2fe78bSCy Schubert authentication" and "Failed password attempts" fields of principal 501*7f2fe78bSCy Schubert entries requiring preauthentication. Setting this flag may 502*7f2fe78bSCy Schubert improve performance, but also disables account lockout. First 503*7f2fe78bSCy Schubert introduced in release 1.9. 504*7f2fe78bSCy Schubert 505*7f2fe78bSCy Schubert**ldap_conns_per_server** 506*7f2fe78bSCy Schubert This LDAP-specific tag indicates the number of connections to be 507*7f2fe78bSCy Schubert maintained per LDAP server. 508*7f2fe78bSCy Schubert 509*7f2fe78bSCy Schubert**ldap_kdc_dn** and **ldap_kadmind_dn** 510*7f2fe78bSCy Schubert These LDAP-specific tags indicate the default DN for binding to 511*7f2fe78bSCy Schubert the LDAP server. The :ref:`krb5kdc(8)` daemon uses 512*7f2fe78bSCy Schubert **ldap_kdc_dn**, while the :ref:`kadmind(8)` daemon and other 513*7f2fe78bSCy Schubert administrative programs use **ldap_kadmind_dn**. The kadmind DN 514*7f2fe78bSCy Schubert must have the rights to read and write the Kerberos data in the 515*7f2fe78bSCy Schubert LDAP database. The KDC DN must have the same rights, unless 516*7f2fe78bSCy Schubert **disable_lockout** and **disable_last_success** are true, in 517*7f2fe78bSCy Schubert which case it only needs to have rights to read the Kerberos data. 518*7f2fe78bSCy Schubert These tags are ignored if a SASL mechanism is set with 519*7f2fe78bSCy Schubert **ldap_kdc_sasl_mech** or **ldap_kadmind_sasl_mech**. 520*7f2fe78bSCy Schubert 521*7f2fe78bSCy Schubert**ldap_kdc_sasl_mech** and **ldap_kadmind_sasl_mech** 522*7f2fe78bSCy Schubert These LDAP-specific tags specify the SASL mechanism (such as 523*7f2fe78bSCy Schubert ``EXTERNAL``) to use when binding to the LDAP server. New in 524*7f2fe78bSCy Schubert release 1.13. 525*7f2fe78bSCy Schubert 526*7f2fe78bSCy Schubert**ldap_kdc_sasl_authcid** and **ldap_kadmind_sasl_authcid** 527*7f2fe78bSCy Schubert These LDAP-specific tags specify the SASL authentication identity 528*7f2fe78bSCy Schubert to use when binding to the LDAP server. Not all SASL mechanisms 529*7f2fe78bSCy Schubert require an authentication identity. If the SASL mechanism 530*7f2fe78bSCy Schubert requires a secret (such as the password for ``DIGEST-MD5``), these 531*7f2fe78bSCy Schubert tags also determine the name within the 532*7f2fe78bSCy Schubert **ldap_service_password_file** where the secret is stashed. New 533*7f2fe78bSCy Schubert in release 1.13. 534*7f2fe78bSCy Schubert 535*7f2fe78bSCy Schubert**ldap_kdc_sasl_authzid** and **ldap_kadmind_sasl_authzid** 536*7f2fe78bSCy Schubert These LDAP-specific tags specify the SASL authorization identity 537*7f2fe78bSCy Schubert to use when binding to the LDAP server. In most circumstances 538*7f2fe78bSCy Schubert they do not need to be specified. New in release 1.13. 539*7f2fe78bSCy Schubert 540*7f2fe78bSCy Schubert**ldap_kdc_sasl_realm** and **ldap_kadmind_sasl_realm** 541*7f2fe78bSCy Schubert These LDAP-specific tags specify the SASL realm to use when 542*7f2fe78bSCy Schubert binding to the LDAP server. In most circumstances they do not 543*7f2fe78bSCy Schubert need to be set. New in release 1.13. 544*7f2fe78bSCy Schubert 545*7f2fe78bSCy Schubert**ldap_kerberos_container_dn** 546*7f2fe78bSCy Schubert This LDAP-specific tag indicates the DN of the container object 547*7f2fe78bSCy Schubert where the realm objects will be located. 548*7f2fe78bSCy Schubert 549*7f2fe78bSCy Schubert**ldap_servers** 550*7f2fe78bSCy Schubert This LDAP-specific tag indicates the list of LDAP servers that the 551*7f2fe78bSCy Schubert Kerberos servers can connect to. The list of LDAP servers is 552*7f2fe78bSCy Schubert whitespace-separated. The LDAP server is specified by a LDAP URI. 553*7f2fe78bSCy Schubert It is recommended to use ``ldapi:`` or ``ldaps:`` URLs to connect 554*7f2fe78bSCy Schubert to the LDAP server. 555*7f2fe78bSCy Schubert 556*7f2fe78bSCy Schubert**ldap_service_password_file** 557*7f2fe78bSCy Schubert This LDAP-specific tag indicates the file containing the stashed 558*7f2fe78bSCy Schubert passwords (created by ``kdb5_ldap_util stashsrvpw``) for the 559*7f2fe78bSCy Schubert **ldap_kdc_dn** and **ldap_kadmind_dn** objects, or for the 560*7f2fe78bSCy Schubert **ldap_kdc_sasl_authcid** or **ldap_kadmind_sasl_authcid** names 561*7f2fe78bSCy Schubert for SASL authentication. This file must be kept secure. 562*7f2fe78bSCy Schubert 563*7f2fe78bSCy Schubert**mapsize** 564*7f2fe78bSCy Schubert This LMDB-specific tag indicates the maximum size of the two 565*7f2fe78bSCy Schubert database environments in megabytes. The default value is 128. 566*7f2fe78bSCy Schubert Increase this value to address "Environment mapsize limit reached" 567*7f2fe78bSCy Schubert errors. New in release 1.17. 568*7f2fe78bSCy Schubert 569*7f2fe78bSCy Schubert**max_readers** 570*7f2fe78bSCy Schubert This LMDB-specific tag indicates the maximum number of concurrent 571*7f2fe78bSCy Schubert reading processes for the databases. The default value is 128. 572*7f2fe78bSCy Schubert New in release 1.17. 573*7f2fe78bSCy Schubert 574*7f2fe78bSCy Schubert**nosync** 575*7f2fe78bSCy Schubert This LMDB-specific tag can be set to improve the throughput of 576*7f2fe78bSCy Schubert kadmind and other administrative agents, at the expense of 577*7f2fe78bSCy Schubert durability (recent database changes may not survive a power outage 578*7f2fe78bSCy Schubert or other sudden reboot). It does not affect the throughput of the 579*7f2fe78bSCy Schubert KDC. The default value is false. New in release 1.17. 580*7f2fe78bSCy Schubert 581*7f2fe78bSCy Schubert**unlockiter** 582*7f2fe78bSCy Schubert If set to ``true``, this DB2-specific tag causes iteration 583*7f2fe78bSCy Schubert operations to release the database lock while processing each 584*7f2fe78bSCy Schubert principal. Setting this flag to ``true`` can prevent extended 585*7f2fe78bSCy Schubert blocking of KDC or kadmin operations when dumps of large databases 586*7f2fe78bSCy Schubert are in progress. First introduced in release 1.13. 587*7f2fe78bSCy Schubert 588*7f2fe78bSCy SchubertThe following tag may be specified directly in the [dbmodules] 589*7f2fe78bSCy Schubertsection to control where database modules are loaded from: 590*7f2fe78bSCy Schubert 591*7f2fe78bSCy Schubert**db_module_dir** 592*7f2fe78bSCy Schubert This tag controls where the plugin system looks for database 593*7f2fe78bSCy Schubert modules. The value should be an absolute path. 594*7f2fe78bSCy Schubert 595*7f2fe78bSCy Schubert.. _logging: 596*7f2fe78bSCy Schubert 597*7f2fe78bSCy Schubert[logging] 598*7f2fe78bSCy Schubert~~~~~~~~~ 599*7f2fe78bSCy Schubert 600*7f2fe78bSCy SchubertThe [logging] section indicates how :ref:`krb5kdc(8)` and 601*7f2fe78bSCy Schubert:ref:`kadmind(8)` perform logging. It may contain the following 602*7f2fe78bSCy Schubertrelations: 603*7f2fe78bSCy Schubert 604*7f2fe78bSCy Schubert**admin_server** 605*7f2fe78bSCy Schubert Specifies how :ref:`kadmind(8)` performs logging. 606*7f2fe78bSCy Schubert 607*7f2fe78bSCy Schubert**kdc** 608*7f2fe78bSCy Schubert Specifies how :ref:`krb5kdc(8)` performs logging. 609*7f2fe78bSCy Schubert 610*7f2fe78bSCy Schubert**default** 611*7f2fe78bSCy Schubert Specifies how either daemon performs logging in the absence of 612*7f2fe78bSCy Schubert relations specific to the daemon. 613*7f2fe78bSCy Schubert 614*7f2fe78bSCy Schubert**debug** 615*7f2fe78bSCy Schubert (Boolean value.) Specifies whether debugging messages are 616*7f2fe78bSCy Schubert included in log outputs other than SYSLOG. Debugging messages are 617*7f2fe78bSCy Schubert always included in the system log output because syslog performs 618*7f2fe78bSCy Schubert its own priority filtering. The default value is false. New in 619*7f2fe78bSCy Schubert release 1.15. 620*7f2fe78bSCy Schubert 621*7f2fe78bSCy SchubertLogging specifications may have the following forms: 622*7f2fe78bSCy Schubert 623*7f2fe78bSCy Schubert**FILE=**\ *filename* or **FILE:**\ *filename* 624*7f2fe78bSCy Schubert This value causes the daemon's logging messages to go to the 625*7f2fe78bSCy Schubert *filename*. If the ``=`` form is used, the file is overwritten. 626*7f2fe78bSCy Schubert If the ``:`` form is used, the file is appended to. 627*7f2fe78bSCy Schubert 628*7f2fe78bSCy Schubert**STDERR** 629*7f2fe78bSCy Schubert This value causes the daemon's logging messages to go to its 630*7f2fe78bSCy Schubert standard error stream. 631*7f2fe78bSCy Schubert 632*7f2fe78bSCy Schubert**CONSOLE** 633*7f2fe78bSCy Schubert This value causes the daemon's logging messages to go to the 634*7f2fe78bSCy Schubert console, if the system supports it. 635*7f2fe78bSCy Schubert 636*7f2fe78bSCy Schubert**DEVICE=**\ *<devicename>* 637*7f2fe78bSCy Schubert This causes the daemon's logging messages to go to the specified 638*7f2fe78bSCy Schubert device. 639*7f2fe78bSCy Schubert 640*7f2fe78bSCy Schubert**SYSLOG**\ [\ **:**\ *severity*\ [\ **:**\ *facility*\ ]] 641*7f2fe78bSCy Schubert This causes the daemon's logging messages to go to the system log. 642*7f2fe78bSCy Schubert 643*7f2fe78bSCy Schubert For backward compatibility, a severity argument may be specified, 644*7f2fe78bSCy Schubert and must be specified in order to specify a facility. This 645*7f2fe78bSCy Schubert argument will be ignored. 646*7f2fe78bSCy Schubert 647*7f2fe78bSCy Schubert The facility argument specifies the facility under which the 648*7f2fe78bSCy Schubert messages are logged. This may be any of the following facilities 649*7f2fe78bSCy Schubert supported by the syslog(3) call minus the LOG\_ prefix: **KERN**, 650*7f2fe78bSCy Schubert **USER**, **MAIL**, **DAEMON**, **AUTH**, **LPR**, **NEWS**, 651*7f2fe78bSCy Schubert **UUCP**, **CRON**, and **LOCAL0** through **LOCAL7**. If no 652*7f2fe78bSCy Schubert facility is specified, the default is **AUTH**. 653*7f2fe78bSCy Schubert 654*7f2fe78bSCy SchubertIn the following example, the logging messages from the KDC will go to 655*7f2fe78bSCy Schubertthe console and to the system log under the facility LOG_DAEMON, and 656*7f2fe78bSCy Schubertthe logging messages from the administrative server will be appended 657*7f2fe78bSCy Schubertto the file ``/var/adm/kadmin.log`` and sent to the device 658*7f2fe78bSCy Schubert``/dev/tty04``. :: 659*7f2fe78bSCy Schubert 660*7f2fe78bSCy Schubert [logging] 661*7f2fe78bSCy Schubert kdc = CONSOLE 662*7f2fe78bSCy Schubert kdc = SYSLOG:INFO:DAEMON 663*7f2fe78bSCy Schubert admin_server = FILE:/var/adm/kadmin.log 664*7f2fe78bSCy Schubert admin_server = DEVICE=/dev/tty04 665*7f2fe78bSCy Schubert 666*7f2fe78bSCy SchubertIf no logging specification is given, the default is to use syslog. 667*7f2fe78bSCy SchubertTo disable logging entirely, specify ``default = DEVICE=/dev/null``. 668*7f2fe78bSCy Schubert 669*7f2fe78bSCy Schubert 670*7f2fe78bSCy Schubert.. _otp: 671*7f2fe78bSCy Schubert 672*7f2fe78bSCy Schubert[otp] 673*7f2fe78bSCy Schubert~~~~~ 674*7f2fe78bSCy Schubert 675*7f2fe78bSCy SchubertEach subsection of [otp] is the name of an OTP token type. The tags 676*7f2fe78bSCy Schubertwithin the subsection define the configuration required to forward a 677*7f2fe78bSCy SchubertOne Time Password request to a RADIUS server. 678*7f2fe78bSCy Schubert 679*7f2fe78bSCy SchubertFor each token type, the following tags may be specified: 680*7f2fe78bSCy Schubert 681*7f2fe78bSCy Schubert**server** 682*7f2fe78bSCy Schubert This is the server to send the RADIUS request to. It can be a 683*7f2fe78bSCy Schubert hostname with optional port, an ip address with optional port, or 684*7f2fe78bSCy Schubert a Unix domain socket address. The default is 685*7f2fe78bSCy Schubert |kdcdir|\ ``/<name>.socket``. 686*7f2fe78bSCy Schubert 687*7f2fe78bSCy Schubert**secret** 688*7f2fe78bSCy Schubert This tag indicates a filename (which may be relative to |kdcdir|) 689*7f2fe78bSCy Schubert containing the secret used to encrypt the RADIUS packets. The 690*7f2fe78bSCy Schubert secret should appear in the first line of the file by itself; 691*7f2fe78bSCy Schubert leading and trailing whitespace on the line will be removed. If 692*7f2fe78bSCy Schubert the value of **server** is a Unix domain socket address, this tag 693*7f2fe78bSCy Schubert is optional, and an empty secret will be used if it is not 694*7f2fe78bSCy Schubert specified. Otherwise, this tag is required. 695*7f2fe78bSCy Schubert 696*7f2fe78bSCy Schubert**timeout** 697*7f2fe78bSCy Schubert An integer which specifies the time in seconds during which the 698*7f2fe78bSCy Schubert KDC should attempt to contact the RADIUS server. This tag is the 699*7f2fe78bSCy Schubert total time across all retries and should be less than the time 700*7f2fe78bSCy Schubert which an OTP value remains valid for. The default is 5 seconds. 701*7f2fe78bSCy Schubert 702*7f2fe78bSCy Schubert**retries** 703*7f2fe78bSCy Schubert This tag specifies the number of retries to make to the RADIUS 704*7f2fe78bSCy Schubert server. The default is 3 retries (4 tries). 705*7f2fe78bSCy Schubert 706*7f2fe78bSCy Schubert**strip_realm** 707*7f2fe78bSCy Schubert If this tag is ``true``, the principal without the realm will be 708*7f2fe78bSCy Schubert passed to the RADIUS server. Otherwise, the realm will be 709*7f2fe78bSCy Schubert included. The default value is ``true``. 710*7f2fe78bSCy Schubert 711*7f2fe78bSCy Schubert**indicator** 712*7f2fe78bSCy Schubert This tag specifies an authentication indicator to be included in 713*7f2fe78bSCy Schubert the ticket if this token type is used to authenticate. This 714*7f2fe78bSCy Schubert option may be specified multiple times. (New in release 1.14.) 715*7f2fe78bSCy Schubert 716*7f2fe78bSCy SchubertIn the following example, requests are sent to a remote server via UDP:: 717*7f2fe78bSCy Schubert 718*7f2fe78bSCy Schubert [otp] 719*7f2fe78bSCy Schubert MyRemoteTokenType = { 720*7f2fe78bSCy Schubert server = radius.mydomain.com:1812 721*7f2fe78bSCy Schubert secret = SEmfiajf42$ 722*7f2fe78bSCy Schubert timeout = 15 723*7f2fe78bSCy Schubert retries = 5 724*7f2fe78bSCy Schubert strip_realm = true 725*7f2fe78bSCy Schubert } 726*7f2fe78bSCy Schubert 727*7f2fe78bSCy SchubertAn implicit default token type named ``DEFAULT`` is defined for when 728*7f2fe78bSCy Schubertthe per-principal configuration does not specify a token type. Its 729*7f2fe78bSCy Schubertconfiguration is shown below. You may override this token type to 730*7f2fe78bSCy Schubertsomething applicable for your situation:: 731*7f2fe78bSCy Schubert 732*7f2fe78bSCy Schubert [otp] 733*7f2fe78bSCy Schubert DEFAULT = { 734*7f2fe78bSCy Schubert strip_realm = false 735*7f2fe78bSCy Schubert } 736*7f2fe78bSCy Schubert 737*7f2fe78bSCy SchubertPKINIT options 738*7f2fe78bSCy Schubert-------------- 739*7f2fe78bSCy Schubert 740*7f2fe78bSCy Schubert.. note:: 741*7f2fe78bSCy Schubert 742*7f2fe78bSCy Schubert The following are pkinit-specific options. These values may 743*7f2fe78bSCy Schubert be specified in [kdcdefaults] as global defaults, or within 744*7f2fe78bSCy Schubert a realm-specific subsection of [realms]. Also note that a 745*7f2fe78bSCy Schubert realm-specific value over-rides, does not add to, a generic 746*7f2fe78bSCy Schubert [kdcdefaults] specification. The search order is: 747*7f2fe78bSCy Schubert 748*7f2fe78bSCy Schubert1. realm-specific subsection of [realms]:: 749*7f2fe78bSCy Schubert 750*7f2fe78bSCy Schubert [realms] 751*7f2fe78bSCy Schubert EXAMPLE.COM = { 752*7f2fe78bSCy Schubert pkinit_anchors = FILE:/usr/local/example.com.crt 753*7f2fe78bSCy Schubert } 754*7f2fe78bSCy Schubert 755*7f2fe78bSCy Schubert2. generic value in the [kdcdefaults] section:: 756*7f2fe78bSCy Schubert 757*7f2fe78bSCy Schubert [kdcdefaults] 758*7f2fe78bSCy Schubert pkinit_anchors = DIR:/usr/local/generic_trusted_cas/ 759*7f2fe78bSCy Schubert 760*7f2fe78bSCy SchubertFor information about the syntax of some of these options, see 761*7f2fe78bSCy Schubert:ref:`Specifying PKINIT identity information <pkinit_identity>` in 762*7f2fe78bSCy Schubert:ref:`krb5.conf(5)`. 763*7f2fe78bSCy Schubert 764*7f2fe78bSCy Schubert**pkinit_anchors** 765*7f2fe78bSCy Schubert Specifies the location of trusted anchor (root) certificates which 766*7f2fe78bSCy Schubert the KDC trusts to sign client certificates. This option is 767*7f2fe78bSCy Schubert required if pkinit is to be supported by the KDC. This option may 768*7f2fe78bSCy Schubert be specified multiple times. 769*7f2fe78bSCy Schubert 770*7f2fe78bSCy Schubert**pkinit_dh_min_bits** 771*7f2fe78bSCy Schubert Specifies the minimum number of bits the KDC is willing to accept 772*7f2fe78bSCy Schubert for a client's Diffie-Hellman key. The default is 2048. 773*7f2fe78bSCy Schubert 774*7f2fe78bSCy Schubert**pkinit_allow_upn** 775*7f2fe78bSCy Schubert Specifies that the KDC is willing to accept client certificates 776*7f2fe78bSCy Schubert with the Microsoft UserPrincipalName (UPN) Subject Alternative 777*7f2fe78bSCy Schubert Name (SAN). This means the KDC accepts the binding of the UPN in 778*7f2fe78bSCy Schubert the certificate to the Kerberos principal name. The default value 779*7f2fe78bSCy Schubert is false. 780*7f2fe78bSCy Schubert 781*7f2fe78bSCy Schubert Without this option, the KDC will only accept certificates with 782*7f2fe78bSCy Schubert the id-pkinit-san as defined in :rfc:`4556`. There is currently 783*7f2fe78bSCy Schubert no option to disable SAN checking in the KDC. 784*7f2fe78bSCy Schubert 785*7f2fe78bSCy Schubert**pkinit_eku_checking** 786*7f2fe78bSCy Schubert This option specifies what Extended Key Usage (EKU) values the KDC 787*7f2fe78bSCy Schubert is willing to accept in client certificates. The values 788*7f2fe78bSCy Schubert recognized in the kdc.conf file are: 789*7f2fe78bSCy Schubert 790*7f2fe78bSCy Schubert **kpClientAuth** 791*7f2fe78bSCy Schubert This is the default value and specifies that client 792*7f2fe78bSCy Schubert certificates must have the id-pkinit-KPClientAuth EKU as 793*7f2fe78bSCy Schubert defined in :rfc:`4556`. 794*7f2fe78bSCy Schubert 795*7f2fe78bSCy Schubert **scLogin** 796*7f2fe78bSCy Schubert If scLogin is specified, client certificates with the 797*7f2fe78bSCy Schubert Microsoft Smart Card Login EKU (id-ms-kp-sc-logon) will be 798*7f2fe78bSCy Schubert accepted. 799*7f2fe78bSCy Schubert 800*7f2fe78bSCy Schubert **none** 801*7f2fe78bSCy Schubert If none is specified, then client certificates will not be 802*7f2fe78bSCy Schubert checked to verify they have an acceptable EKU. The use of 803*7f2fe78bSCy Schubert this option is not recommended. 804*7f2fe78bSCy Schubert 805*7f2fe78bSCy Schubert**pkinit_identity** 806*7f2fe78bSCy Schubert Specifies the location of the KDC's X.509 identity information. 807*7f2fe78bSCy Schubert This option is required if pkinit is to be supported by the KDC. 808*7f2fe78bSCy Schubert 809*7f2fe78bSCy Schubert**pkinit_indicator** 810*7f2fe78bSCy Schubert Specifies an authentication indicator to include in the ticket if 811*7f2fe78bSCy Schubert pkinit is used to authenticate. This option may be specified 812*7f2fe78bSCy Schubert multiple times. (New in release 1.14.) 813*7f2fe78bSCy Schubert 814*7f2fe78bSCy Schubert**pkinit_pool** 815*7f2fe78bSCy Schubert Specifies the location of intermediate certificates which may be 816*7f2fe78bSCy Schubert used by the KDC to complete the trust chain between a client's 817*7f2fe78bSCy Schubert certificate and a trusted anchor. This option may be specified 818*7f2fe78bSCy Schubert multiple times. 819*7f2fe78bSCy Schubert 820*7f2fe78bSCy Schubert**pkinit_revoke** 821*7f2fe78bSCy Schubert Specifies the location of Certificate Revocation List (CRL) 822*7f2fe78bSCy Schubert information to be used by the KDC when verifying the validity of 823*7f2fe78bSCy Schubert client certificates. This option may be specified multiple times. 824*7f2fe78bSCy Schubert 825*7f2fe78bSCy Schubert**pkinit_require_crl_checking** 826*7f2fe78bSCy Schubert The default certificate verification process will always check the 827*7f2fe78bSCy Schubert available revocation information to see if a certificate has been 828*7f2fe78bSCy Schubert revoked. If a match is found for the certificate in a CRL, 829*7f2fe78bSCy Schubert verification fails. If the certificate being verified is not 830*7f2fe78bSCy Schubert listed in a CRL, or there is no CRL present for its issuing CA, 831*7f2fe78bSCy Schubert and **pkinit_require_crl_checking** is false, then verification 832*7f2fe78bSCy Schubert succeeds. 833*7f2fe78bSCy Schubert 834*7f2fe78bSCy Schubert However, if **pkinit_require_crl_checking** is true and there is 835*7f2fe78bSCy Schubert no CRL information available for the issuing CA, then verification 836*7f2fe78bSCy Schubert fails. 837*7f2fe78bSCy Schubert 838*7f2fe78bSCy Schubert **pkinit_require_crl_checking** should be set to true if the 839*7f2fe78bSCy Schubert policy is such that up-to-date CRLs must be present for every CA. 840*7f2fe78bSCy Schubert 841*7f2fe78bSCy Schubert**pkinit_require_freshness** 842*7f2fe78bSCy Schubert Specifies whether to require clients to include a freshness token 843*7f2fe78bSCy Schubert in PKINIT requests. The default value is false. (New in release 844*7f2fe78bSCy Schubert 1.17.) 845*7f2fe78bSCy Schubert 846*7f2fe78bSCy Schubert.. _Encryption_types: 847*7f2fe78bSCy Schubert 848*7f2fe78bSCy SchubertEncryption types 849*7f2fe78bSCy Schubert---------------- 850*7f2fe78bSCy Schubert 851*7f2fe78bSCy SchubertAny tag in the configuration files which requires a list of encryption 852*7f2fe78bSCy Schuberttypes can be set to some combination of the following strings. 853*7f2fe78bSCy SchubertEncryption types marked as "weak" and "deprecated" are available for 854*7f2fe78bSCy Schubertcompatibility but not recommended for use. 855*7f2fe78bSCy Schubert 856*7f2fe78bSCy Schubert==================================================== ========================================================= 857*7f2fe78bSCy Schubertdes3-cbc-raw Triple DES cbc mode raw (weak) 858*7f2fe78bSCy Schubertdes3-cbc-sha1 des3-hmac-sha1 des3-cbc-sha1-kd Triple DES cbc mode with HMAC/sha1 (deprecated) 859*7f2fe78bSCy Schubertaes256-cts-hmac-sha1-96 aes256-cts aes256-sha1 AES-256 CTS mode with 96-bit SHA-1 HMAC 860*7f2fe78bSCy Schubertaes128-cts-hmac-sha1-96 aes128-cts aes128-sha1 AES-128 CTS mode with 96-bit SHA-1 HMAC 861*7f2fe78bSCy Schubertaes256-cts-hmac-sha384-192 aes256-sha2 AES-256 CTS mode with 192-bit SHA-384 HMAC 862*7f2fe78bSCy Schubertaes128-cts-hmac-sha256-128 aes128-sha2 AES-128 CTS mode with 128-bit SHA-256 HMAC 863*7f2fe78bSCy Schubertarcfour-hmac rc4-hmac arcfour-hmac-md5 RC4 with HMAC/MD5 (deprecated) 864*7f2fe78bSCy Schubertarcfour-hmac-exp rc4-hmac-exp arcfour-hmac-md5-exp Exportable RC4 with HMAC/MD5 (weak) 865*7f2fe78bSCy Schubertcamellia256-cts-cmac camellia256-cts Camellia-256 CTS mode with CMAC 866*7f2fe78bSCy Schubertcamellia128-cts-cmac camellia128-cts Camellia-128 CTS mode with CMAC 867*7f2fe78bSCy Schubertdes3 The triple DES family: des3-cbc-sha1 868*7f2fe78bSCy Schubertaes The AES family: aes256-cts-hmac-sha1-96, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha384-192, and aes128-cts-hmac-sha256-128 869*7f2fe78bSCy Schubertrc4 The RC4 family: arcfour-hmac 870*7f2fe78bSCy Schubertcamellia The Camellia family: camellia256-cts-cmac and camellia128-cts-cmac 871*7f2fe78bSCy Schubert==================================================== ========================================================= 872*7f2fe78bSCy Schubert 873*7f2fe78bSCy SchubertThe string **DEFAULT** can be used to refer to the default set of 874*7f2fe78bSCy Schuberttypes for the variable in question. Types or families can be removed 875*7f2fe78bSCy Schubertfrom the current list by prefixing them with a minus sign ("-"). 876*7f2fe78bSCy SchubertTypes or families can be prefixed with a plus sign ("+") for symmetry; 877*7f2fe78bSCy Schubertit has the same meaning as just listing the type or family. For 878*7f2fe78bSCy Schubertexample, "``DEFAULT -rc4``" would be the default set of encryption 879*7f2fe78bSCy Schuberttypes with RC4 types removed, and "``des3 DEFAULT``" would be the 880*7f2fe78bSCy Schubertdefault set of encryption types with triple DES types moved to the 881*7f2fe78bSCy Schubertfront. 882*7f2fe78bSCy Schubert 883*7f2fe78bSCy SchubertWhile **aes128-cts** and **aes256-cts** are supported for all Kerberos 884*7f2fe78bSCy Schubertoperations, they are not supported by very old versions of our GSSAPI 885*7f2fe78bSCy Schubertimplementation (krb5-1.3.1 and earlier). Services running versions of 886*7f2fe78bSCy Schubertkrb5 without AES support must not be given keys of these encryption 887*7f2fe78bSCy Schuberttypes in the KDC database. 888*7f2fe78bSCy Schubert 889*7f2fe78bSCy SchubertThe **aes128-sha2** and **aes256-sha2** encryption types are new in 890*7f2fe78bSCy Schubertrelease 1.15. Services running versions of krb5 without support for 891*7f2fe78bSCy Schubertthese newer encryption types must not be given keys of these 892*7f2fe78bSCy Schubertencryption types in the KDC database. 893*7f2fe78bSCy Schubert 894*7f2fe78bSCy Schubert 895*7f2fe78bSCy Schubert.. _Keysalt_lists: 896*7f2fe78bSCy Schubert 897*7f2fe78bSCy SchubertKeysalt lists 898*7f2fe78bSCy Schubert------------- 899*7f2fe78bSCy Schubert 900*7f2fe78bSCy SchubertKerberos keys for users are usually derived from passwords. Kerberos 901*7f2fe78bSCy Schubertcommands and configuration parameters that affect generation of keys 902*7f2fe78bSCy Schuberttake lists of enctype-salttype ("keysalt") pairs, known as *keysalt 903*7f2fe78bSCy Schubertlists*. Each keysalt pair is an enctype name followed by a salttype 904*7f2fe78bSCy Schubertname, in the format *enc*:*salt*. Individual keysalt list members are 905*7f2fe78bSCy Schubertseparated by comma (",") characters or space characters. For example:: 906*7f2fe78bSCy Schubert 907*7f2fe78bSCy Schubert kadmin -e aes256-cts:normal,aes128-cts:normal 908*7f2fe78bSCy Schubert 909*7f2fe78bSCy Schubertwould start up kadmin so that by default it would generate 910*7f2fe78bSCy Schubertpassword-derived keys for the **aes256-cts** and **aes128-cts** 911*7f2fe78bSCy Schubertencryption types, using a **normal** salt. 912*7f2fe78bSCy Schubert 913*7f2fe78bSCy SchubertTo ensure that people who happen to pick the same password do not have 914*7f2fe78bSCy Schubertthe same key, Kerberos 5 incorporates more information into the key 915*7f2fe78bSCy Schubertusing something called a salt. The supported salt types are as 916*7f2fe78bSCy Schubertfollows: 917*7f2fe78bSCy Schubert 918*7f2fe78bSCy Schubert================= ============================================ 919*7f2fe78bSCy Schubertnormal default for Kerberos Version 5 920*7f2fe78bSCy Schubertnorealm same as the default, without using realm information 921*7f2fe78bSCy Schubertonlyrealm uses only realm information as the salt 922*7f2fe78bSCy Schubertspecial generate a random salt 923*7f2fe78bSCy Schubert================= ============================================ 924*7f2fe78bSCy Schubert 925*7f2fe78bSCy Schubert 926*7f2fe78bSCy SchubertSample kdc.conf File 927*7f2fe78bSCy Schubert-------------------- 928*7f2fe78bSCy Schubert 929*7f2fe78bSCy SchubertHere's an example of a kdc.conf file:: 930*7f2fe78bSCy Schubert 931*7f2fe78bSCy Schubert [kdcdefaults] 932*7f2fe78bSCy Schubert kdc_listen = 88 933*7f2fe78bSCy Schubert kdc_tcp_listen = 88 934*7f2fe78bSCy Schubert [realms] 935*7f2fe78bSCy Schubert ATHENA.MIT.EDU = { 936*7f2fe78bSCy Schubert kadmind_port = 749 937*7f2fe78bSCy Schubert max_life = 12h 0m 0s 938*7f2fe78bSCy Schubert max_renewable_life = 7d 0h 0m 0s 939*7f2fe78bSCy Schubert master_key_type = aes256-cts-hmac-sha1-96 940*7f2fe78bSCy Schubert supported_enctypes = aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal 941*7f2fe78bSCy Schubert database_module = openldap_ldapconf 942*7f2fe78bSCy Schubert } 943*7f2fe78bSCy Schubert 944*7f2fe78bSCy Schubert [logging] 945*7f2fe78bSCy Schubert kdc = FILE:/usr/local/var/krb5kdc/kdc.log 946*7f2fe78bSCy Schubert admin_server = FILE:/usr/local/var/krb5kdc/kadmin.log 947*7f2fe78bSCy Schubert 948*7f2fe78bSCy Schubert [dbdefaults] 949*7f2fe78bSCy Schubert ldap_kerberos_container_dn = cn=krbcontainer,dc=mit,dc=edu 950*7f2fe78bSCy Schubert 951*7f2fe78bSCy Schubert [dbmodules] 952*7f2fe78bSCy Schubert openldap_ldapconf = { 953*7f2fe78bSCy Schubert db_library = kldap 954*7f2fe78bSCy Schubert disable_last_success = true 955*7f2fe78bSCy Schubert ldap_kdc_dn = "cn=krbadmin,dc=mit,dc=edu" 956*7f2fe78bSCy Schubert # this object needs to have read rights on 957*7f2fe78bSCy Schubert # the realm container and principal subtrees 958*7f2fe78bSCy Schubert ldap_kadmind_dn = "cn=krbadmin,dc=mit,dc=edu" 959*7f2fe78bSCy Schubert # this object needs to have read and write rights on 960*7f2fe78bSCy Schubert # the realm container and principal subtrees 961*7f2fe78bSCy Schubert ldap_service_password_file = /etc/kerberos/service.keyfile 962*7f2fe78bSCy Schubert ldap_servers = ldaps://kerberos.mit.edu 963*7f2fe78bSCy Schubert ldap_conns_per_server = 5 964*7f2fe78bSCy Schubert } 965*7f2fe78bSCy Schubert 966*7f2fe78bSCy Schubert 967*7f2fe78bSCy SchubertFILES 968*7f2fe78bSCy Schubert------ 969*7f2fe78bSCy Schubert 970*7f2fe78bSCy Schubert|kdcdir|\ ``/kdc.conf`` 971*7f2fe78bSCy Schubert 972*7f2fe78bSCy Schubert 973*7f2fe78bSCy SchubertSEE ALSO 974*7f2fe78bSCy Schubert--------- 975*7f2fe78bSCy Schubert 976*7f2fe78bSCy Schubert:ref:`krb5.conf(5)`, :ref:`krb5kdc(8)`, :ref:`kadm5.acl(5)` 977