Sun Enterprise Authentication Mechanism Handbuch

Konfigurieren von KDC-Servern

Nach Installation der SEAM-Software müssen Sie die KDC-Server konfigurieren. Durch Konfiguration eines Master-KDCs und wenigstens eines Slave-KDCs wird der Service für die Ausgabe von Berechtigungsnachweisen bereitgestellt. Diese Berechtigungsnachweise sind die Grundlage von SEAM, daher müssen die KDCs installiert sein, bevor Sie an andere Aufgaben herangehen.

Der wichtigste Unterschied zwischen einem Master-KDC und einem Slave-KDC liegt darin, daß nur der Master Anforderungen der Datenbankverwaltung bearbeiten kann. So muß zum Beispiel das Ändern eines Paßworts oder Hinzufügen eines neuen Hauptbenutzers auf dem Master-KDC vorgenommen werden. Diese Änderungen können dann an die Slave-KDCs weitergeleitet werden. Slave-KDCs wie auch das Master-KDC generieren Berechtigungsnachweise; dadurch wird Redundanz hergestellt für den Fall, daß das Master-KDC nicht in der Lage ist zu reagieren.

So wird ein Master-KDC konfiguriert

Um ein umfassendes Beispiel zu geben, nehmen wir an, Sie haben die Vorkonfigurationsprozedur noch nicht ausgeführt. Wenn Sie die Vorkonfigurationsprozedur beim Installieren der Software jedoch angewendet haben, dann brauchen viele der in dieser Prozedur enthaltenen Dateien nicht bearbeitet werden; Sie sollten allerdings deren Inhalte überprüfen.

In diesem Verfahren werden die folgenden Konfigurationsparameter verwendet:

  1. Voraussetzungen für die Konfiguration eines Master-KDCs

    Dieses Verfahren verlangt, daß die Master-KDC-Software installiert ist. Außerdem muß DNS ausgeführt werden. Siehe "Austauschen von Master- und Slave-KDCs", wo besondere Anweisungen zur Namensgebung genannt werden, wenn dieser Master austauschfähig sein soll.

  2. Melden Sie sich als Superuser beim Master-KDC an.

  3. Bearbeiten Sie die Kerberos-Konfigurationsdatei (krb5.conf).

    Sie müssen die Bereichsnamen und die Namen der Server ändern. Eine vollständige Beschreibung dieser Datei erhalten Sie in der Online-Dokumentation zu krb5.conf(4). Wenn Sie die SEAM-Software mit diesen Konfigurationsdateien installieren sollten, überprüfen Sie deren Inhalt nur, anstatt ihn zu bearbeiten.


    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = ACME.COM
    
    [realms]
                    ACME.COM = {
                    kdc = kdc1.acme.com
                    kdc = kdc2.acme.com
                    admin_server = kdc1.acme.com
            }
    
    [domain_realm]
            .acme.com = ACME.COM
    #
    # Wenn Domainname und Bereichsname identisch sind,
    # wird dieser Eintrag nicht benötigt
    #
    [logging]
            default = FILE:/var/krb5/kdc.log
            kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
        gkadmin = {
            help_url = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
            }

    In diesem Beispiel wurden die Zeilen für default_realm, kdc, admin_server sowie alle domain_realm-Einträge geändert. Die Zeile für default_realm ist mit enthalten, um das Beispiel zu vervollständigen, jedoch wird dieser Eintrag vom Installationsprozeß nicht erstellt, wenn Bereichsname und Domain-Name identisch sind. Außerdem wurde die Zeile mit der Definition von help_url bearbeitet.

  4. Bearbeiten Sie die KDC-Konfigurationsdatei (kdc.conf).

    Sie müssen den Bereichsnamen ändern. Eine vollständige Beschreibung dieser Datei erhalten Sie in der Online-Dokumentation zu kdc.conf(4). Wenn Sie die SEAM-Software mit diesen Konfigurationsdateien installieren sollten, überprüfen Sie deren Inhalt nur, anstatt ihn zu bearbeiten.


    kdc1 # cat /etc/krb5/kdc.conf
    [kdcdefaults]
            kdc_ports = 88,750
    
    [realms]
            ACME.COM= {
                    profile = /etc/krb5/krb5.conf
                    database_name = /var/krb5/principal
                    admin_keytab = /var/krb5/kadm5.keytab
                    acl_file = /var/krb5/kadm5.acl
                    kadmind_port = 749
                    max_life = 8h 0m 0s
                    max_renewable_life = 7d 0h 0m 0s
            }

    In diesem Beispiel wurde die Definition des Bereichsnamens im Abschnitt realms geändert.

  5. Erstellen Sie die KDC-Datenbank mithilfe von kdb5_util.

    Der Befehl kdb5_util erstellt die KDC-Datenbank und, in Verbindung mit der Option -s, eine Vorsorgedatei, mit deren Hilfe das KDC selbst authentisiert wird, bevor die Daemons kadmind und krb5kdc gestartet werden.


    kdc1 # /usr/krb5/sbin/kdb5_util create -r ACME.COM -s
    Initialisieren der Datenbank '/var/krb5/principal' für Bereich 'ACME.COM'
    Master-Schlüsselname 'K/M@ACME.COM'
    Sie werden nach dem Master-Paßwort für die Datenbank gefragt.
    Es ist wichtig, daß Sie dieses Paßwort NICHT VERGESSEN.
    Geben Sie den Masterschlüssel für die KDC-Datenbank ein: <Eingabe des Schlüssels>
    	Geben Sie den Masterschlüssel für die KDC-Datenbank noch einmal ein: <Nochmalige Eingabe>
    

    Die -r mit nachfolgendem Bereichsnamen ist nicht erforderlich, wenn der Bereichsname mit dem Domain-Namen im Namensraum der Server identisch ist.

  6. Bearbeiten Sie die Kerberos-Zugriffssteuerungslistendatei (kadm5.acl).

    Nach der Bearbeitung sollte /etc/krb5/kadm5.acl alle Hauptbenutzernamen enthalten, denen die Verwaltung des KDCs erlaubt ist. Der erste hinzugefügte Eintrag könnte folgendermaßen aussehen:


    kws/admin@ACME.COM   *

    Dieser Eintrag gibt dem Hauptbenutzer kws/admin im Bereich ACME.COM die Möglichkeit, Hauptbenutzer oder Richtlinien im KDC zu ändern. Die Standardinstallation enthält ein "*", womit alle admin -Hauptbenutzer eingeschlossen sind. Da dies ein Sicherheitsrisiko darstellen könnte, ist es sicherer, eine Liste aller admin-Hauptbenutzer einzugeben.

  7. Start kadmin.local.

    In den nächsten Teilschritten werden die von SEAM verwendeten Hauptbenutzer erstellt.


    kdc1 # /usr/krb5/sbin/kadmin.local
    kadmin.local: 
    1. Fügen Sie administrative Hauptbenutzer mithilfe des Befehls kadmin.local zur Datenbank hinzu.

      Sie können soviele admin-Hauptbenutzer hinzufügen, wie Sie benötigen. Sie müssen wenigstens einen admin-Hauptbenutzer hinzufügen, um den KDC-Konfigurationsprozeß abzuschließen. In diesem Beispiel wird der Hauptbenutzer kws/admin hinzugefügt. Sie können einen geeigneten Hauptbenutzernamen anstelle von "kws " einsetzen.


      kadmin.local: addprinc kws/admin
      Geben Sie das Paßwort für Hauptbenutzer kws/admin@ACME.COM ein: <Eingabe des Paßworts>
      Geben Sie das Paßwort für Hauptbenutzer kws/admin@ACME.COM erneut ein: <Nochmalige Eingabe>
      Hauptbenutzer "kws/admin@ACME.COM" erstellt.
      kadmin.local: 
    2. Erstellen Sie eine Schlüsseltabellendatei für kadmin mithilfe von kadmin.local .

      Diese Befehlsfolge erstellt eine spezielle Schlüsseltabellendatei mit Hauptbenutzereinträgen für kadmin und changepw . Diese Hauptbenutzer werden für den kadmind-Service benötigt.


      kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.acme.com
      Eintrag für Hauptbenutzer kadmin/kdc1.acme.com mit kvno 3, Verschlüsselungstyp DES-CBC-CRC
                zur Schlüsseltabellendatei WRFILE:/etc/krb5/kadm5.keytab hinzugefügt.
      kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.acme.com
      Eintrag für Hauptbenutzer changepw/kdc1.acme.com mit kvno 3, Verschlüsselungstyp DES-CBC-CRC
                zur Schlüsseltabellendatei WRFILE:/etc/krb5/kadm5.keytab hinzugefügt.
      kadmin.local: 
    3. Quit kadmin.local

      Sie haben alle für die nächsten Schritte erforderlichen Hauptbenutzer hinzugefügt.


      kadmin.local: quit
      
  8. Starten Sie die Kerberos-Daemons.


    kdc1 # /etc/init.d/kdc start
    kdc1 # /etc/init.d/kdc.master start
    
  9. Starten Sie kadmin.

    An dieser Stelle können Sie Hauptbenutzer mithilfe des SEAM-Verwaltungstools hinzufügen. Das Befehlszeilen-Beispiel wird der Einfachheit halber gezeigt. Sie müssen sich mit einem der admin-Hauptbenutzernamen anmelden, die Sie vorher in diesem Verfahren erstellt haben.


    kdc1 # /usr/krb5/sbin/kadmin -p kws/admin
    Paßwort eingeben: <Eingabe des Paßworts für kws/admin>
    kadmin: 
    1. Erstellen Sie mithilfe von kadmin den Host-Hauptbenutzer für das Master-KDC.

      Der Host-Hauptbenutzer wird von mit Kerberos ausgestatteten Anwendungen (wie klist und kprop ) wie auch Services (wie ftp und telnet) verwendet.


      kadmin: addprinc -randkey host/kdc1.acme.com
      Hauptbenutzer "host/kdc1.acme.com@ACME.COM" erstellt.
      kadmin: 
    2. Optional: Erstellen Sie den Root-Hauptbenutzer für das Master-KDC mit kadmin.

      Dieser Hauptbenutzer wird für das authentisierte NFS-Einhängen verwendet und ist daher wahrscheinlich auf einem Master-KDC nicht erforderlich.


      kadmin: addprinc root/kdc1.acme.com
      Geben Sie das Paßwort für Hauptbenutzer  root/kdc1.acme.com@ACME.COM ein: <Eingabe des Paßworts>
      Geben Sie das Paßwort für Hauptbenutzer root/kdc1.acme.com@ACME.COM erneut ein: <Nochmalige Eingabe>
      Hauptbenutzer "root/kdc1.acme.com@ACME.COM" erstellt.
      kadmin: 
    3. Fügen Sie den Host-Hauptbenutzer für das Master-KDC zu dessen Schlüsseltabellendatei hinzu.

      Durch Hinzufügen des Host-Hauptbenutzers zur Schlüsseltabellendatei kann dieser Hauptbenutzer automatisch verwendet werden.


      kadmin: ktadd host/kdc1.acme.com
      kadmin: Eintrag für host/kdc1.acme.com mit
        kvno 3, Verschlüsselungstyp DES-CBC-CRC zur Schlüsseltabelle hinzugefügt
        WRFILE:/etc/krb5/krb5.keytab
      kadmin: quit
      
    4. Beenden Sie kadmin


      kadmin: quit
      
  10. Fügen Sie für jedes KDC einen Eintrag in der Vervielfältigungskonfigurationsdatei (kpropd.acl) ein.

    Eine vollständige Beschreibung dieser Datei erhalten Sie in der Online-Dokumentation zu kprop(1M). Wenn Sie die SEAM-Software mit diesen Konfigurationsdateien installieren sollten, überprüfen Sie deren Inhalt nur, anstatt ihn zu bearbeiten.


    kdc1 # cat /etc/krb5/kpropd.acl
    host/kdc1.acme.com@ACME.COM
    host/kdc2.acme.com@ACME.COM
  11. Optional: Synchronisieren Sie die Systemuhr des Master-KDCs mit NTP oder einem anderen Mechanismus für die Synchronisation der Uhrzeit.

    Es nicht erforderlich, NTP zu installieren und zu verwenden, aber jede Systemuhr muß auf einen Standard-Zeitbereich eingestellt sein, der im Abschnitt libdefaults der Datei krb5.conf definiert ist, damit eine Authentisierung erfolgreich ist. Siehe "Synchronisieren der Uhren zwischen KDCs und SEAM-Clients", um weitere Informationen über NTP zu erhalten.

