Update to r44442:
Editorial review of first 1/2 of Kerberos chapter.
This commit is contained in:
parent
fb4b145598
commit
62e3add0c4
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48815
1 changed files with 91 additions and 116 deletions
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $
|
||||
basiert auf: r44403
|
||||
basiert auf: r44442
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security">
|
||||
<info><title>Sicherheit</title>
|
||||
|
|
@ -1196,7 +1196,7 @@ sendmail : PARANOID : deny</programlisting>
|
|||
</sect1>
|
||||
|
||||
<sect1 xml:id="kerberos5">
|
||||
<info><title><application>Kerberos5</application></title>
|
||||
<info><title><application>Kerberos</application></title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Tillman</firstname><surname>Hodgson</surname></personname><contrib>Beigetragen von </contrib></author>
|
||||
</authorgroup>
|
||||
|
|
@ -1205,14 +1205,18 @@ sendmail : PARANOID : deny</programlisting>
|
|||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para><application>Kerberos</application> ist ein Netzwerk-Protokoll,
|
||||
das Benutzer mithilfe eines sicheren Servers authentifiziert.
|
||||
Die Daten einer Kommunikation können verschlüsselt werden,
|
||||
nachdem die Kommunikationspartner mit
|
||||
<application>Kerberos</application> ihre Identität geprüft
|
||||
haben.</para>
|
||||
<para><application>Kerberos</application> ist ein
|
||||
Netzwerk-Authentifizierungsprotokoll, das ursprünglich am
|
||||
Massachusetts Institute of Technology (<acronym>MIT</acronym>)
|
||||
entwickelt wurde. Es bietet die Möglichkeit zur sicheren
|
||||
Authentifizierung über ein potentiell unsicheres Netzwerk. Das
|
||||
<application>Kerberos</application>-Protokoll benutzt eine
|
||||
starke Kryptographie, um die Identität von Clients und Servern
|
||||
nachweisen zu können. Dabei werden keine unverschlüsselten
|
||||
Daten über das Netzewrk gesendet.
|
||||
<application>Kerberos</application> kann als eine Art Proxy zur
|
||||
Identitätsprüfung, oder als vertrauenswürdiges
|
||||
Authentifizierungssystem betrachtet werden.</para>
|
||||
|
||||
<para><application>Kerberos</application> hat nur eine Aufgabe:
|
||||
Die sichere Prüfung der Identität eines Benutzers
|
||||
|
|
@ -1224,10 +1228,29 @@ sendmail : PARANOID : deny</programlisting>
|
|||
Sicherheits-Systemen eingesetzt werden, die diese Funktionen
|
||||
bereitstellen.</para>
|
||||
|
||||
<para>Die aktuelle Version des Protokolls ist Version 5, die in
|
||||
<acronym>RFC</acronym> 4120 beschrieben ist. Es existieren
|
||||
mehrere freie Implementierungen dieses Protokolls für eine Reihe
|
||||
von Betriebssystemen. Das <acronym>MIT</acronym> entwickelt
|
||||
auch weiterhin seine
|
||||
<application>Kerberos</application>-Version weiter.
|
||||
Es wird in den vereinigten Staaten als Kryptographie-Produkt
|
||||
eingesetzt und unterlag in der Vergangenheit
|
||||
<acronym>US</acronym>-Exportbeschränkungen. In &os; ist
|
||||
<acronym>MIT</acronym>-<application>Kerberos</application> als
|
||||
Port oder Paket <package>security/krb5</package>
|
||||
verfügbar. Die
|
||||
<application>Kerberos</application>-Implementation von Heimdal
|
||||
wurde außerhalb der <acronym>USA</acronym> entwickelt und
|
||||
unterliegt daher keinen Export-Beschränkungen.
|
||||
Heimdal-<application>Kerberos</application> ist im Basissystem
|
||||
von &os; enthalten. Mit <package>security/heimdal</package> aus
|
||||
der Ports-Sammlung steht eine weitere Distribution, mit mehr
|
||||
konfigurierbaren Optionen zur Verfügung.</para>
|
||||
|
||||
<para>Die folgenden Anweisungen beschreiben, wie Sie das mit
|
||||
&os; gelieferte <application>Kerberos</application> einrichten.
|
||||
Eine vollständige Beschreibung des Systems entnehmen Sie den
|
||||
entsprechenden Hilfeseiten.</para>
|
||||
&os; gelieferte Heimdal-<application>Kerberos</application>
|
||||
einrichten.</para>
|
||||
|
||||
<para>Die Beschreibung der
|
||||
<application>Kerberos</application>-Installation benutzt
|
||||
|
|
@ -1254,54 +1277,9 @@ sendmail : PARANOID : deny</programlisting>
|
|||
<application>Kerberos</application>-Realms sicher.</para>
|
||||
</note>
|
||||
|
||||
<sect2>
|
||||
<title>Geschichte</title>
|
||||
<indexterm>
|
||||
<primary>Kerberos5</primary>
|
||||
<secondary>Geschichte</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Das <acronym>MIT</acronym> hat
|
||||
<application>Kerberos</application> entwickelt, um
|
||||
Sicherheitsprobleme auf dem Netzwerk zu lösen. Das
|
||||
<application>Kerberos</application>-Protokoll verwendet
|
||||
starke Kryptographie, sodass ein Server die Identität
|
||||
eines Clients (der umgekehrte Vorgang ist auch möglich)
|
||||
über ein unsicheres Netzwerk feststellen kann.</para>
|
||||
|
||||
<para>Der Begriff Kerberos wird sowohl für das Protokoll
|
||||
als auch für Programme verwendet, die
|
||||
<application>Kerberos</application> benutzen, wie
|
||||
<application>Kerberos</application>-Telnet. Die aktuelle
|
||||
Protokollversion ist 5 und wird in
|
||||
<acronym>RFC</acronym> 1510 beschrieben.</para>
|
||||
|
||||
<para>Mehrere Implementierungen des Protokolls stehen frei
|
||||
zur Verfügung und decken viele Betriebssysteme ab.
|
||||
Das Massachusetts Institute of Technology
|
||||
(<acronym>MIT</acronym>), an dem <application>Kerberos</application>
|
||||
ursprünglich entwickelt wurde, entwickelt seine
|
||||
<application>Kerberos</application>-Version weiter. In den
|
||||
<acronym>USA</acronym> wird diese Version häufig
|
||||
eingesetzt, unterlag aber Export-Beschränkungen,
|
||||
da sie in den <acronym>USA</acronym> entwickelt wurde.
|
||||
Die <acronym>MIT</acronym>-Version von
|
||||
<application>Kerberos</application> ist als Port oder Paket
|
||||
<package>security/krb5</package> verfügbar.
|
||||
Heimdal ist eine weitere Implementierung der Protokollversion 5.
|
||||
Sie wurde außerhalb der <acronym>USA</acronym> entwickelt
|
||||
und unterliegt daher keinen Export-Beschränkungen.
|
||||
Heimdal-<application>Kerberos</application> befindet sich
|
||||
im Port oder Paket <package>security/heimdal</package>
|
||||
und das Basissystem von &os; enthält eine minimale
|
||||
Installation von Heimdal.</para>
|
||||
|
||||
<para>Die folgenden Beispiele verwenden die in &os; enthaltene
|
||||
Heimdal-Distribution.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Das Heimdal <acronym>KDC</acronym> einrichten</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>Kerberos5</primary>
|
||||
<secondary>Key Distribution Center</secondary>
|
||||
|
|
@ -1332,14 +1310,14 @@ kadmind5_server_enable="YES"</programlisting>
|
|||
wie folgt bearbeitet:</para>
|
||||
|
||||
<programlisting>[libdefaults]
|
||||
default_realm = EXAMPLE.ORG
|
||||
default_realm = <replaceable>EXAMPLE.ORG</replaceable>
|
||||
[realms]
|
||||
EXAMPLE.ORG = {
|
||||
kdc = kerberos.example.org
|
||||
admin_server = kerberos.example.org
|
||||
<replaceable>EXAMPLE.ORG</replaceable> = {
|
||||
kdc = <replaceable>kerberos.example.org</replaceable>
|
||||
admin_server = <replaceable>kerberos.example.org</replaceable>
|
||||
}
|
||||
[domain_realm]
|
||||
.example.org = EXAMPLE.ORG</programlisting>
|
||||
<replaceable>.example.org</replaceable> = <replaceable>EXAMPLE.ORG</replaceable></programlisting>
|
||||
|
||||
<para>Diese Einstellungen setzen voraus, dass der voll
|
||||
qualifizierte Name des <acronym>KDC</acronym>s
|
||||
|
|
@ -1347,36 +1325,34 @@ kadmind5_server_enable="YES"</programlisting>
|
|||
class="fqdomainname">kerberos.example.org</systemitem> ist.
|
||||
Wenn das <acronym>KDC</acronym> einen anderen Namen hat,
|
||||
muss in der <acronym>DNS</acronym>-Zone ein Alias-Eintrag
|
||||
(CNAME-Record) für das <acronym>KDC</acronym> hinzugefügt
|
||||
werden.</para>
|
||||
(<acronym>CNAME</acronym>-Record) für das
|
||||
<acronym>KDC</acronym> hinzugefügt werden.</para>
|
||||
|
||||
<note>
|
||||
<para>In großen Netzwerken mit einem ordentlich
|
||||
konfigurierten <acronym>DNS</acronym>-Server kann die Datei
|
||||
aus dem obigen Beispiel verkürzt werden:</para>
|
||||
|
||||
<programlisting>[libdefaults]
|
||||
default_realm = EXAMPLE.ORG</programlisting>
|
||||
default_realm = <replaceable>EXAMPLE.ORG</replaceable></programlisting>
|
||||
|
||||
<para>Die Zonendatei von <systemitem class="fqdomainname">example.org</systemitem>
|
||||
muss dann die folgenden Zeilen enthalten:</para>
|
||||
|
||||
<programlisting>_kerberos._udp IN SRV 01 00 88 kerberos.example.org.
|
||||
_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.
|
||||
_kpasswd._udp IN SRV 01 00 464 kerberos.example.org.
|
||||
_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.
|
||||
_kerberos IN TXT EXAMPLE.ORG</programlisting>
|
||||
</note>
|
||||
<programlisting>_kerberos._udp IN SRV 01 00 88 <replaceable>kerberos.example.org</replaceable>.
|
||||
_kerberos._tcp IN SRV 01 00 88 <replaceable>kerberos.example.org</replaceable>.
|
||||
_kpasswd._udp IN SRV 01 00 464 <replaceable>kerberos.example.org</replaceable>.
|
||||
_kerberos-adm._tcp IN SRV 01 00 749 <replaceable>kerberos.example.org</replaceable>.
|
||||
_kerberos IN TXT <replaceable>EXAMPLE.ORG</replaceable></programlisting>
|
||||
|
||||
<note>
|
||||
<para>Damit die Clients die
|
||||
<application>Kerberos</application>-Dienste benutzen
|
||||
können, muss <filename>/etc/krb5.conf</filename>
|
||||
entweder die vollständige Konfiguration enthalten
|
||||
oder eine minimale Konfiguration enthalten
|
||||
<emphasis>und</emphasis> zusätzlich ein
|
||||
<acronym>DNS</acronym>-Server richtig eingerichtet
|
||||
sein.</para>
|
||||
können, muss das <acronym>KDC</acronym> entweder eine
|
||||
vollständig konfigurierte
|
||||
<filename>/etc/krb5.conf</filename> enthalten, oder eine
|
||||
minimale Konfiguration <emphasis>und</emphasis> zusätzlich
|
||||
ein richtig konfigurierter
|
||||
<acronym>DNS</acronym>-Server.</para>
|
||||
</note>
|
||||
|
||||
<para>Im nächsten Schritt wird die
|
||||
|
|
@ -1386,46 +1362,44 @@ _kerberos IN TXT EXAMPLE.ORG</programlisting>
|
|||
brauchen Sie sich nicht merken, da ein davon abgeleiteter
|
||||
Schlüssel in <filename>/var/heimdal/m-key</filename>
|
||||
gespeichert wird. Um den Schlüssel zu erstellen, rufen Sie
|
||||
&man.kstash.8; auf und geben Sie ein Passwort ein.</para>
|
||||
<command>kstash</command> auf und geben Sie ein Passwort
|
||||
ein:</para>
|
||||
|
||||
<para>Nachdem der Schlüssel erstellt wurde, sollte die
|
||||
Datenbank initialisiert werden. Das
|
||||
<application>Kerberos</application>-Werkzeug &man.kadmin.8;
|
||||
kann mit <command>kadmin -l</command> im lokalen Modus benutzt
|
||||
werden, ohne den Netzwerkdienst, welcher zu diesem Zeitpunkt
|
||||
noch nicht läuft, zu verwenden. An der Eingabeaufforderung
|
||||
von &man.kadmin.8; kann mit <command>init</command>
|
||||
die Datenbank des Realms initialisiert werden.</para>
|
||||
<screen>&prompt.root; <userinput>kstash</userinput>
|
||||
Master key: <userinput><replaceable>xxxxxxxx</replaceable></userinput>
|
||||
Verifying password - Master key: <userinput><replaceable>xxxxxxxx</replaceable></userinput></screen>
|
||||
|
||||
<para>Nachdem der Schlüssel erstellt wurde, intitialisieren Sie
|
||||
die Datenbank mit <command>kadmin -l</command>. Die Option
|
||||
weist <command>kadmin</command> an, die lokale Datenbank
|
||||
direkt zu bearbeiten, anstatt den zu diesem Zeitpunkt noch
|
||||
nicht laufenden Netzwerkdienst &man.kadmind.8; zu benutzen.
|
||||
An der Eingabeaufforderung von <command>kadmin</command> kann
|
||||
mit <command>init</command> die Datenbank des Realms
|
||||
initialisiert werden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kadmin -l</userinput>
|
||||
kadmin> <userinput>init <replaceable>EXAMPLE.ORG</replaceable></userinput>
|
||||
Realm max ticket life [unlimited]:</screen>
|
||||
|
||||
<para>Zuletzt wird mit <command>add</command> das erste
|
||||
Prinzipal erstellt. Benutzen Sie die voreingestellten
|
||||
Optionen. Die Einstellungen können später
|
||||
Optionen. Die Einstellungen können später mit
|
||||
<command>modify</command> verändert werden. An der
|
||||
Eingabeaufforderung von &man.kadmin.8; zeigt
|
||||
<command>?</command> Hilfetexte an.</para>
|
||||
<command>?</command> die verfügbaren Optionen an.</para>
|
||||
|
||||
<para>Zusammengefasst wird die Datenbank wie folgt
|
||||
eingerichtet:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kstash</userinput>
|
||||
Master key: <userinput>xxxxxxxx</userinput>
|
||||
Verifying password - Master key: <userinput>xxxxxxxx</userinput>
|
||||
|
||||
&prompt.root; <userinput>kadmin -l</userinput>
|
||||
kadmin> <userinput>init EXAMPLE.ORG</userinput>
|
||||
Realm max ticket life [unlimited]:
|
||||
kadmin> <userinput>add tillman</userinput>
|
||||
<screen>kadmin> <userinput>add <replaceable>tillman</replaceable></userinput>
|
||||
Max ticket life [unlimited]:
|
||||
Max renewable life [unlimited]:
|
||||
Attributes []:
|
||||
Password: <userinput>xxxxxxxx</userinput>
|
||||
Verifying password - Password: <userinput>xxxxxxxx</userinput></screen>
|
||||
Password: <userinput><replaceable>xxxxxxxx</replaceable></userinput>
|
||||
Verifying password - Password: <userinput><replaceable>xxxxxxxx</replaceable></userinput></screen>
|
||||
|
||||
<para>Jetzt kann das <acronym>KDC</acronym> gestartet werden.
|
||||
Führen Sie zum Start der Dienste
|
||||
<para>Jetzt können die <acronym>KDC</acronym>-Dienste mit
|
||||
<command>service kerberos start</command> und
|
||||
<command>service kadmind start</command> aus. Obwohl
|
||||
zu diesem Zeitpunkt noch keine kerberisierten Dienste
|
||||
<command>service kadmind start</command> gestartet werden.
|
||||
Obwohl zu diesem Zeitpunkt noch keine kerberisierten Dienste
|
||||
laufen, kann die Funktion des <acronym>KDC</acronym>s
|
||||
schon überprüft werden. Für den eben angelegten
|
||||
Benutzer können Sie sich vom <acronym>KDC</acronym>
|
||||
|
|
@ -1435,7 +1409,7 @@ Verifying password - Password: <userinput>xxxxxxxx</userinput></screen>
|
|||
tillman@EXAMPLE.ORG's Password:
|
||||
|
||||
&prompt.user; <userinput>klist</userinput>
|
||||
Credentials cache: FILE: <filename>/tmp/krb5cc_500</filename>
|
||||
Credentials cache: FILE: /tmp/krb5cc_500
|
||||
Principal: tillman@EXAMPLE.ORG
|
||||
|
||||
Issued Expires Principal
|
||||
|
|
@ -1448,8 +1422,9 @@ Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG</screen>
|
|||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Heimdal <application>Kerberos</application>-Dienste
|
||||
einrichten</title>
|
||||
<title><application>Kerberos</application>-Dienste auf dem
|
||||
Server einrichten</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>Kerberos5</primary>
|
||||
<secondary>Dienste einrichten</secondary>
|
||||
|
|
@ -1519,14 +1494,14 @@ Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG</screen>
|
|||
in eine eigene keytab:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kadmin</userinput>
|
||||
kadmin> <userinput>add --random-key host/myserver.example.org</userinput>
|
||||
kadmin> <userinput>add --random-key <replaceable>host/myserver.example.org</replaceable></userinput>
|
||||
Max ticket life [unlimited]:
|
||||
Max renewable life [unlimited]:
|
||||
Attributes []:
|
||||
kadmin> <userinput>ext host/myserver.example.org</userinput>
|
||||
kadmin> <userinput>ext_keytab <replaceable>host/myserver.example.org</replaceable></userinput>
|
||||
kadmin> <userinput>exit</userinput></screen>
|
||||
|
||||
<para>Beachten Sie, dass <command>ext</command> den
|
||||
<para>Beachten Sie, dass <command>ext_keytab</command> den
|
||||
extrahierten Schlüssel standardmäßig in
|
||||
<filename>/etc/krb5.keytab</filename> speichert. Das ist
|
||||
gut, wenn das Kommando auf dem kerberisierten Server
|
||||
|
|
@ -1537,11 +1512,11 @@ kadmin> <userinput>exit</userinput></screen>
|
|||
extrahiert wird:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kadmin</userinput>
|
||||
kadmin> <userinput>ext --keytab=/tmp/example.keytab <replaceable>host/myserver.example.org</replaceable></userinput>
|
||||
kadmin> <userinput>ext_keytab --keytab=/tmp/example.keytab <replaceable>host/myserver.example.org</replaceable></userinput>
|
||||
kadmin> <userinput>exit</userinput></screen>
|
||||
|
||||
<para>Anschließend kann die erzeugte keytab sicher mit
|
||||
<command>scp</command> auf Server oder auf einen
|
||||
&man.scp.1; auf Server oder auf einen
|
||||
Wechseldatenträger kopiert werden. Geben Sie auf jeden Fall
|
||||
einen anderen Namen für die keytab an, weil sonst die keytab
|
||||
des <acronym>KDC</acronym>s überschrieben würde.</para>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue