Windows: Enable weak crypto by default
[heimdal.git] / lib / krb5 / krb5.conf.5
blob8e02eb12662b883d946cd11bb7d29c15d631d2b5
1 .\" Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan
2 .\" (Royal Institute of Technology, Stockholm, Sweden).
3 .\" All rights reserved.
4 .\"
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
7 .\" are met:
8 .\"
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\"
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\"    notice, this list of conditions and the following disclaimer in the
14 .\"    documentation and/or other materials provided with the distribution.
15 .\"
16 .\" 3. Neither the name of the Institute nor the names of its contributors
17 .\"    may be used to endorse or promote products derived from this software
18 .\"    without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\" $Id$
33 .\"
34 .Dd May  4, 2005
35 .Dt KRB5.CONF 5
36 .Os HEIMDAL
37 .Sh NAME
38 .Nm krb5.conf
39 .Nd configuration file for Kerberos 5
40 .Sh SYNOPSIS
41 .In krb5.h
42 .Sh DESCRIPTION
43 The
44 .Nm
45 file specifies several configuration parameters for the Kerberos 5
46 library, as well as for some programs.
47 .Pp
48 The file consists of one or more sections, containing a number of
49 bindings.
50 The value of each binding can be either a string or a list of other
51 bindings.
52 The grammar looks like:
53 .Bd -literal -offset indent
54 file:
55         /* empty */
56         sections
58 sections:
59         section sections
60         section
62 section:
63         '[' section_name ']' bindings
65 section_name:
66         STRING
68 bindings:
69         binding bindings
70         binding
72 binding:
73         name '=' STRING
74         name '=' '{' bindings '}'
76 name:
77         STRING
79 .Ed
80 .Li STRINGs
81 consists of one or more non-whitespace characters.
82 .Pp
83 STRINGs that are specified later in this man-page uses the following
84 notation.
85 .Bl -tag -width "xxx" -offset indent
86 .It boolean
87 values can be either yes/true or no/false.
88 .It time
89 values can be a list of year, month, day, hour, min, second.
90 Example: 1 month 2 days 30 min.
91 If no unit is given, seconds is assumed.
92 .It etypes
93 valid encryption types are: des-cbc-crc, des-cbc-md4, des-cbc-md5,
94 des3-cbc-sha1, arcfour-hmac-md5, aes128-cts-hmac-sha1-96, and
95 aes256-cts-hmac-sha1-96 .
96 .It address
97 an address can be either a IPv4 or a IPv6 address.
98 .El
99 .Pp
100 Currently recognised sections and bindings are:
101 .Bl -tag -width "xxx" -offset indent
102 .It Li [appdefaults]
103 Specifies the default values to be used for Kerberos applications.
104 You can specify defaults per application, realm, or a combination of
105 these.
106 The preference order is:
107 .Bl -enum -compact
109 .Va application Va realm Va option
111 .Va application Va option
113 .Va realm Va option
115 .Va option
118 The supported options are:
119 .Bl -tag -width "xxx" -offset indent
120 .It Li forwardable = Va boolean
121 When obtaining initial credentials, make the credentials forwardable.
122 .It Li proxiable = Va boolean
123 When obtaining initial credentials, make the credentials proxiable.
124 .It Li no-addresses = Va boolean
125 When obtaining initial credentials, request them for an empty set of
126 addresses, making the tickets valid from any address.
127 .It Li ticket_lifetime = Va time
128 Default ticket lifetime.
129 .It Li renew_lifetime = Va time
130 Default renewable ticket lifetime.
131 .It Li encrypt = Va boolean
132 Use encryption, when available.
133 .It Li forward = Va boolean
134 Forward credentials to remote host (for
135 .Xr rsh 1 ,
136 .Xr telnet 1 ,
137 etc).
139 .It Li [libdefaults]
140 .Bl -tag -width "xxx" -offset indent
141 .It Li default_realm = Va REALM
142 Default realm to use, this is also known as your
143 .Dq local realm .
144 The default is the result of
145 .Fn krb5_get_host_realm "local hostname" .
146 .It Li allow_weak_crypto = Va boolean
147 is weaks crypto algorithms allowed to be used, among others, DES is
148 considered weak.
149 .It Li clockskew = Va time
150 Maximum time differential (in seconds) allowed when comparing
151 times.
152 Default is 300 seconds (five minutes).
153 .It Li kdc_timeout = Va time
154 Maximum time to wait for a reply from the kdc, default is 3 seconds.
155 .It Li v4_name_convert
156 .It Li v4_instance_resolve
157 These are described in the
158 .Xr krb5_425_conv_principal  3
159 manual page.
160 .It Li capath = {
161 .Bl -tag -width "xxx" -offset indent
162 .It Va destination-realm Li = Va next-hop-realm
163 .It ...
164 .It Li }
166 This is deprecated, see the 
167 .Li capaths
168 section below.
169 .It Li default_cc_type = Va cctype
170 sets the default credentials type.
171 .It Li default_cc_name = Va ccname
172 the default credentials cache name.
173 If you want to change the type only use
174 .Li default_cc_type .
175 The string can contain variables that are expanded on runtime.
176 Only support variable now is
177 .Li %{uid}
178 that expands to the current user id.
179 .It Li default_etypes = Va etypes ...
180 A list of default encryption types to use.
181 .It Li default_etypes_des = Va etypes ...
182 A list of default encryption types to use when requesting a DES credential.
183 .It Li default_keytab_name = Va keytab
184 The keytab to use if no other is specified, default is
185 .Dq FILE:/etc/krb5.keytab .
186 .It Li dns_lookup_kdc = Va boolean
187 Use DNS SRV records to lookup KDC services location.
188 .It Li dns_lookup_realm = Va boolean
189 Use DNS TXT records to lookup domain to realm mappings.
190 .It Li kdc_timesync = Va boolean
191 Try to keep track of the time differential between the local machine
192 and the KDC, and then compensate for that when issuing requests.
193 .It Li max_retries = Va number
194 The max number of times to try to contact each KDC.
195 .It Li large_msg_size = Va number
196 The threshold where protocols with tiny maximum message sizes are not
197 considered usable to send messages to the KDC.
198 .It Li ticket_lifetime = Va time
199 Default ticket lifetime.
200 .It Li renew_lifetime = Va time
201 Default renewable ticket lifetime.
202 .It Li forwardable = Va boolean
203 When obtaining initial credentials, make the credentials forwardable.
204 This option is also valid in the [realms] section.
205 .It Li proxiable = Va boolean
206 When obtaining initial credentials, make the credentials proxiable.
207 This option is also valid in the [realms] section.
208 .It Li verify_ap_req_nofail = Va boolean
209 If enabled, failure to verify credentials against a local key is a
210 fatal error.
211 The application has to be able to read the corresponding service key
212 for this to work.
213 Some applications, like
214 .Xr su 1 ,
215 enable this option unconditionally.
216 .It Li warn_pwexpire = Va time
217 How soon to warn for expiring password.
218 Default is seven days.
219 .It Li http_proxy = Va proxy-spec
220 A HTTP-proxy to use when talking to the KDC via HTTP.
221 .It Li dns_proxy = Va proxy-spec
222 Enable using DNS via HTTP.
223 .It Li extra_addresses = Va address ...
224 A list of addresses to get tickets for along with all local addresses.
225 .It Li time_format = Va string
226 How to print time strings in logs, this string is passed to
227 .Xr strftime 3 .
228 .It Li date_format = Va string
229 How to print date strings in logs, this string is passed to
230 .Xr strftime 3 .
231 .It Li log_utc = Va boolean
232 Write log-entries using UTC instead of your local time zone.
233 .It Li scan_interfaces = Va boolean
234 Scan all network interfaces for addresses, as opposed to simply using
235 the address associated with the system's host name.
236 .It Li fcache_version = Va int
237 Use file credential cache format version specified.
238 .It Li krb4_get_tickets = Va boolean
239 Also get Kerberos 4 tickets in
240 .Nm kinit ,
241 .Nm login ,
242 and other programs.
243 This option is also valid in the [realms] section.
244 .It Li fcc-mit-ticketflags = Va boolean
245 Use MIT compatible format for file credential cache.
246 It's the field ticketflags that is stored in reverse bit order for
247 older than Heimdal 0.7.
248 Setting this flag to
249 .Dv TRUE
250 make it store the MIT way, this is default for Heimdal 0.7.
251 .It Li check-rd-req-server
252 If set to "ignore", the framework will ignore any the server input to
253 .Xr krb5_rd_req 3, 
254 this is very useful when the GSS-API server input the
255 wrong server name into the gss_accept_sec_context call.
257 .It Li [domain_realm]
258 This is a list of mappings from DNS domain to Kerberos realm.
259 Each binding in this section looks like:
261 .Dl domain = realm
263 The domain can be either a full name of a host or a trailing
264 component, in the latter case the domain-string should start with a
265 period.
266 The trailing component only matches hosts that are in the same domain, ie
267 .Dq .example.com
268 matches
269 .Dq foo.example.com ,
270 but not
271 .Dq foo.test.example.com .
273 The realm may be the token `dns_locate', in which case the actual
274 realm will be determined using DNS (independently of the setting
275 of the `dns_lookup_realm' option).
276 .It Li [realms]
277 .Bl -tag -width "xxx" -offset indent
278 .It Va REALM Li = {
279 .Bl -tag -width "xxx" -offset indent
280 .It Li kdc = Va [service/]host[:port]
281 Specifies a list of kdcs for this realm.
282 If the optional
283 .Va port
284 is absent, the
285 default value for the
286 .Dq kerberos/udp
287 .Dq kerberos/tcp ,
289 .Dq http/tcp
290 port (depending on service) will be used.
291 The kdcs will be used in the order that they are specified.
293 The optional
294 .Va service
295 specifies over what medium the kdc should be
296 contacted.
297 Possible services are
298 .Dq udp ,
299 .Dq tcp ,
301 .Dq http .
302 Http can also be written as
303 .Dq http:// .
304 Default service is
305 .Dq udp
307 .Dq tcp .
308 .It Li admin_server = Va host[:port]
309 Specifies the admin server for this realm, where all the modifications
310 to the database are performed.
311 .It Li kpasswd_server = Va host[:port]
312 Points to the server where all the password changes are performed.
313 If there is no such entry, the kpasswd port on the admin_server host
314 will be tried.
315 .It Li krb524_server = Va host[:port]
316 Points to the server that does 524 conversions.
317 If it is not mentioned, the krb524 port on the kdcs will be tried.
318 .It Li v4_instance_convert
319 .It Li v4_name_convert
320 .It Li default_domain
322 .Xr krb5_425_conv_principal 3 .
323 .It Li tgs_require_subkey
324 a boolan variable that defaults to false.
325 Old DCE secd (pre 1.1) might need this to be true.
327 .It Li }
329 .It Li [capaths]
330 .Bl -tag -width "xxx" -offset indent
331 .It Va client-realm Li = {
332 .Bl -tag -width "xxx" -offset indent
333 .It Va server-realm Li = Va hop-realm ...
334 This serves two purposes. First the first listed
335 .Va hop-realm
336 tells a client which realm it should contact in order to ultimately
337 obtain credentials for a service in the
338 .Va server-realm .
339 Secondly, it tells the KDC (and other servers) which realms are
340 allowed in a multi-hop traversal from
341 .Va client-realm 
343 .Va server-realm .
344 Except for the client case, the order of the realms are not important.
346 .It Va }
348 .It Li [logging]
349 .Bl -tag -width "xxx" -offset indent
350 .It Va entity Li = Va destination
351 Specifies that
352 .Va entity
353 should use the specified
354 .Li destination
355 for logging.
356 See the
357 .Xr krb5_openlog 3
358 manual page for a list of defined destinations.
360 .It Li [kdc]
361 .Bl -tag -width "xxx" -offset indent
362 .It Li database Li = {
363 .Bl -tag -width "xxx" -offset indent
364 .It Li dbname Li = Va DATABASENAME
365 Use this database for this realm.
366 See the info documetation how to configure diffrent database backends.
367 .It Li realm Li = Va REALM
368 Specifies the realm that will be stored in this database.
369 It realm isn't set, it will used as the default database, there can
370 only be one entry that doesn't have a
371 .Li realm
372 stanza.
373 .It Li mkey_file Li = Pa FILENAME
374 Use this keytab file for the master key of this database.
375 If not specified
376 .Va DATABASENAME Ns .mkey
377 will be used.
378 .It Li acl_file Li = PA FILENAME
379 Use this file for the ACL list of this database.
380 .It Li log_file Li = Pa FILENAME
381 Use this file as the log of changes performed to the database.
382 This file is used by
383 .Nm ipropd-master
384 for propagating changes to slaves.
386 .It Li }
387 .It Li max-request = Va SIZE
388 Maximum size of a kdc request.
389 .It Li require-preauth = Va BOOL
390 If set pre-authentication is required.
391 Since krb4 requests are not pre-authenticated they will be rejected.
392 .It Li ports = Va "list of ports"
393 List of ports the kdc should listen to.
394 .It Li addresses = Va "list of interfaces"
395 List of addresses the kdc should bind to.
396 .It Li enable-kerberos4 = Va BOOL
397 Turn on Kerberos 4 support.
398 .It Li v4-realm = Va REALM
399 To what realm v4 requests should be mapped.
400 .It Li enable-524 = Va BOOL
401 Should the Kerberos 524 converting facility be turned on.
402 Default is the same as
403 .Va enable-kerberos4 .
404 .It Li enable-http = Va BOOL
405 Should the kdc answer kdc-requests over http.
406 .It Li enable-kaserver = Va BOOL
407 If this kdc should emulate the AFS kaserver.
408 .It Li check-ticket-addresses = Va BOOL
409 Verify the addresses in the tickets used in tgs requests.
410 .\" XXX
411 .It Li allow-null-ticket-addresses = Va BOOL
412 Allow address-less tickets.
413 .\" XXX
414 .It Li allow-anonymous = Va BOOL
415 If the kdc is allowed to hand out anonymous tickets.
416 .It Li encode_as_rep_as_tgs_rep = Va BOOL
417 Encode as-rep as tgs-rep tobe compatible with mistakes older DCE secd did.
418 .\" XXX
419 .It Li kdc_warn_pwexpire = Va TIME
420 The time before expiration that the user should be warned that her
421 password is about to expire.
422 .It Li logging = Va Logging
423 What type of logging the kdc should use, see also [logging]/kdc.
424 .It Li use_2b = {
425 .Bl -tag -width "xxx" -offset indent
426 .It Va principal Li = Va BOOL
427 boolean value if the 524 daemon should return AFS 2b tokens for
428 .Fa principal .
429 .It ...
431 .It Li }
432 .It Li hdb-ldap-structural-object Va structural object
433 If the LDAP backend is used for storing principals, this is the
434 structural object that will be used when creating and when reading
435 objects.
436 The default value is account .
437 .It Li hdb-ldap-create-base Va creation dn
438 is the dn that will be appended to the principal when creating entries.
439 Default value is the search dn.
440 .It Li enable-digest = Va BOOL
441 Should the kdc answer digest requests. The default is FALSE.
442 .It Li digests_allowed = Va list of digests
443 Specifies the digests the kdc will reply to. The default is
444 .Li ntlm-v2 .
446 .It Li [kadmin]
447 .Bl -tag -width "xxx" -offset indent
448 .It Li require-preauth = Va BOOL
449 If pre-authentication is required to talk to the kadmin server.
450 .It Li password_lifetime = Va time
451 If a principal already have its password set for expiration, this is
452 the time it will be valid for after a change.
453 .It Li default_keys = Va keytypes...
454 For each entry in
455 .Va default_keys
456 try to parse it as a sequence of
457 .Va etype:salttype:salt
458 syntax of this if something like:
460 [(des|des3|etype):](pw-salt|afs3-salt)[:string]
463 .Ar etype
464 is omitted it means everything, and if string is omitted it means the
465 default salt string (for that principal and encryption type).
466 Additional special values of keytypes are:
467 .Bl -tag -width "xxx" -offset indent
468 .It Li v5
469 The Kerberos 5 salt
470 .Va pw-salt
471 .It Li v4
472 The Kerberos 4 salt
473 .Va des:pw-salt:
475 .It Li use_v4_salt = Va BOOL
476 When true, this is the same as
478 .Va default_keys = Va des3:pw-salt Va v4
480 and is only left for backwards compatibility.
482 .It Li [password_quality]
483 Check the Password quality assurance in the info documentation for
484 more information.
485 .Bl -tag -width "xxx" -offset indent
486 .It Li check_library = Va library-name
487 Library name that contains the password check_function
488 .It Li check_function = Va function-name
489 Function name for checking passwords in check_library
490 .It Li policy_libraries = Va library1 ... libraryN
491 List of libraries that can do password policy checks
492 .It Li policies = Va policy1 ... policyN
493 List of policy names to apply to the password. Builtin policies are
494 among other minimum-length, character-class, external-check.
497 .Sh ENVIRONMENT
498 .Ev KRB5_CONFIG
499 points to the configuration file to read.
500 .Sh FILES
501 .Bl -tag -width "/etc/krb5.conf"
502 .It Pa /etc/krb5.conf
503 configuration file for Kerberos 5.
505 .Sh EXAMPLES
506 .Bd -literal -offset indent
507 [libdefaults]
508         default_realm = FOO.SE
509 [domain_realm]
510         .foo.se = FOO.SE
511         .bar.se = FOO.SE
512 [realms]
513         FOO.SE = {
514                 kdc = kerberos.foo.se
515                 v4_name_convert = {
516                         rcmd = host
517                 }
518                 v4_instance_convert = {
519                         xyz = xyz.bar.se
520                 }
521                 default_domain = foo.se
522         }
523 [logging]
524         kdc = FILE:/var/heimdal/kdc.log
525         kdc = SYSLOG:INFO
526         default = SYSLOG:INFO:USER
528 .Sh DIAGNOSTICS
529 Since
531 is read and parsed by the krb5 library, there is not a lot of
532 opportunities for programs to report parsing errors in any useful
533 format.
534 To help overcome this problem, there is a program
535 .Nm verify_krb5_conf
536 that reads
538 and tries to emit useful diagnostics from parsing errors.
539 Note that this program does not have any way of knowing what options
540 are actually used and thus cannot warn about unknown or misspelled
541 ones.
542 .Sh SEE ALSO
543 .Xr kinit 1 ,
544 .Xr krb5_425_conv_principal 3 ,
545 .Xr krb5_openlog 3 ,
546 .Xr strftime 3 ,
547 .Xr verify_krb5_conf 8