Sun Enterprise Authentication Mechanism Handbuch

Verwalten von Schlüsseltabellen

Jeder Service anbietende Host muß über eine lokale Datei verfügen, die als Schlüsseltabelle bezeichnet wird und die den Hauptbenutzer für den geeigneten Service enthält, der als Serviceschlüssel bezeichnet wird. Serviceschlüssel werden von einem Service verwendet, um sich selbst für das KDC zu authentisieren. Sie sind nur Kerberos und dem Service selbst bekannt. Wenn Sie zum Beispiel einen Kerberos-NFS-Server besitzen, muß dieser Server über eine Schlüsseltabelle verfügen, die seinen Service-Hauptbenutzer nfs enthält.

Sie fügen den entsprechenden Service-Hauptbenutzer mit dem Befehl ktadd von kadmin zur Schlüsseltabelle eines Hosts hinzu, um einen Service zu einer Schlüsseltabelle hinzuzufügen. Da Sie einen Service-Hauptbenutzer zu einer Schlüsseltabelle hinzufügen, muß der Hauptbenutzer auch bereits in der Kerberos-Datenbank vorhanden sein, damit kadmin seine Existenz verifizieren kann. Für das Master-KDC befindet sich die Schlüsseltabellen-Datei standardmäßig unter /etc/krb5/kadm5.keytab. Für Anwendungs-Server, die Kerberos-Services bereitstellen, befindet sich die Schlüsseltabellen-Datei standardmäßig unter /etc/krb5/krb5.keytab.

Eine Schlüsseltabelle entspricht einem Benutzerpaßwort. Für Anwendungs-Server ist es gleichermaßen wichtig, ihre Schlüsseltabellen zu schützen, wie es auch für Benutzer wichtig ist, ihr Paßwort zu schützen. Sie sollten Schlüsseltabellen immer auf einem lokalen Datenträger speichern und den Lesezugriff nur für root zulassen. Außerdem sollten Sie eine Schlüsseltabelle niemals über ein ungesichertes Netzwerk senden.

Es gibt außerdem die Möglichkeit, einen root-Hauptbenutzer zur Schlüsseltabelle eines Hosts hinzuzufügen. Im Grunde müssen Sie den root-Hauptbenutzer des Clients zur Schlüsseltabelle des Clients hinzufügen, damit ein Benutzer des SEAM-Clients Kerberos-NFS-Dateisysteme automatisch mit der Kerberos-Authentisierung einhängen kann. Andernfalls müssen Benutzer den Befehl kinit als root ausführen, um Berechtigungsnachweise für den root-Hauptbenutzer des Clients bei jedem Einhängen eines Kerberos-NFS-Dateisystems zu empfangen, auch wenn der Automounter dazu verwendet wird. Weitere Informationen finden Sie unter "Einrichten der Root-Authentisierung für das Einhängen von NFS-Dateisystemen".


Hinweis -

Beim Einrichten einer Master-KDC müssen Sie die Hauptbenutzer kadmind und changepw zur Datei kadm5.keytab hinzufügen, damit das KDC die Kerberos-Tickets des Verwalters entschlüssel kann, um zu ermitteln, ob diesem der Zugriff auf die Datenbank gewährt wird.


Einen weiteren Befehl zur Verwaltung von Schlüsseltabellen stellt ktutil dar. ktutil ist ein interaktives Dienstprogramm für die Befehlszeilen-Schnittstelle, mit dem Sie die Schlüsseltabelle eines lokalen Hosts verwalten können, ohne Kerberos-Verwaltungsberechtigungen zu besitzen, da ktutil nicht wie kadmin mit der Kerberos-Datenbank arbeitet. Nachdem somit ein Hauptbenutzer zur Schlüsseltabelle hinzugefügt wurde, können Sie ktutil verwenden, um die Schlüsselliste in einer Schlüsseltabelle anzuzeigen, oder um die Authentisierung temporär für einen Service zu deaktivieren.

Aufgabentabelle zur Verwaltung von Schlüsseltabellen

Tabelle 5-9 Aufgabentabelle zur Verwaltung von Schlüsseltabellen

Aufgabe 

Beschreibung 

Anweisungen erhalten Sie unter 

Hinzufügen eines Service-Hauptbenutzers zu einer Schlüsseltabelle 

