39.6. Konfigurieren von Kerberos-Clients

Sobald die unterstützende Infrastruktur (DNS, NTP) eingerichtet und das KDC ordnungsgemäß konfiguriert und gestartet wurde, konfigurieren Sie die Clientcomputer. Sie können entweder YaST zum Konfigurieren eines Kerberos-Clients oder eine der beiden unten beschriebenen manuellen Vorgehensweisen verwenden.

39.6.1. Konfigurieren von Kerberos-Clients mit YaST

Anstatt beim Konfigurieren eines Kerberos-Clients alle relevanten Konfigurationsdateien manuell zu bearbeiten, können Sie YaST diese Aufgabe für Sie erledigen lassen. Sie können die Clientkonfiguration entweder während der Installation auf Ihrem Computer oder im installierten System durchführen:

  1. Melden Sie sich als root an und wählen Sie Netzwerkdienste+Kerberos-Client.

  2. Wählen Sie Kerberos verwenden.

  3. Zur Konfiguration eines DNS-basierten Kerberos-Clients gehen Sie wie folgt vor:

    1. Bestätigen Sie die angezeigten Kerberos-Grundeinstellungen.

    2. Klicken Sie auf Erweiterte Einstellungen, um die Einzelheiten in Bezug auf Tickets, Unterstützung von OpenSSH und Zeitsynchronisation zu konfigurieren.

  4. Zur Konfiguration eines statischen Kerberos-Clients gehen Sie wie folgt vor:

    1. Legen Sie die Standarddomäne, den Standardbereich und die KDC-Serveradresse fest, sodass sie zu Ihrer Installation passen.

    2. Klicken Sie auf Erweiterte Einstellungen, um die Einzelheiten in Bezug auf Tickets, Unterstützung von OpenSSH und Zeitsynchronisation zu konfigurieren.

Abbildung 39.2. YaST: Grundlegende Konfiguration von Kerberos-Clients

YaST: Grundlegende Konfiguration von Kerberos-Clients

Wenn Sie die Ticket-Optionen im Dialogfeld Erweiterte Einstellungen konfigurieren, können Sie aus folgenden Optionen wählen:

  • Geben Sie die Standardlebensdauer des Tickets und den Standardwert für erneuerbare Lebensdauer in Tagen, Stunden oder Minuten an (Verwenden Sie die Maßeinheiten d, h und m ohne Leerzeichen zwischen dem Wert und der Maßeinheit).

  • Wenn Sie Ihre vollständige Identität weiterleiten möchten, um Ihre Tickets auf anderen Hosts zu verwenden, wählen Sie Weiterleitbar.

  • Aktivieren Sie den Transfer bestimmter Tickets mit Weitervermittelbar.

  • Mit einem PAM-Modul bleiben die Tickets verfügbar, auch nach dem Ende einer Sitzung, wenn Sie Beibehalten aktivieren.

  • Aktivieren Sie die Kerberos-Authentifizierungsunterstützung für Ihren OpenSSH-Client, indem Sie das entsprechende Kontrollkästchen auswählen. Der Client verwendet dann Kerberos-Tickets zur Authentifizierung bei dem SSH-Server.

  • Schließen Sie eine Reihe von Benutzerkonten von der Nutzung der Kerberos-Authentifizierung aus, indem Sie einen Wert für die Minimum UID (Minimale UID) festlegen, über die ein Benutzer dieser Funktion verfügen muss. Eventuell möchten Sie z. B. den Systemadministrator (root) ausschließen.

  • Verwenden Sie die Zeitdifferenz, um einen Wert für die zulässige Differenz zwischen Zeitstempel und der Systemzeit des Hosts festzulegen.

  • Damit das System mit einem NTP-Server synchronisiert bleibt, können Sie den Host als NTP-Client einrichten, indem Sie NTP-Konfiguration wählen. Das unter Abschnitt 24.1, „Konfigurieren eines NTP-Client mit YaST“ beschriebene NTP-Client-Dialogfeld von YaST wird geöffnet. Nach Abschluss der Konfiguration führt YaST alle erforderlichen Änderungen durch und der Kerberos-Client kann verwendet werden.

Abbildung 39.3. YaST: Erweiterte Konfiguration von Kerberos-Clients

YaST: Erweiterte Konfiguration von Kerberos-Clients

39.6.2. Manuelles Konfigurieren der Kerberos-Clients

Bei der Konfiguration von Kerberos gibt es zwei verschiedene Ansätze: die statische Konfiguration in der Datei /etc/krb5.conf oder die dynamische Konfiguration mit DNS. Bei der DNS-Konfiguration suchen die Kerberos-Anwendungen die KDC-Dienste über DNS-Einträge. Bei der statischen Konfiguration fügen Sie die Hostnamen Ihres KDC-Servers der Datei krb5.conf hinzu (und aktualisieren Sie die Datei, wenn Sie das KDC verschieben oder Ihren Bereich anderweitig neu konfigurieren).

Die DNS-basierte Konfiguration ist meist viel flexibler und der Arbeitsaufwand pro Maschine ist wesentlich geringer. Ihr Bereichsname muss hierfür jedoch entweder Ihrer DNS-Domäne oder einer Unterdomäne davon entsprechen. Die Konfiguration mit DNS führt zu einem gewissen Sicherheitsrisiko. Ein Angreifer kann Ihre Infrastruktur über den DNS ernsthaft stören (durch Shoot-Down des Namenservers, Spoofing von DNS-Datensätzen usw.). Meistens führt das jedoch zu einem Denial of Service. Ein ähnliches Szenario gilt für die statische Konfiguration, es sei denn, Sie geben IP-Adressen in die Datei krb5.conf statt Hostnamen ein.

