Commit Graph

101 Commits

Author SHA1 Message Date
Nicolas Williams
d02277b45f List token expansions in krb5.conf.5 2019-09-25 23:09:20 -05:00
Viktor Dukhovni
fae8df3839 Optional backwards-compatible anon-pkinit behaviour
* Anonymous pkinit responses from the KDC where the name
  type is not well-known (as issued by 7.5 KDCs and earlier)
  are accepted by the client.  There is no need for the client
  to strictly enforce the name type.

* With historical_anon_pkinit = true, the kinit(1) client's
  "--anonymous" option only performs anon pkinit, and does
  not require an '@' prefix for the realm argument.

* With historical_anon_realm = true, the KDC issues anon
  pkinit tickets with the legacy pre-7.0 "real" realm.
2019-09-04 18:00:15 -04:00
Nicolas Williams
fe43be8558 Add include/includedir directives for krb5.conf 2017-02-27 18:15:59 -06:00
Viktor Dukhovni
09c4e516bf Further polish and docs for hierarchical capaths 2016-08-10 21:09:15 -04:00
Nicolas Williams
41b6c829f7 Fix missing .El in krb5.conf.5 2016-08-08 14:14:04 -05:00
Abhinav Upadhyay
1e085bb4da Various fixes in kfb5.conf man page:
Fix grammar at multiple places
Also, fix mdoc syntax at one place. There should be a space between the
section and the comma in the .Xr macro.
2016-04-28 15:50:48 +05:30
Viktor Dukhovni
579393c8b9 Optionally prune old keys when setting new keys.
When new keys are added (typically via kadm5_setkey_principal_3),
truncate the key history to remove old keys, that is keys older than
the newest key which was in effect prior longer ago than the principal's
maximum ticket lifetime.  This feature is controlled via the "[kadmin]"
section's "prune-key-history" boolean parameter, which defaults to false.

Currently this happens only when kadm5_setkey_principal_3()
is called directly on the server, the client API simulates
kadm5_setkey_principal_3() via a get, update, modify sequence that does
not prune the key history.  The plan is to add a new kadm5 protocol RPC
and convert clients to call that instead.

In setkey_principal_3 seal keys after entry key update

Also, for now, don't check the return value of kadm5_log_modify() in
the new kadm5_s_setkey_principal_3().  This has to be addressed more
globally.

Censor stale keys in kadm5_s_get_principal
2016-02-26 15:43:12 -05:00
Nicolas Williams
20df2c8706 Two-phase HDB commit via iprop log, + GC for log
We used to update the iprop log and HDB in different orders depending on
the kadm5 operation, which then led to various race conditions.

The iprop log now functions as a two-phase commit (with roll forward)
log for HDB changes.  The log is auto-truncated, keeping the latest
entries that fit in a configurable maximum number of bytes (defaults to
50MB).  See the log-max-size parameter description in krb5.conf(5).

The iprop log format and the protocol remain backwards-compatible with
earlier versions of Heimdal.  This is NOT a flag-day; there is NO need
to update all the slaves at once with the master, though it is advisable
in general.  Rolling upgrades and downgrades should work.

The sequence of updates is now (with HDB and log open and locked):

a) check that the HDB operation will succeed if attempted,
b) append to iprop log and fsync() it,
c) write to HDB (which should fsync()),
d) mark last log record committed (no fsync in this case).

Every kadm5 write operation recover transactions not yet confirmed as
committed, thus there can be at most one unconfirmed commit on a master
KDC.

Reads via kadm5_get_principal() also attempt to lock the log, and if
successful, recover unconfirmed transactions; readers must have write
access and must win any race to lock the iprop log.

The ipropd-master daemon also attempts to recover unconfirmed
transactions when idle.

The log now starts with a nop record whose payload records the offset of
the logical end of the log: the end of the last confirmed committed
transaction.  This is kown as the "uber record".  Its purpose is
two-fold: act as the confirmation of committed transactions, and provide
an O(1) method of finding the end of the log (i.e., without having to
traverse the entire log front to back).

Two-phase commit makes all kadm5 writes single-operation atomic
transactions (though some kadm5 operations, such as renames of
principals, and changes to principals' aliases, use multiple low-level
HDB write operations, but still all in one transaction).  One can still
hold a lock on the HDB across many operations (e.g., by using the lock
command in a kadmin -l or calling kadm5_lock()) in order to push
multiple transactions in sequence, but this sequence will not be atomic
if the process or host crashes in the middle.