Verwenden Sie den Befehl ktadd von kadmin, um einen Service-Hauptbenutzer zu einer Schlüsseltabelle hinzuzufügen.

"Hinzufügen eines Service-Hauptbenutzers zu einer Schlüsseltabelle"

Entfernen eines Service-Hauptbenutzers aus einer Schlüsseltabelle 

Verwenden Sie den Befehl ktremove von kadmin, um einen Service-Hauptbenutzer aus einer Schlüsseltabelle zu entfernen.

"Entfernen eines Service-Hauptbenutzers aus einer Schlüsseltabelle"

Anzeigen der Schlüsselliste (Hauptbenutzer) in einer Schlüsseltabelle 

Verwenden Sie den Befehl ktutil, um die Schlüsselliste in einer Schlüsseltabelle anzuzeigen.

"Anzeigen der Schlüsselliste (Hauptbenutzer) in einer Schlüsseltabelle"

Temporäres Deaktivieren der Authentisierung für einen Service auf einem Host 

Mit dieser Prozedur können Sie die Authentisierung für einen Service auf einem Host schnell temporär deaktivieren, ohne kadmin-Berechtigungen zu besitzen. Bevor Sie ktutil zum Löschen des Service-Hauptbenutzers aus der Schlüsseltabelle des Servers verwenden, kopieren Sie die ursprüngliche Schlüsseltabelle an einen temporären Ort. Wenn Sie den Service wieder aktivieren möchten, kopieren Sie die ursprüngliche Schlüsseltabelle einfach wieder zurück.

"Temporäres Deaktivieren der Authentisierung für einen Service auf einem Host"

Hinzufügen eines Service-Hauptbenutzers zu einer Schlüsseltabelle

  1. Stellen Sie sicher, daß der Hauptbenutzer bereits in der Kerberos-Datenbank vorhanden ist.

    Weitere Informationen finden Sie unter "Anzeigen der Hauptbenutzerliste".

  2. Melden Sie sich als Superuser auf dem Host an, für den ein Hauptbenutzer zur Schlüsseltabelle hinzugefügt werden soll.

  3. Starten Sie den Befehl kadmin.


    # /usr/krb5/sbin/kadmin
    
  4. Fügen Sie mit dem Befehl ktadd einen Hauptbenutzer zu einer Schlüsseltabelle hinzu.


    kadmin: ktadd [-k Schlüsseltabelle] [-q] [Hauptbenutzer | -glob Hauptbenutzer_Ziel]

    -p Schlüsseltabelle

    Legt die Schlüsseltabellen-Datei fest. Standardmäßig wird /etc/krb5/krb5.keytab verwendet.

    -q

    Zeigt weniger ausführliche Informationen an. 

    Hauptbenutzer

    Der zur Schlüsseltabelle hinzuzufügende Hauptbenutzer. Folgende Service-Hauptbenutzer können hinzugefügt werden: host, root, nfs und ftp

    -glob Hauptbenutzer_Ausdruck

    Alle mit dem Hauptbenutzer-Ausdruck übereinstimmenden Hauptbenutzer werden zur Schlüsseltabelle hinzugefügt. Die Regeln für Hauptbenutzer-Ausdrücke sind dieselben, wie für den Befehl list_principals von kadmin.

  5. Beenden Sie den Befehl kadmin.


    kadmin: quit
    

Beispiel--Hinzufügen eines Service-Hauptbenutzers zu einer Schlüsseltabelle

In dem folgenden Beispiel werden die Hauptbenutzer kadmin/admin und kadmin/changepw zur Schlüsseltabelle eines KDCs hinzugefügt. In diesem Beispiel muß die Schlüsseltabelle-Datei in der Datei kdc.conf angegeben sein.


kdc1 # /usr/krb5/bin/kadmin.local
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/admin kadmin/changepw
Eintrag für Hauptbenutzer kadmin/admin@ACME.COM mit kvno 3, Verschlüsselungstyp DES-CBC-CRC
  wurde zur Schlüsseltabelle WRFILE:/etc/krb5/kadm5.keytab hinzugefügt.
Eintrag für Hauptbenutzer kadmin/changepw@ACME.COM mit kvno 3, Verschlüsselungstyp DES-CBC-CRC
  wurde zur Schlüsseltabelle WRFILE:/etc/krb5/kadm5.keytab hinzugefügt.
