summaryrefslogtreecommitdiff
path: root/doc/html/admin/realm_config.html
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2025-03-19 22:12:25 +0000
committerCy Schubert <cy@FreeBSD.org>2025-03-19 22:12:25 +0000
commit8f7d3ef26dec89a92ec0665de84a5936310a5574 (patch)
tree9a465418bd4056bf0d369751320a414eaed29fa4 /doc/html/admin/realm_config.html
parent1a79b20663ca26acc2998b90ea2ff2aefd8af5b1 (diff)
Diffstat (limited to 'doc/html/admin/realm_config.html')
-rw-r--r--doc/html/admin/realm_config.html196
1 files changed, 95 insertions, 101 deletions
diff --git a/doc/html/admin/realm_config.html b/doc/html/admin/realm_config.html
index 92851e1ff94f..f90ab88f9897 100644
--- a/doc/html/admin/realm_config.html
+++ b/doc/html/admin/realm_config.html
@@ -1,35 +1,26 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
+
<title>Realm configuration decisions &#8212; MIT Kerberos Documentation</title>
- <link rel="stylesheet" href="../_static/agogo.css" type="text/css" />
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
- <link rel="stylesheet" href="../_static/kerb.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../',
- VERSION: '1.21.2',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true,
- SOURCELINK_SUFFIX: '.txt'
- };
- </script>
- <script type="text/javascript" src="../_static/jquery.js"></script>
- <script type="text/javascript" src="../_static/underscore.js"></script>
- <script type="text/javascript" src="../_static/doctools.js"></script>
+ <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
+ <link rel="stylesheet" type="text/css" href="../_static/agogo.css" />
+ <link rel="stylesheet" type="text/css" href="../_static/kerb.css" />
+ <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
+ <script src="../_static/jquery.js"></script>
+ <script src="../_static/underscore.js"></script>
+ <script src="../_static/doctools.js"></script>
<link rel="author" title="About these documents" href="../about.html" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="copyright" title="Copyright" href="../copyright.html" />
<link rel="next" title="Database administration" href="database.html" />
<link rel="prev" title="kadm5.acl" href="conf_files/kadm5_acl.html" />
- </head>
- <body>
+ </head><body>
<div class="header-wrapper">
<div class="header">
@@ -61,38 +52,38 @@
<div class="bodywrapper">
<div class="body" role="main">
- <div class="section" id="realm-configuration-decisions">
+ <section id="realm-configuration-decisions">
<h1>Realm configuration decisions<a class="headerlink" href="#realm-configuration-decisions" title="Permalink to this headline">¶</a></h1>
<p>Before installing Kerberos V5, it is necessary to consider the
following issues:</p>
<ul class="simple">
-<li>The name of your Kerberos realm (or the name of each realm, if you
-need more than one).</li>
-<li>How you will assign your hostnames to Kerberos realms.</li>
-<li>Which ports your KDC and and kadmind services will use, if they will
-not be using the default ports.</li>
-<li>How many replica KDCs you need and where they should be located.</li>
-<li>The hostnames of your primary and replica KDCs.</li>
-<li>How frequently you will propagate the database from the primary KDC
-to the replica KDCs.</li>
+<li><p>The name of your Kerberos realm (or the name of each realm, if you
+need more than one).</p></li>
+<li><p>How you will assign your hostnames to Kerberos realms.</p></li>
+<li><p>Which ports your KDC and and kadmind services will use, if they will
+not be using the default ports.</p></li>
+<li><p>How many replica KDCs you need and where they should be located.</p></li>
+<li><p>The hostnames of your primary and replica KDCs.</p></li>
+<li><p>How frequently you will propagate the database from the primary KDC
+to the replica KDCs.</p></li>
</ul>
-<div class="section" id="realm-name">
+<section id="realm-name">
<h2>Realm name<a class="headerlink" href="#realm-name" title="Permalink to this headline">¶</a></h2>
<p>Although your Kerberos realm can be any ASCII string, convention is to
make it the same as your domain name, in upper-case letters.</p>
-<p>For example, hosts in the domain <code class="docutils literal"><span class="pre">example.com</span></code> would be in the
+<p>For example, hosts in the domain <code class="docutils literal notranslate"><span class="pre">example.com</span></code> would be in the
Kerberos realm:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">EXAMPLE</span><span class="o">.</span><span class="n">COM</span>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">EXAMPLE</span><span class="o">.</span><span class="n">COM</span>
</pre></div>
</div>
<p>If you need multiple Kerberos realms, MIT recommends that you use
descriptive names which end with your domain name, such as:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">BOSTON</span><span class="o">.</span><span class="n">EXAMPLE</span><span class="o">.</span><span class="n">COM</span>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">BOSTON</span><span class="o">.</span><span class="n">EXAMPLE</span><span class="o">.</span><span class="n">COM</span>
<span class="n">HOUSTON</span><span class="o">.</span><span class="n">EXAMPLE</span><span class="o">.</span><span class="n">COM</span>
</pre></div>
</div>
-</div>
-<div class="section" id="mapping-hostnames-onto-kerberos-realms">
+</section>
+<section id="mapping-hostnames-onto-kerberos-realms">
<span id="mapping-hostnames"></span><h2>Mapping hostnames onto Kerberos realms<a class="headerlink" href="#mapping-hostnames-onto-kerberos-realms" title="Permalink to this headline">¶</a></h2>
<p>Mapping hostnames onto Kerberos realms is done in one of three ways.</p>
<p>The first mechanism works through a set of rules in the
@@ -117,12 +108,12 @@ fine-tune referral behavior on the KDC.</p>
are disabled by default because DNS is an insecure protocol and security
holes could result if DNS records are spoofed. If enabled, the client
will try to look up a TXT record formed by prepending the prefix
-<code class="docutils literal"><span class="pre">_kerberos</span></code> to the hostname in question. If that record is not
-found, the client will attempt a lookup by prepending <code class="docutils literal"><span class="pre">_kerberos</span></code> to the
+<code class="docutils literal notranslate"><span class="pre">_kerberos</span></code> to the hostname in question. If that record is not
+found, the client will attempt a lookup by prepending <code class="docutils literal notranslate"><span class="pre">_kerberos</span></code> to the
host’s domain name, then its parent domain, up to the top-level domain.
-For the hostname <code class="docutils literal"><span class="pre">boston.engineering.example.com</span></code>, the names looked up
+For the hostname <code class="docutils literal notranslate"><span class="pre">boston.engineering.example.com</span></code>, the names looked up
would be:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">_kerberos</span><span class="o">.</span><span class="n">boston</span><span class="o">.</span><span class="n">engineering</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">_kerberos</span><span class="o">.</span><span class="n">boston</span><span class="o">.</span><span class="n">engineering</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
<span class="n">_kerberos</span><span class="o">.</span><span class="n">engineering</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
<span class="n">_kerberos</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
<span class="n">_kerberos</span><span class="o">.</span><span class="n">com</span>
@@ -131,8 +122,8 @@ would be:</p>
<p>The value of the first TXT record found is taken as the realm name.</p>
<p>Even if you do not choose to use this mechanism within your site,
you may wish to set it up anyway, for use when interacting with other sites.</p>
-</div>
-<div class="section" id="ports-for-the-kdc-and-admin-services">
+</section>
+<section id="ports-for-the-kdc-and-admin-services">
<h2>Ports for the KDC and admin services<a class="headerlink" href="#ports-for-the-kdc-and-admin-services" title="Permalink to this headline">¶</a></h2>
<p>The default ports used by Kerberos are port 88 for the KDC and port
749 for the admin server. You can, however, choose to run on other
@@ -141,8 +132,8 @@ ports, as long as they are specified in each host’s
<a class="reference internal" href="conf_files/kdc_conf.html#kdc-conf-5"><span class="std std-ref">kdc.conf</span></a> file on each KDC. For a more thorough treatment of
port numbers used by the Kerberos V5 programs, refer to the
<a class="reference internal" href="appl_servers.html#conf-firewall"><span class="std std-ref">Configuring your firewall to work with Kerberos V5</span></a>.</p>
-</div>
-<div class="section" id="replica-kdcs">
+</section>
+<section id="replica-kdcs">
<h2>Replica KDCs<a class="headerlink" href="#replica-kdcs" title="Permalink to this headline">¶</a></h2>
<p>Replica KDCs provide an additional source of Kerberos ticket-granting
services in the event of inaccessibility of the primary KDC. The
@@ -154,22 +145,22 @@ KDC. Therefore, you need to anticipate any likely reason a KDC might
be unavailable and have a replica KDC to take up the slack.</p>
<p>Some considerations include:</p>
<ul class="simple">
-<li>Have at least one replica KDC as a backup, for when the primary KDC
-is down, is being upgraded, or is otherwise unavailable.</li>
-<li>If your network is split such that a network outage is likely to
+<li><p>Have at least one replica KDC as a backup, for when the primary KDC
+is down, is being upgraded, or is otherwise unavailable.</p></li>
+<li><p>If your network is split such that a network outage is likely to
cause a network partition (some segment or segments of the network
to become cut off or isolated from other segments), have a replica
-KDC accessible to each segment.</li>
-<li>If possible, have at least one replica KDC in a different building
+KDC accessible to each segment.</p></li>
+<li><p>If possible, have at least one replica KDC in a different building
from the primary, in case of power outages, fires, or other
-localized disasters.</li>
+localized disasters.</p></li>
</ul>
-</div>
-<div class="section" id="hostnames-for-kdcs">
+</section>
+<section id="hostnames-for-kdcs">
<span id="kdc-hostnames"></span><h2>Hostnames for KDCs<a class="headerlink" href="#hostnames-for-kdcs" title="Permalink to this headline">¶</a></h2>
<p>MIT recommends that your KDCs have a predefined set of CNAME records
-(DNS hostname aliases), such as <code class="docutils literal"><span class="pre">kerberos</span></code> for the primary KDC and
-<code class="docutils literal"><span class="pre">kerberos-1</span></code>, <code class="docutils literal"><span class="pre">kerberos-2</span></code>, … for the replica KDCs. This way,
+(DNS hostname aliases), such as <code class="docutils literal notranslate"><span class="pre">kerberos</span></code> for the primary KDC and
+<code class="docutils literal notranslate"><span class="pre">kerberos-1</span></code>, <code class="docutils literal notranslate"><span class="pre">kerberos-2</span></code>, … for the replica KDCs. This way,
if you need to swap a machine, you only need to change a DNS entry,
rather than having to change hostnames.</p>
<p>As of MIT krb5 1.4, clients can locate a realm’s KDCs through DNS
@@ -179,44 +170,44 @@ number to contact for that service, optionally with weighting and
prioritization. The domain name used in the SRV record name is the
realm name. Several different Kerberos-related service names are
used:</p>
-<dl class="docutils">
-<dt>_kerberos._udp</dt>
-<dd>This is for contacting any KDC by UDP. This entry will be used
+<dl>
+<dt>_kerberos._udp</dt><dd><p>This is for contacting any KDC by UDP. This entry will be used
the most often. Normally you should list port 88 on each of your
-KDCs.</dd>
-<dt>_kerberos._tcp</dt>
-<dd>This is for contacting any KDC by TCP. Normally you should use
+KDCs.</p>
+</dd>
+<dt>_kerberos._tcp</dt><dd><p>This is for contacting any KDC by TCP. Normally you should use
port 88. This entry should be omitted if the KDC does not listen
-on TCP ports, as was the default prior to release 1.13.</dd>
-<dt>_kerberos-master._udp</dt>
-<dd><p class="first">This entry should refer to those KDCs, if any, that will
+on TCP ports, as was the default prior to release 1.13.</p>
+</dd>
+<dt>_kerberos-master._udp</dt><dd><p>This entry should refer to those KDCs, if any, that will
immediately see password changes to the Kerberos database. If a
user is logging in and the password appears to be incorrect, the
client will retry with the primary KDC before failing with an
“incorrect password” error given.</p>
-<p class="last">If you have only one KDC, or for whatever reason there is no
+<p>If you have only one KDC, or for whatever reason there is no
accessible KDC that would get database changes faster than the
-others, you do not need to define this entry. _kerberos-adm._tcp
-This should list port 749 on your primary KDC. Support for it is
+others, you do not need to define this entry.</p>
+</dd>
+<dt>_kerberos-adm._tcp</dt><dd><p>This should list port 749 on your primary KDC. Support for it is
not complete at this time, but it will eventually be used by the
<a class="reference internal" href="admin_commands/kadmin_local.html#kadmin-1"><span class="std std-ref">kadmin</span></a> program and related utilities. For now, you will
also need the <strong>admin_server</strong> variable in <a class="reference internal" href="conf_files/krb5_conf.html#krb5-conf-5"><span class="std std-ref">krb5.conf</span></a>.</p>
</dd>
-<dt>_kerberos-master._tcp</dt>
-<dd>The corresponding TCP port for _kerberos-master._udp, assuming the
-primary KDC listens on a TCP port.</dd>
-<dt>_kpasswd._udp</dt>
-<dd>This entry should list port 464 on your primary KDC. It is used
+<dt>_kerberos-master._tcp</dt><dd><p>The corresponding TCP port for _kerberos-master._udp, assuming the
+primary KDC listens on a TCP port.</p>
+</dd>
+<dt>_kpasswd._udp</dt><dd><p>This entry should list port 464 on your primary KDC. It is used
when a user changes her password. If this entry is not defined
but a _kerberos-adm._tcp entry is defined, the client will use the
-_kerberos-adm._tcp entry with the port number changed to 464.</dd>
-<dt>_kpasswd._tcp</dt>
-<dd>The corresponding TCP port for _kpasswd._udp.</dd>
+_kerberos-adm._tcp entry with the port number changed to 464.</p>
+</dd>
+<dt>_kpasswd._tcp</dt><dd><p>The corresponding TCP port for _kpasswd._udp.</p>
+</dd>
</dl>
<p>The DNS SRV specification requires that the hostnames listed be the
canonical names, not aliases. So, for example, you might include the
following records in your (BIND-style) zone file:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span>$ORIGIN foobar.com.
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ORIGIN foobar.com.
_kerberos TXT &quot;FOOBAR.COM&quot;
kerberos CNAME daisy
kerberos-1 CNAME use-the-force-luke
@@ -235,8 +226,8 @@ using the <strong>kdc</strong>, <strong>master_kdc</strong>, <strong>admin_serve
<a class="reference internal" href="conf_files/krb5_conf.html#krb5-conf-5"><span class="std std-ref">krb5.conf</span></a>. Even if some clients will be configured with
explicit server locations, providing SRV records will still benefit
unconfigured clients, and be useful for other sites.</p>
-</div>
-<div class="section" id="kdc-discovery">
+</section>
+<section id="kdc-discovery">
<span id="id1"></span><h2>KDC Discovery<a class="headerlink" href="#kdc-discovery" title="Permalink to this headline">¶</a></h2>
<p>As of MIT krb5 1.15, clients can also locate KDCs in DNS through URI
records (<span class="target" id="index-1"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc7553.html"><strong>RFC 7553</strong></a>). Limitations with the SRV record format may
@@ -245,31 +236,31 @@ to other transport types, or find a primary server. The URI record
can convey more information about a realm’s KDCs with a single query.</p>
<p>The client performs a query for the following URI records:</p>
<ul class="simple">
-<li><code class="docutils literal"><span class="pre">_kerberos.REALM</span></code> for finding KDCs.</li>
-<li><code class="docutils literal"><span class="pre">_kerberos-adm.REALM</span></code> for finding kadmin services.</li>
-<li><code class="docutils literal"><span class="pre">_kpasswd.REALM</span></code> for finding password services.</li>
+<li><p><code class="docutils literal notranslate"><span class="pre">_kerberos.REALM</span></code> for finding KDCs.</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">_kerberos-adm.REALM</span></code> for finding kadmin services.</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">_kpasswd.REALM</span></code> for finding password services.</p></li>
</ul>
<p>The URI record includes a priority, weight, and a URI string that
consists of case-insensitive colon separated fields, in the form
-<code class="docutils literal"><span class="pre">scheme:[flags]:transport:residual</span></code>.</p>
+<code class="docutils literal notranslate"><span class="pre">scheme:[flags]:transport:residual</span></code>.</p>
<ul class="simple">
-<li><em>scheme</em> defines the registered URI type. It should always be
-<code class="docutils literal"><span class="pre">krb5srv</span></code>.</li>
-<li><em>flags</em> contains zero or more flag characters. Currently the only
-valid flag is <code class="docutils literal"><span class="pre">m</span></code>, which indicates that the record is for a
-primary server.</li>
-<li><em>transport</em> defines the transport type of the residual URL or
-address. Accepted values are <code class="docutils literal"><span class="pre">tcp</span></code>, <code class="docutils literal"><span class="pre">udp</span></code>, or <code class="docutils literal"><span class="pre">kkdcp</span></code> for the
-MS-KKDCP type.</li>
-<li><em>residual</em> contains the hostname, IP address, or URL to be
+<li><p><em>scheme</em> defines the registered URI type. It should always be
+<code class="docutils literal notranslate"><span class="pre">krb5srv</span></code>.</p></li>
+<li><p><em>flags</em> contains zero or more flag characters. Currently the only
+valid flag is <code class="docutils literal notranslate"><span class="pre">m</span></code>, which indicates that the record is for a
+primary server.</p></li>
+<li><p><em>transport</em> defines the transport type of the residual URL or
+address. Accepted values are <code class="docutils literal notranslate"><span class="pre">tcp</span></code>, <code class="docutils literal notranslate"><span class="pre">udp</span></code>, or <code class="docutils literal notranslate"><span class="pre">kkdcp</span></code> for the
+MS-KKDCP type.</p></li>
+<li><p><em>residual</em> contains the hostname, IP address, or URL to be
contacted using the specified transport, with an optional port
extension. The MS-KKDCP transport type uses a HTTPS URL, and can
-include a port and/or path extension.</li>
+include a port and/or path extension.</p></li>
</ul>
<p>An example of URI records in a zone file:</p>
-<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">_kerberos</span><span class="o">.</span><span class="n">EXAMPLE</span><span class="o">.</span><span class="n">COM</span> <span class="n">URI</span> <span class="mi">10</span> <span class="mi">1</span> <span class="n">krb5srv</span><span class="p">:</span><span class="n">m</span><span class="p">:</span><span class="n">tcp</span><span class="p">:</span><span class="n">kdc1</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">_kerberos</span><span class="o">.</span><span class="n">EXAMPLE</span><span class="o">.</span><span class="n">COM</span> <span class="n">URI</span> <span class="mi">10</span> <span class="mi">1</span> <span class="n">krb5srv</span><span class="p">:</span><span class="n">m</span><span class="p">:</span><span class="n">tcp</span><span class="p">:</span><span class="n">kdc1</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
<span class="n">URI</span> <span class="mi">20</span> <span class="mi">1</span> <span class="n">krb5srv</span><span class="p">:</span><span class="n">m</span><span class="p">:</span><span class="n">udp</span><span class="p">:</span><span class="n">kdc2</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="p">:</span><span class="mi">89</span>
- <span class="n">URI</span> <span class="mi">40</span> <span class="mi">1</span> <span class="n">krb5srv</span><span class="p">::</span><span class="n">udp</span><span class="p">:</span><span class="mf">10.10</span><span class="o">.</span><span class="mf">0.23</span>
+ <span class="n">URI</span> <span class="mi">40</span> <span class="mi">1</span> <span class="n">krb5srv</span><span class="p">::</span><span class="n">udp</span><span class="p">:</span><span class="mf">10.10.0.23</span>
<span class="n">URI</span> <span class="mi">30</span> <span class="mi">1</span> <span class="n">krb5srv</span><span class="p">::</span><span class="n">kkdcp</span><span class="p">:</span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">proxy</span><span class="p">:</span><span class="mi">89</span><span class="o">/</span><span class="n">auth</span>
</pre></div>
</div>
@@ -278,8 +269,8 @@ include a port and/or path extension.</li>
<a class="reference internal" href="conf_files/krb5_conf.html#krb5-conf-5"><span class="std std-ref">krb5.conf</span></a> to False. When enabled, URI lookups take
precedence over SRV lookups, falling back to SRV lookups if no URI
records are found.</p>
-</div>
-<div class="section" id="database-propagation">
+</section>
+<section id="database-propagation">
<span id="db-prop"></span><h2>Database propagation<a class="headerlink" href="#database-propagation" title="Permalink to this headline">¶</a></h2>
<p>The Kerberos database resides on the primary KDC, and must be
propagated regularly (usually by a cron job) to the replica KDCs. In
@@ -295,15 +286,17 @@ parallel. To do this, have the primary KDC propagate the database to
one set of replicas, and then have each of these replicas propagate
the database to additional replicas.</p>
<p>See also <a class="reference internal" href="database.html#incr-db-prop"><span class="std std-ref">Incremental database propagation</span></a></p>
-</div>
-</div>
+</section>
+</section>
+ <div class="clearer"></div>
</div>
</div>
</div>
</div>
<div class="sidebar">
+
<h2>On this page</h2>
<ul>
<li><a class="reference internal" href="#">Realm configuration decisions</a><ul>
@@ -369,6 +362,7 @@ the database to additional replicas.</p>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
+
</div>
<div class="clearer"></div>
</div>
@@ -376,8 +370,8 @@ the database to additional replicas.</p>
<div class="footer-wrapper">
<div class="footer" >
- <div class="right" ><i>Release: 1.21.2</i><br />
- &copy; <a href="../copyright.html">Copyright</a> 1985-2023, MIT.
+ <div class="right" ><i>Release: 1.21.3</i><br />
+ &copy; <a href="../copyright.html">Copyright</a> 1985-2024, MIT.
</div>
<div class="left">