summaryrefslogtreecommitdiff
path: root/doc/pdf/admin.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/pdf/admin.tex')
-rw-r--r--doc/pdf/admin.tex163
1 files changed, 133 insertions, 30 deletions
diff --git a/doc/pdf/admin.tex b/doc/pdf/admin.tex
index 1cf190826169..62ce0e0358b8 100644
--- a/doc/pdf/admin.tex
+++ b/doc/pdf/admin.tex
@@ -15,7 +15,7 @@
\title{Kerberos Administration Guide}
\date{ }
-\release{1.15.1}
+\release{1.16}
\author{MIT}
\newcommand{\sphinxlogo}{}
\renewcommand{\releasename}{Release}
@@ -939,9 +939,10 @@ includedir DIRNAME
directory must exist and be readable. Including a directory includes
all files within the directory whose names consist solely of
alphanumeric characters, dashes, or underscores. Starting in release
-1.15, files with names ending in ''.conf'' are also included. Included
-profile files are syntactically independent of their parents, so each
-included file must begin with a section header.
+1.15, files with names ending in ''.conf'' are also included, unless the
+name begins with ''.''. Included profile files are syntactically
+independent of their parents, so each included file must begin with a
+section header.
The krb5.conf file can specify that configuration should be obtained
from a loadable module, rather than the file itself, using the
@@ -1075,7 +1076,7 @@ the client should request when making a TGS-REQ, in order of
preference from highest to lowest. The list may be delimited with
commas or whitespace. See {\hyperref[admin/conf_files/kdc_conf:encryption-types]{\emph{Encryption types}}} in
{\hyperref[admin/conf_files/kdc_conf:kdc-conf-5]{\emph{kdc.conf}}} for a list of the accepted values for this tag.
-The default value is \code{aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4}, but single-DES encryption types
+The default value is \code{aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4}, but single-DES encryption types
will be implicitly removed from this list if the value of
\textbf{allow\_weak\_crypto} is false.
@@ -1089,7 +1090,7 @@ Identifies the supported list of session key encryption types that
the client should request when making an AS-REQ, in order of
preference from highest to lowest. The format is the same as for
default\_tgs\_enctypes. The default value for this tag is
-\code{aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4}, but single-DES encryption types will be implicitly
+\code{aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4}, but single-DES encryption types will be implicitly
removed from this list if the value of \textbf{allow\_weak\_crypto} is
false.
@@ -1171,7 +1172,7 @@ For security reasons, .k5login files must be owned by
the local user or by root.
\item[{\textbf{kcm\_mach\_service}}] \leavevmode
-On OS X only, determines the name of the bootstrap service used to
+On macOS only, determines the name of the bootstrap service used to
contact the KCM daemon for the KCM credential cache type. If the
value is \code{-}, Mach RPC will not be used to contact the KCM
daemon. The default value is \code{org.h5l.kcm}.
@@ -1263,7 +1264,7 @@ used across NATs. The default value is true.
\item[{\textbf{permitted\_enctypes}}] \leavevmode
Identifies all encryption types that are permitted for use in
session key encryption. The default value for this tag is
-\code{aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4}, but single-DES encryption types will be implicitly
+\code{aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4}, but single-DES encryption types will be implicitly
removed from this list if the value of \textbf{allow\_weak\_crypto} is
false.
@@ -1699,6 +1700,10 @@ client principal
Uses the service realm to guess an appropriate cache from the
collection
+\item[{\textbf{hostname}}] \leavevmode
+If the service principal is host-based, uses the service hostname
+to guess an appropriate cache from the collection
+
\end{description}
@@ -1731,6 +1736,26 @@ principal creation, modification, password changes and deletion. This
interface can be used to write a plugin to synchronize MIT Kerberos
with another database such as Active Directory. No plugins are built
in for this interface.
+
+
+\subparagraph{kadm5\_auth interface}
+\label{admin/conf_files/krb5_conf:kadm5-auth-interface}\label{admin/conf_files/krb5_conf:kadm5-auth}
+The kadm5\_auth section (introduced in release 1.16) controls modules
+for the kadmin authorization interface, which determines whether a
+client principal is allowed to perform a kadmin operation. The
+following built-in modules exist for this interface:
+\begin{description}
+\item[{\textbf{acl}}] \leavevmode
+This module reads the {\hyperref[admin/conf_files/kadm5_acl:kadm5-acl-5]{\emph{kadm5.acl}}} file, and authorizes
+operations which are allowed according to the rules in the file.
+
+\item[{\textbf{self}}] \leavevmode
+This module authorizes self-service operations including password
+changes, creation of new random keys, fetching the client's
+principal record or string attributes, and fetching the policy
+record associated with the client principal.
+
+\end{description}
\phantomsection\label{admin/conf_files/krb5_conf:clpreauth}
\subparagraph{clpreauth and kdcpreauth interfaces}
@@ -1812,6 +1837,32 @@ principal name maps to the local account name.
\end{description}
+\subparagraph{certauth interface}
+\label{admin/conf_files/krb5_conf:certauth}\label{admin/conf_files/krb5_conf:certauth-interface}
+The certauth section (introduced in release 1.16) controls modules for
+the certificate authorization interface, which determines whether a
+certificate is allowed to preauthenticate a user via PKINIT. The
+following built-in modules exist for this interface:
+\begin{description}
+\item[{\textbf{pkinit\_san}}] \leavevmode
+This module authorizes the certificate if it contains a PKINIT
+Subject Alternative Name for the requested client principal, or a
+Microsoft UPN SAN matching the principal if \textbf{pkinit\_allow\_upn}
+is set to true for the realm.
+
+\item[{\textbf{pkinit\_eku}}] \leavevmode
+This module rejects the certificate if it does not contain an
+Extended Key Usage attribute consistent with the
+\textbf{pkinit\_eku\_checking} value for the realm.
+
+\item[{\textbf{dbmatch}}] \leavevmode
+This module authorizes or rejects the certificate according to
+whether it matches the \textbf{pkinit\_cert\_match} string attribute on
+the client principal, if that attribute is present.
+
+\end{description}
+
+
\subsubsection{PKINIT options}
\label{admin/conf_files/krb5_conf:pkinit-options}
\begin{notice}{note}{Note:}
@@ -2345,9 +2396,10 @@ The following tags may be specified in a {[}realms{]} subsection:
\item[{\textbf{acl\_file}}] \leavevmode
(String.) Location of the access control list file that
{\hyperref[admin/admin_commands/kadmind:kadmind-8]{\emph{kadmind}}} uses to determine which principals are allowed
-which permissions on the Kerberos database. The default value is
-{\hyperref[mitK5defaults:paths]{\emph{LOCALSTATEDIR}}}\code{/krb5kdc}\code{/kadm5.acl}. For more information on Kerberos ACL
-file see {\hyperref[admin/conf_files/kadm5_acl:kadm5-acl-5]{\emph{kadm5.acl}}}.
+which permissions on the Kerberos database. To operate without an
+ACL file, set this relation to the empty string with \code{acl\_file =
+""}. The default value is {\hyperref[mitK5defaults:paths]{\emph{LOCALSTATEDIR}}}\code{/krb5kdc}\code{/kadm5.acl}. For more
+information on Kerberos ACL file see {\hyperref[admin/conf_files/kadm5_acl:kadm5-acl-5]{\emph{kadm5.acl}}}.
\item[{\textbf{database\_module}}] \leavevmode
(String.) This relation indicates the name of the configuration
@@ -2459,6 +2511,11 @@ per line, with no additional whitespace. If none is specified or
if there is no policy assigned to the principal, no dictionary
checks of passwords will be performed.
+\item[{\textbf{encrypted\_challenge\_indicator}}] \leavevmode
+(String.) Specifies the authentication indicator value that the KDC
+asserts into tickets obtained using FAST encrypted challenge
+pre-authentication. New in 1.16.
+
\item[{\textbf{host\_based\_services}}] \leavevmode
(Whitespace- or comma-separated list.) Lists services which will
get host-based referral processing even if the server principal is
@@ -3073,9 +3130,6 @@ Specifies an authentication indicator to include in the ticket if
pkinit is used to authenticate. This option may be specified
multiple times. (New in release 1.14.)
-\item[{\textbf{pkinit\_kdc\_ocsp}}] \leavevmode
-Specifies the location of the KDC's OCSP.
-
\item[{\textbf{pkinit\_pool}}] \leavevmode
Specifies the location of intermediate certificates which may be
used by the KDC to complete the trust chain between a client's
@@ -3203,7 +3257,7 @@ The triple DES family: des3-cbc-sha1
\hline
aes
&
-The AES family: aes256-cts-hmac-sha1-96 and aes128-cts-hmac-sha1-96
+The AES family: aes256-cts-hmac-sha1-96, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha384-192, and aes128-cts-hmac-sha256-128
\\
\hline
rc4
@@ -3523,16 +3577,17 @@ joeadmin/*@ATHENA.MIT.EDU i */root@ATHENA.MIT.EDU \PYGZsh{} line 3
sms@ATHENA.MIT.EDU x * \PYGZhy{}maxlife 9h \PYGZhy{}postdateable \PYGZsh{} line 6
\end{Verbatim}
-(line 1) Any principal in the \code{ATHENA.MIT.EDU} realm with
-an \code{admin} instance has all administrative privileges.
+(line 1) Any principal in the \code{ATHENA.MIT.EDU} realm with an
+\code{admin} instance has all administrative privileges except extracting
+keys.
-(lines 1-3) The user \code{joeadmin} has all permissions with his
-\code{admin} instance, \code{joeadmin/admin@ATHENA.MIT.EDU} (matches line
-1). He has no permissions at all with his null instance,
-\code{joeadmin@ATHENA.MIT.EDU} (matches line 2). His \code{root} and other
-non-\code{admin}, non-null instances (e.g., \code{extra} or \code{dbadmin}) have
-inquire permissions with any principal that has the instance \code{root}
-(matches line 3).
+(lines 1-3) The user \code{joeadmin} has all permissions except
+extracting keys with his \code{admin} instance,
+\code{joeadmin/admin@ATHENA.MIT.EDU} (matches line 1). He has no
+permissions at all with his null instance, \code{joeadmin@ATHENA.MIT.EDU}
+(matches line 2). His \code{root} and other non-\code{admin}, non-null
+instances (e.g., \code{extra} or \code{dbadmin}) have inquire permissions
+with any principal that has the instance \code{root} (matches line 3).
(line 4) Any \code{root} principal in \code{ATHENA.MIT.EDU} can inquire
or change the password of their null instance, but not any other
@@ -3546,9 +3601,22 @@ permission can only be granted globally, not to specific target
principals.
(line 6) Finally, the Service Management System principal
-\code{sms@ATHENA.MIT.EDU} has all permissions, but any principal that it
-creates or modifies will not be able to get postdateable tickets or
-tickets with a life of longer than 9 hours.
+\code{sms@ATHENA.MIT.EDU} has all permissions except extracting keys, but
+any principal that it creates or modifies will not be able to get
+postdateable tickets or tickets with a life of longer than 9 hours.
+
+
+\subsubsection{MODULE BEHAVIOR}
+\label{admin/conf_files/kadm5_acl:module-behavior}
+The ACL file can coexist with other authorization modules in release
+1.16 and later, as configured in the {\hyperref[admin/conf_files/krb5_conf:kadm5-auth]{\emph{kadm5\_auth interface}}} section of
+{\hyperref[admin/conf_files/krb5_conf:krb5-conf-5]{\emph{krb5.conf}}}. The ACL file will positively authorize
+operations according to the rules above, but will never
+authoritatively deny an operation, so other modules can authorize
+operations in addition to those authorized by the ACL file.
+
+To operate without an ACL file, set the \emph{acl\_file} variable in
+{\hyperref[admin/conf_files/kdc_conf:kdc-conf-5]{\emph{kdc.conf}}} to the empty string with \code{acl\_file = ""}.
\subsubsection{SEE ALSO}
@@ -3787,7 +3855,7 @@ convey more information about a realm's KDCs with a single query.
The client performs a query for the following URI records:
\begin{itemize}
\item {}
-\code{\_kerberos.REALM} for fiding KDCs.
+\code{\_kerberos.REALM} for finding KDCs.
\item {}
\code{\_kerberos-adm.REALM} for finding kadmin services.
@@ -7002,6 +7070,29 @@ time as follows:
kadmin \PYGZhy{}q \PYGZsq{}add\PYGZus{}principal +requires\PYGZus{}preauth \PYGZhy{}nokey YOUR\PYGZus{}PRINCNAME\PYGZsq{}
\end{Verbatim}
+By default, the KDC requires PKINIT client certificates to have the
+standard Extended Key Usage and Subject Alternative Name attributes
+for PKINIT. Starting in release 1.16, it is possible to authorize
+client certificates based on the subject or other criteria instead of
+the standard PKINIT Subject Alternative Name, by setting the
+\textbf{pkinit\_cert\_match} string attribute on each client principal entry.
+For example:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+kadmin set\PYGZus{}string user@REALM pkinit\PYGZus{}cert\PYGZus{}match \PYGZdq{}\PYGZlt{}SUBJECT\PYGZgt{}CN=user@REALM\PYGZdl{}\PYGZdq{}
+\end{Verbatim}
+
+The \textbf{pkinit\_cert\_match} string attribute follows the syntax used by
+the {\hyperref[admin/conf_files/krb5_conf:krb5-conf-5]{\emph{krb5.conf}}} \textbf{pkinit\_cert\_match} relation. To allow the
+use of non-PKINIT client certificates, it will also be necessary to
+disable key usage checking using the \textbf{pkinit\_eku\_checking} relation;
+for example:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+[kdcdefaults]
+ pkinit\PYGZus{}eku\PYGZus{}checking = none
+\end{Verbatim}
+
\section{Configuring the clients}
\label{admin/pkinit:configuring-the-clients}
@@ -8328,6 +8419,13 @@ Enables One Time Passwords (OTP) preauthentication for a client
\emph{principal}. The \emph{value} is a JSON string representing an array
of objects, each having optional \code{type} and \code{username} fields.
+\item[{\textbf{pkinit\_cert\_match}}] \leavevmode
+Specifies a matching expression that defines the certificate
+attributes required for the client certificate used by the
+principal during PKINIT authentication. The matching expression
+is in the same format as those used by the \textbf{pkinit\_cert\_match}
+option in {\hyperref[admin/conf_files/krb5_conf:krb5-conf-5]{\emph{krb5.conf}}}. (New in release 1.16.)
+
\end{description}
This command requires the \textbf{modify} privilege.
@@ -9992,6 +10090,7 @@ Specifies the location of the keytab file.
{[}\textbf{-F} \emph{principal\_database}{]}
{[}\textbf{-p} \emph{kdb5\_util\_prog}{]}
{[}\textbf{-P} \emph{port}{]}
+{[}\textbf{--pid-file}=\emph{pid\_file}{]}
{[}\textbf{-d}{]}
{[}\textbf{-t}{]}
@@ -10081,6 +10180,10 @@ is only useful in combination with the \textbf{-S} option.
Allows the user to specify the path to the kpropd.acl file; by
default the path used is {\hyperref[mitK5defaults:paths]{\emph{LOCALSTATEDIR}}}\code{/krb5kdc}\code{/kpropd.acl}.
+\item[{\textbf{--pid-file}=\emph{pid\_file}}] \leavevmode
+In standalone mode, write the process ID of the daemon into
+\emph{pid\_file}.
+
\end{description}
@@ -10299,7 +10402,7 @@ Alias: \textbf{delent}
\label{admin/admin_commands/ktutil:add-entry}\begin{quote}
\textbf{add\_entry} \{\textbf{-key}\textbar{}\textbf{-password}\} \textbf{-p} \emph{principal}
-\textbf{-k} \emph{kvno} \textbf{-e} \emph{enctype}
+\textbf{-k} \emph{kvno} \textbf{-e} \emph{enctype} {[}\textbf{-s} \emph{salt}{]}
\end{quote}
Add \emph{principal} to keylist using key or password.
@@ -10623,7 +10726,7 @@ Default {\hyperref[admin/conf_files/kdc_conf:keysalt-lists]{\emph{keysalt list}}
\hline
Permitted enctypes
&
-\code{aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4}
+\code{aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4}
& \\
\hline
KDC default port