kadmin.local: quit

In folgendem Beispiel wird der Host-Hauptbenutzer von hannover zur Schlüsseltabellen-Datei von hannover hinzugefügt, damit die Netzwerkdienste von hannover vom KDC authentisiert werden können.


denver # /usr/krb5/bin/kadmin
kadmin: ktadd host/hannover@acme.com@ACME.COM
kadmin: Eintrag für Hauptbenutzer host/hannover@acme.com@ACME.COM mit kvno 2,
  Verschlüsselungstyp DES-CBC-CRC wurde zur Schlüsseltabelle 
  WRFILE:/etc/krb5/krb5.keytab hinzugefügt.
kadmin: quit

Entfernen eines Service-Hauptbenutzers aus einer Schlüsseltabelle

  1. Melden Sie sich auf dem Host als Superuser an, auf dem ein Hauptbenutzer aus dessen Schlüsseltabelle entfernt werden muß.

  2. Starten Sie den Befehl kadmin.


    # /usr/krb5/bin/kadmin
    
  3. Optional. Verwenden Sie den Befehl ktutil, um die aktuelle Hauptbenutzerliste (Schlüssel) in der Schlüsseltabelle anzuzeigen..

    Weitere Anweisungen finden Sie unter "Anzeigen der Schlüsselliste (Hauptbenutzer) in einer Schlüsseltabelle".

  4. Entfernen Sie einen Hauptbenutzer mit dem Befehl ktremove aus einer Schlüsseltabelle.


    kadmin: ktremove [-k Schlüsseltabelle] [-q] Hauptbenutzer [kvno | all | old ]

    -k Schlüsseltabelle

    Legt die Schlüsseltabellen-Datei fest. Standardmäßig wird /etc/krb5/krb5.keytab verwendet.

    -q

    Zeigt weniger ausführliche Informationen an. 

    Hauptbenutzer

    Der aus der Schlüsseltabelle zu entfernende Hauptbenutzer. 

    kvno

    Entfernt alle Einträge für den angegebenen Hauptbenutzer, dessen kvno (Key Version Number, Schlüsselversionsnummer) mit kvno übereinstimmt.

    all

    Entfernt alle Einträge für den angegebenen Hauptbenutzer. 

    old

    Entfernt alle Einträge für den angegebenen Hauptbenutzer, ausgenommen der Einträge mit der höchsten kvno. 

  5. Beenden Sie den Befehl kadmin.


    kadmin: quit
    

Beispiel--Entfernen eines Service-Hauptbenutzers aus einer Schlüsseltabelle

Im folgenden Beispiel der Host-Principal von hannover aus der Schlüsseltabellen-Datei von hannover entfernt.


denver # /usr/krb5/bin/kadmin
kadmin: ktremove host/hannover.acme.com@ACME.COM
kadmin: Eintrag für Hauptbenutzer host/hannover.acme.com@ACME.COM mit kvno 3 
  wurde aus der Schlüsseltabelle WRFILE:/etc/krb5/krb5.keytab entfernt.
kadmin: quit

Anzeigen der Schlüsselliste (Hauptbenutzer) in einer Schlüsseltabelle

  1. Melden Sie sich auf dem Host mit der Schlüsseltabelle als Superuser an.


    Hinweis -

    Obwohl Sie Schlüsseltabellen erstellen können, die Eigentum anderer Benutzer sind, erfordert die Standardposition für die Schlüsseltabelle die root-Eigentümerrechte.


  2. Starten Sie den Befehl ktutil.


    # /usr/krb5/bin/ktutil
    
  3. Lesen Sie die Schlüsseltabelle mit dem Befehl read_kt in den Puffer für die Schlüssellisten ein.


    ktutil: read_kt Schlüsseltabelle
    
  4. Zeigen Sie den Puffer für die Schlüssellisten mit dem Befehl list an.


    ktutil: list
    

    Der aktuelle Schlüssellisten-Puffer wird angezeigt.

  5. Beenden Sie den Befehl ktutil.


    ktutil: quit
    

Beispiel--Anzeigen der Schlüsselliste (Hauptbenutzer) in einer Schlüsseltabelle