39.6.2.1. Statische Konfiguration

Eine Konfigurationsweise von Kerberos ist die Bearbeitung der Konfigurationsdatei /etc/krb5.conf. Die standardmäßig installierte Datei enthält verschiedene Beispieleinträge. Löschen Sie alle Einträge vor dem Start. krb5.conf besteht aus mehreren Abschnitten. Jeder beginnt mit dem Abschnittsnamen in Klammern, das sieht z. B. [so aus].

Zur Konfiguration Ihrer Kerberos-Clients fügen Sie der Datei krb5.conf den folgenden Absatz hinzu (wobei kdc.example.com der Hostname des KDC ist):

[libdefaults]
        default_realm = EXAMPLE.COM

[realms]
        EXAMPLE.COM = {
                kdc = kdc.example.com
                admin_server = kdc.example.com
        }

Die Zeile default_realm bestimmt den Standardbereich für Kerberos-Anwendungen. Wenn Sie mehrere Bereiche haben, fügen Sie zusätzliche Anweisungen im Abschnitt [realms] hinzu.

Fügen Sie der Datei außerdem eine Anweisung hinzu, die bestimmt, wie Anwendungen Hostnamen einem Bereich zuordnen. Beispiel: Wenn Sie sich bei einem entfernten Host anmelden, muss die Kerberos-Bibliothek wissen, in welchem Bereich sich der Host befindet. Das muss im Abschnitt [domain_realms] konfiguriert werden:

[domain_realm]
        .example.com = EXAMPLE.COM
        www.foobar.com = EXAMPLE.COM

Dadurch weiß die Bibliothek, dass alle Hosts in der Datei example.com DNS-Domänen im Kerberos-Bereich EXAMPLE.COM sind. Außerdem sollte ein externer Host mit dem Namen www.foobar.com als Mitglied des Bereichs EXAMPLE.COM betrachtet werden.

39.6.2.2. DNS-basierte Konfiguration

Die DNS-basierte Kerberos-Konfiguration verwendet die SRV-Datensätze. Siehe (RFC2052) A DNS RR for specifying the location of services unter http://www.ietf.org. Diese Datensätze werden in früheren Installationen des BIND-Namensservers nicht unterstützt. Dafür ist mindestens die BIND-Version 8 erforderlich.

Der Name eines SRV-Datensatzes ist für Kerberos immer im Format _service._proto.realm, wobei "realm" für den Kerberos-Bereich steht. Die Groß-/Kleinschreibung wird bei Domänennamen in DNS nicht beachtet. Daher würden Kerberos-Bereiche mit Groß-/Kleinschreibung bei dieser Konfigurationsmethode zerstört. _service ist ein Dienstname (beim Verbindungsversuch mit dem KDC oder dem Passwortdienst werden beispielsweise verschiedene Namen verwendet). _proto kann entweder _udp oder _tcp sein, aber nicht alle Dienste unterstützen beide Protokolle.

Der Datenteil der SRV-Ressourcen-Datensätze besteht aus einem Wert für die Priorität, einer Gewichtung, einer Port-Nummer und einem Hostnamen. Die Priorität legt die Reihenfolge fest, in der die Hosts versucht werden (ein niedriger Wert bedeutet eine niedrigere Priorität). Die Gewichtung unterstützt eine Art Belastungsausgleich zwischen Servern mit gleicher Priorität. Sie brauchen diese Werte wahrscheinlich nicht und können sie daher auf Null setzen.

MIT Kerberos sucht derzeit bei der Suche nach Diensten die folgenden Namen:

_kerberos

Definiert den Standort des KDC-Daemons (die Authentifizierung und der Ticket ausstellende Server). Ein typischer Datensatz sieht wie folgt aus:

_kerberos._udp.EXAMPLE.COM.  IN  SRV    0 0 88 kdc.example.com. 
_kerberos._tcp.EXAMPLE.COM.  IN  SRV    0 0 88 kdc.example.com.
_kerberos-adm

Beschreibt den Standort des entfernten Administrationsdiensts. Ein typischer Datensatz sieht wie folgt aus:

_kerberos-adm._tcp.EXAMPLE.COM. IN  SRV    0 0 749 kdc.example.com.

Da kadmind UDP nicht unterstützt, sollte kein _udp-Datensatz vorhanden sein.

Wie bei der statischen Konfigurationsdatei gibt es eine Methode, den Clients mitzuteilen, dass sich ein bestimmter Host im Bereich EXAMPLE.COM befindet, auch wenn dieser nicht zur example.com-DNS-Domäne gehört. Das geschieht, indem ein TXT-Datensatz an _keberos.hostname angehängt wird, wie im Folgenden:

_keberos.www.foobar.com.  IN TXT "EXAMPLE.COM"

39.6.2.3. Anpassen der Zeitdifferenz

Die Zeitdifferenz ist die Toleranz, in der Tickets mit Zeitstempeln akzeptiert werden, die nicht genau der Systemuhr des Hosts entsprechen. Die Zeitdifferenz wird in der Regel auf 300 Sekunden (fünf Minuten) festgelegt. Das bedeutet, ein Ticket kann einen Zeitstempel zwischen fünf Minuten vorher und fünf Minuten nach der Server-Uhr haben.

Wenn Sie NTP zum Synchronisieren aller Hosts einsetzen, können Sie diesen Wert auf ca. eine Minute verringern. Der Wert für die Zeitdifferenz wird in der Datei /etc/krb5.conf wie folgt festgelegt:

[libdefaults]
        clockskew = 120