As before, HDB writes which do not go through the kadm5 API are excluded
from all of this, but there should be no such writes.

Lastly, the iprop-log(1) command is enhanced as follows:

 - The dump, last-version, truncate, and replay sub-commands now have an
   option to not lock the log.  This is useful for inspecting a running
   system's log file, especially on slave KDCs.

 - The dump, last-version, truncate, and replay sub-commands now take an
   optional iprop log file positional argument, so that they may be used
   to inspect log files other than the running system's
   configured/default log file.

Extensive code review and some re-writing for clarity by Viktor Dukhovni.
2016-02-26 00:55:33 -06:00
Nicolas Williams
7eb9b46f5b Document HDB backends 2016-02-26 00:55:33 -06:00
Nicolas Williams
0778b19c3f Revive name rule docs 2015-03-24 11:49:59 -05:00
Jelmer Vernooij
4199081e94 Various manpages: Remove references to Kerberos 4. 2014-04-28 01:03:10 +02:00
Nicolas Williams
318f89d602 Document kx509 parameters 2013-12-05 16:00:21 -06:00
Love Hornquist Astrand
10f3c8b56e add possible to set rules on what enctypes to use based on glob matching on principal 2013-10-18 10:01:55 +02:00
Love Hornquist Astrand
072f4ce697 remove unused [kadmin]pre-auth that is no longer there (if it ever was) 2013-10-17 18:52:01 +02:00
Nicolas Williams
f4f89ac8e0 Fix bug with use strongest session key feature 2013-07-27 03:21:12 -05:00
Love Hornquist Astrand
afa9db62ba match code, pointed out by Sergio Gelato <Sergio.Gelato@astro.su.se> 2013-07-26 10:35:49 +02:00
Love Hornquist Astrand
f396f66523 add [libdefaults]fcache_strict_checking to gate the strict checking, defaults to on 2013-07-11 21:17:49 +02:00
Nicolas Williams
647fad8295 Remove name canon rules from krb5.conf.5 2013-06-09 23:42:37 -05:00
Viktor Dukhovni
a825143e73 The k5login_directory parameter and SYSTEM-K5LOGIN[:directory] are supposed to be directories, not path templates with %{luser} substitution
Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
2013-04-24 16:25:59 -07:00
Nicolas Williams
35e28dcd5d Fix incomplete sentence in krb5.conf.5 2011-12-10 14:27:46 -06:00
Nicolas Williams
27ba7a5982 Address code review comments (use .Xr and .Pa macros in krb5.conf.5) 2011-12-10 14:06:16 -06:00
Nicolas Williams
b9f8e6d956 Add DENY rule for krb5_kuserok() and update manpage 2011-12-08 13:34:02 -06:00
Nicolas Williams
8e63cff2cc Document krb5_kuserok() configuration parameters 2011-12-08 13:34:01 -06:00
Nicolas Williams
f468ed4759 Make krb5_aname_to_localname() use the libheimbase binary search functions 2011-12-02 01:03:08 -06:00
Nicolas Williams
aea02876e7 Initial aname2lname plugin patch based on code from Love
Included is a default plugin that searches a sorted text file where
    every line is of the form:
	<unparsed-principal>[<whitespace><username>]
    If the username is missing in a matching line then an error is
    returned.  If a matching line is not found then the next plugin will
    be allowed to run, if any.
2011-12-02 00:58:26 -06:00
Nicolas Williams
c757eb7fb0 Rename and fix as/tgs-use-strongest-key config parameters
Different ticket session key enctype selection options should
    distinguish between target principal type (krbtgt vs. not), not
    between KDC request types.