Im folgenden Beispiel wird die Schlüsselliste in der Datei /etc/krb5/krb5.keytab auf dem Host hannover angezeigt.


denver # /usr/krb5/bin/ktutil 
    ktutil: read_kt /etc/krb5/krb5.keytab
    ktutil: list
slot KVNO Principal 
---- ---- --------------------------------------- 
   1    5 host/hannover@ACME.COM 
    ktutil: quit

Temporäres Deaktivieren der Authentisierung für einen Service auf einem Host

Es kann vorkommen, daß Sie den Authentisierungsmechanismus für einen Service, wie z. B. rlogin oder ftp, auf einem Netzwerk-Anwendungs-Server temporär deaktivieren müssen. Wenn Sie z. B. Benutzer davon abhalten möchten, sich auf einem System anzumelden, während Sie Verwaltungsaufgaben durchführen. Mit dem Befehl ktutil können Sie dies erreichen, indem Sie den Service-Hauptbenutzer aus der Schlüsseltabelle des Servers entfernen, ohne daß kadmin-Berechtigungen erforderlich sind. Wenn Sie die Authentisierung wieder aktivieren möchten, müssen Sie nur die zuvor gesicherte ursprüngliche Schlüsseltabelle wieder an die Ausgangsposition kopieren.


Hinweis -

Die meisten Services sind so eingerichtet, daß die Authentisierung standardmäßig aktiviert ist. Wenn dies nicht der Fall sein sollte, kann der Service dennoch ausgeführt werden, auch wenn die Authentisierung für diesen Service deaktiviert wurde.


  1. Melden Sie sich auf dem Host mit der Schlüsseltabelle als Superuser an.


    Hinweis -

    Obwohl Sie Schlüsseltabellen erstellen können, die Eigentum anderer Benutzer sind, erfordert die Standardposition für die Schlüsseltabelle die root-Eigentümerrechte.


  2. Speichern Sie die aktuelle Schlüsseltabelle in einer temporären Datei.

  3. Starten Sie den Befehl ktutil.


    # /usr/krb5/bin/ktutil
    
  4. Lesen Sie die Schlüsseltabelle mit dem Befehl read_kt in den Puffer für die Schlüssellisten ein.


    ktutil: read_kt Schlüsseltabelle
    
  5. Zeigen Sie den Puffer für die Schlüssellisten mit dem Befehl list an.


    ktutil: list
    

    Der aktuelle Schlüssellisten-Puffer wird angezeigt. Beachten Sie die Slot-Nummer für den zu deaktivierenden Service.

  6. Entfernen Sie den bestimmten Service-Hauptbenutzer mit dem Befehl delete_entry aus dem Puffer für die Schlüssellisten, um den Service eines Hosts temporär zu deaktivieren.


    ktutil: delete_entry slot_number
    

    Slot_Nummer

    Die Slot-Nummer des zu löschenden Hauptbenutzers, der vom Befehl list angezeigt wird.

  7. Schreiben Sie den Puffer für die Schlüsselliste mit dem Befehl write_kt in die Schlüsseltabelle.


    ktutil: write_kt Schlüsseltabelle
    
  8. Beenden Sie den Befehl ktutil.


    ktutil: quit
    
  9. Wenn Sie den Service wieder aktivieren möchten, kopieren Sie die temporäre (ursprüngliche) Schlüsseltabelle wieder an ihre ursprüngliche Position zurück.

Beispiel--Temporäres Deaktivieren der Authentisierung für einen Service auf einem Host

Bei dem folgenden Beispiel wird der host-Service auf dem Host hannover deaktiviert. Um den Host-Service wieder auf hannover zu aktivieren, würden Sie die Datei krb5.keytab.temp zur Datei /etc/krb5/krb5.keytab kopieren.


denver # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp
denver # /usr/krb5/bin/ktutil 
    ktutil:read_kt /etc/krb5/krb5.keytab 
    ktutil:list
slot KVNO Principal 
---- ---- --------------------------------------- 
   1    8 host/hannover@ACME.COM 
   2    5 host/hannover@ACME.COM 
    ktutil:delete_entry 2 
    ktutil:list
slot KVNO Principal 
---- ---- ---------------------------------------
   1    8 root/hannover@ACME.COM 
    ktutil:write_kt /etc/krb5/krb5.keytab 
    ktutil: quit