xref: /freebsd/crypto/krb5/doc/admin/conf_files/kdc_conf.rst (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
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