So wird ein Slave-KDC konfiguriert

In diesem Verfahren wird ein neues Slave-KDC mit dem Namen kdc3 konfiguriert. Um ein vollständiges Beispiel zu bieten, wird angenommen, daß Sie beim Installieren der Software entweder nicht die Vorkonfigurationsprozedur verwendet oder bei Ausführung der Vorkonfigurationsprozedur kdc3 nicht als Slave definiert haben. Wenn Sie die Vorkonfigurationsprozedur jedoch verwendet und kdc3 als Slave definiert haben, dann brauchen viele der in dieser Prozedur enthaltenen Dateien nicht bearbeitet werden; Sie sollten allerdings deren Inhalte überprüfen.

Diese Prozedur verwendet die folgenden Konfigurationsparameter:

  1. Voraussetzungen für die Konfiguration eines Slave-KDCs.

    Dieses Verfahren verlangt, daß das Master-KDC konfiguriert und die SEAM-Software für Slave-KDCs auf kdc3 installiert worden ist. Siehe "Austauschen von Master- und Slave-KDCs" , wo besondere Anweisungen genannt werden, wenn dieser Master austauschfähig sein soll.

  2. Melden Sie sich auf dem Master-KDC als Superuser an.

  3. Starten Sie auf dem Master-KDC kadmin.

    Sie müssen sich mit einem der admin-Hauptbenutzernamen anmelden, die Sie beim Konfigurieren des Master-KDCs erstellt haben.


    kdc1 # /usr/krb5/sbin/kadmin -p kws/admin
    Paßwort eingeben: <Eingabe des Paßworts für kws/admin>
    kadmin: 
    1. Fügen Sie auf dem Master-KDC Slave-Host-Hauptbenutzer mithilfe von kadmin zur Datenbank hinzu, sofern nicht bereits geschehen.

      Damit der Slave funktioniert, muß er einen Host-Hauptbenutzer haben.


      kadmin: addprinc -randkey host/kdc3.acme.com
      Hauptbenutzer "host/kdc3.acme.com@ACME.COM" erstellt.
      kadmin: 
    2. Optional: Erstellen Sie mithilfe von kadmin auf dem Master-KDC den Hauptbenutzer root für das Slave-KDC.

      Dieser Hauptbenutzer wird nur benötigt, wenn der Slave einen NFS-Mount eines authentisierten Dateisystems vornehmen wird.


      kadmin: addprinc root/kdc3.acme.com
      Geben Sie das Paßwort für Hauptbenutzer root/kdc3.acme.com@ACME.COM ein: <Eingabe des Paßworts>
      Geben Sie das Paßwort für Hauptbenutzer root/kdc3.acme.com@ACME.COM erneut ein: <Nochmalige Eingabe>
      Hauptbenutzer "root/kdc3.acme.com@ACME.COM" erstellt.
      kadmin: 
    3. Beenden Sie kadmin


      kadmin: quit
      
  4. Bearbeiten Sie auf dem Master-KDC die Kerberos-Konfigurationsdatei (krb5.conf).

    Sie müssen für jeden Slave einen Eintrag hinzufügen. Eine vollständige Beschreibung dieser Datei erhalten Sie in der Online-Dokumentation zu krb5.conf(4) . Wenn Sie beim Ausführen der Vorkonfigurationsprozedur kdc3 als einen Slave-Server definiert haben, dann überprüfen Sie den Inhalt der Datei nur, anstatt ihn zu bearbeiten.


    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = ACME.COM
    
    [realms]
                    ACME.COM = {
                    kdc = kdc1.acme.com
                    kdc = kdc2.acme.com
                    kdc = kdc3.acme.com
                    admin_server = kdc1.acme.com
            }
    
    [domain_realm]
            .acme.com = ACME.COM
    #
    # Wenn Domainname und Bereichsname identisch sind,
    # wird dieser Eintrag nicht benötigt
    #        
    [logging]
            default = FILE:/var/krb5/kdc.log
            kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
        gkadmin = {
            help_url = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
    
  5. Fügen Sie auf dem Master-KDC für jedes Slave-KDC einen Eintrag in der Vervielfältigungskonfigurationsdatei der Datenbank (kpropd.acl) ein.

    Eine vollständige Beschreibung dieser Datei erhalten Sie in der Online-Dokumentation zu kprop(1M). Wenn Sie beim Ausführen der Vorkonfigurationsprozedur kdc3 als einen Slave-Server definiert haben, dann überprüfen Sie den Inhalt der Datei nur, anstatt ihn zu bearbeiten.


    kdc1 # cat /etc/krb5/kpropd.acl
    host/kdc1.acme.com@ACME.COM
    host/kdc2.acme.com@ACME.COM
    host/kdc3.acme.com@ACME.COM
    
  6. Kopieren Sie auf allen Slaves die KDC-Verwaltungsdateien vom Master-KDC-Server.

    Dieser Schritt muß auf allen Slave-KDCs durchgeführt werden, da der Master-KDC-Server die aktualisierten Informationen enthält, die jeder andere KDC-Server benötigt. Wenn Sie beim Ausführen der Vorkonfigurationsprozedur kdc3 als einen Slave-Server definiert haben, dann überprüfen Sie den Inhalt der Datei nur, anstatt ihn zu bearbeiten. Sie können mit ftp oder einem ähnlichen Übertragungsmechanismus Kopien der folgenden Dateien vom Master entnehmen:

    • /etc/krb5/krb5.conf

    • /etc/krb5/kdc.conf

    • /etc/krb5/kpropd.acl

  7. Fügen Sie auf dem neuen Slave dessen Host-Hauptbenutzer zur Schlüsseltabellendatei des Slave mithilfe des Programms kadmin hinzu.

    Sie müssen sich mit einem der admin-Hauptbenutzernamen anmelden, die Sie beim Konfigurieren des Master-KDCs erstellt haben. Durch diesen Eintrag können kprop und andere mit Kerberos ausgestattete Anwendungen korrekt ausgeführt werden.


    kdc3 # /usr/krb5/sbin/kadmin -p kws/admin
    Paßwort eingeben: <Eingabe des Paßworts für kws/admin>
    kadmin: ktadd host/kdc3.acme.com
    kadmin: Eintrag für host/kdc3.acme.com mit
      kvno 3, Verschlüsselungstyp DES-CBC-CRC zur Schlüsseltabelle hinzugefügt
      WRFILE:/etc/krb5/krb5.keytab
    kadmin: quit
    
  8. Fügen Sie auf dem Master-KDC die Slave-KDC-Namen zum Job cron, mit dem automatisch die Sicherungen durchgeführt werden, durch Aufruf von crontab -e hinzu.

    Fügen Sie den Namen jedes Slave-KDC-Servers am Ende der Zeile kprop_script hinzu. Wenn Sie beim Ausführen der Vorkonfigurationsprozedur kdc3 als einen Slave-Server definiert haben, dann überprüfen Sie den Inhalt der Datei nur, anstatt ihn zu bearbeiten.


    10 3 * * * /usr/krb5/lib/kprop_script kdc2.acme.com kdc3.acme.com
    

    Sie möchten vielleicht auch den Zeitpunkt für die Sicherungen ändern. Diese Konfiguration startet den Sicherungsprozeß jede Nacht um 3:10 Uhr.

  9. Fügen Sie auf dem Master-KDC eine Sicherung und Vervielfältigung der Datenbank mithilfe von kprop_script durch.

    Wenn bereits eine Sicherungskopie der Datenbank zur Verfügung steht, ist es nicht nötig, eine andere Sicherung durchzuführen. Siehe "So wird die Kerberos-Datenbank manuell auf Slave-KDCs vervielfältigt", um weitere Anweisungen zu erhalten.


    kdc1 # /usr/krb5/lib/kprop_script kdc3.acme.com
    Datenbankvervielfältigung auf kdc3.acme.com: ERFOLGREICH
  10. Erstellen Sie auf dem neuen Slave mithilfe von kdb5_util eine Vorsorgedatei.


    kdc3 # /usr/krb5/sbin/kdb5_util stash
    kdb5_util: Kann gespeicherten Masterschlüssel nicht finden/lesen, 
      während Masterschlüssel gelesen wird:
    kdb5_util: Warnung: es wird ohne Masterschlüssel fortgefahren
    
    Geben Sie den Masterschlüssel für die KDC-Datenbank ein: <Eingabe des Schlüssels>
    
  11. Starten Sie auf dem neuen Slave den KDC-Daemon (krb5kdc).


    kdc3 # /etc/init.d/kdc start
    
  12. Optional: Synchronisieren Sie auf dem neuen Slave die Systemuhr des Master-KDCs mit NTP oder einem anderen Mechanismus für die Synchronisation der Uhrzeit.

    Es nicht erforderlich, NTP zu installieren und zu verwenden, aber jede Systemuhr muß auf einen Standard-Zeitbereich eingestellt sein, der im Abschnitt libdefaults der Datei krb5.conf definiert ist, damit eine Authentisierung erfolgreich ist. Siehe "Synchronisieren der Uhren zwischen KDCs und SEAM-Clients", um weitere Informationen über NTP zu erhalten.