2011-11-25 17:21:04 -06:00
Nicolas Williams
c764ad95e5 Document name canonicalization rules 2011-10-22 14:54:26 -05:00
Love Hornquist Astrand
8192b9ed35 remove refernces to kerberos 4 and kaserver 2011-10-12 12:40:59 +02:00
Nicolas Williams
016193ac6a Added manpage documentation for krb5_{as, tgs}_enctypes.
Signed-off-by: Love Hörnquist Åstrand <lha@h5l.org>
2011-06-14 20:35:19 -07:00
Nicolas Williams
256cf6ea12 This patch adds support for a use-strongest-server-key krb5.conf kdc parameter that controls how the KDC (AS and TGS) selects a long-term key from a service principal's HDB entry. If TRUE the KDC picks the strongest supported key from the service principal's current keyset. If FALSE the KDC picks the first supported key from the service principal's current keyset.
Signed-off-by: Love Hörnquist Åstrand <lha@h5l.org>
2011-06-14 20:35:19 -07:00
Nicolas Williams
481fe133b2 Also added preauth-use-strongest-session-key krb5.conf kdc parameter, similar to {as, tgs}-use-strongest-session-key. The latter two control ticket session key enctype selection in the AS and TGS cases, respectively, while the former controls PA-ETYPE-INFO2 enctype selection in the AS case.
Signed-off-by: Love Hörnquist Åstrand <lha@h5l.org>
2011-06-14 20:35:19 -07:00
Nicolas Williams
a7a8a7e95c Initial patch to add as-use-strongest-session-key and same for tgs krb5.conf parameters for the KDC. These control the session key enctype selection algorithm for the AS and TGS respectively: if TRUE then they prefer the strongest enctype supported by the client, the KDC and the target principal, else they prefer the first enctype fromt he client's list that is also supported by the KDC and the target principal.
Signed-off-by: Love Hörnquist Åstrand <lha@h5l.org>
2011-06-14 20:35:19 -07:00
Love Hornquist Astrand
0879b9831a remove trailing whitespace 2011-05-21 11:57:31 -07:00
Love Hornquist Astrand
9a1a5e5da6 Mandoc and spelling fixes from Thomas Klausner 2011-04-29 20:37:33 -07:00
Love Hornquist Astrand
d893207413 add check-rd-req-server 2010-09-01 21:56:17 -07:00
Love Hornquist Astrand
b00e010309 spelling, from Remi Ferrand 2010-08-19 21:31:10 -07:00
Love Hornquist Astrand
45158c861e document allow_weak_crypto 2010-06-02 08:14:47 -07:00
Love Hörnquist Åstrand
e172367898 switch to utf8 encoding of all files
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23814 ec53bebd-3082-4978-b11e-865c3cabbd6b
2008-09-13 08:53:55 +00:00
Love Hörnquist Åstrand
893cb35381 Document default_cc_type.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23133 ec53bebd-3082-4978-b11e-865c3cabbd6b
2008-04-28 18:01:53 +00:00
Björn Sandell
d43a2bc1af A few words on digests
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23125 ec53bebd-3082-4978-b11e-865c3cabbd6b
2008-04-28 10:55:49 +00:00
Love Hörnquist Åstrand
b1f75c5100 Documentation for password quality control. From: "James F. Hranicky" <jfh@cise.ufl.edu>
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15514 ec53bebd-3082-4978-b11e-865c3cabbd6b
2005-06-23 18:43:34 +00:00
Love Hörnquist Åstrand
084b3b2d2a change format for expantion variables in default_cc_name to
%{variable} to not confuse them with shell ditto


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15254 ec53bebd-3082-4978-b11e-865c3cabbd6b
2005-05-29 13:15:58 +00:00
Love Hörnquist Åstrand
32ad0c150f spelling
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15089 ec53bebd-3082-4978-b11e-865c3cabbd6b
2005-05-05 14:07:48 +00:00
Love Hörnquist Åstrand
1ef7caec57 expand on what "trailing component" means
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15087 ec53bebd-3082-4978-b11e-865c3cabbd6b
2005-05-04 12:44:34 +00:00
Love Hörnquist Åstrand
5d95fe0e1c document large_msg_size
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14550 ec53bebd-3082-4978-b11e-865c3cabbd6b
2005-02-03 08:39:57 +00:00
Love Hörnquist Åstrand
0a5afe8034 spelling, from openbsd
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14375 ec53bebd-3082-4978-b11e-865c3cabbd6b
2004-12-08 17:52:41 +00:00
Love Hörnquist Åstrand
4414774aa6 unbreak 2b entry
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14330 ec53bebd-3082-4978-b11e-865c3cabbd6b
2004-10-31 22:32:27 +00:00
Love Hörnquist Åstrand
1f5182ef5d time defaults to "s"
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14309 ec53bebd-3082-4978-b11e-865c3cabbd6b
2004-10-13 18:13:16 +00:00
Love Hörnquist Åstrand
84c67cadf0 assume minutes for time
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14276 ec53bebd-3082-4978-b11e-865c3cabbd6b
2004-09-30 11:27:20 +00:00
Love Hörnquist Åstrand
10f34a170b explain support for varibles in [libdefaults]default_cc_name
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14111 ec53bebd-3082-4978-b11e-865c3cabbd6b
2004-08-11 21:49:08 +00:00