Dieses Kapitel stellt Konfigurationsverfahren für KDC-Server, Netzwerk-Anwendungsserver, NFS-Server und SEAM-Clients zur Verfügung. Viele dieser Verfahren erfordern den Root-Zugriff, weswegen sie nur von Systemverwaltern oder erfahrenen Benutzern verwendet werden sollten. Außerdem werden Verfahren zur bereichsübergreifenden Konfiguration und andere Themen in Zusammenhang mit KDC-Servern behandelt.
Manche Abschnitte des Konfigurationsprozesses hängen von anderen Abschnitten ab und müssen daher in einer bestimmten Reihenfolge durchgeführt werden. Diese Verfahren richten oft Services ein, die für die Verwendung von SEAM benötigt werden. Andere Verfahren hängen nicht von anderen ab und können daher je nach Erfordernis ausgeführt werden. Die Tabelle zeigt eine vorgeschlagene Reihenfolge einer SEAM-Installation.
Tabelle 3-1 Erste Schritte: Reíhenfolge der SEAM-Konfiguration
Aufgabe |
Beschreibung |
Anweisungen finden Sie unter ... |
---|---|---|
1. Planen Sie Ihre SEAM-Installation | Überlegen Sie die Fragen der Konfiguration und treffen Sie entsprechende Entscheidungen, bevor Sie den Software-Installationsprozeß beginnen. | Kapitel 2 |
2. (Optional) Installieren Sie NTP | Damit SEAM einwandfrei funktioniert, müssen die Uhren auf allen Systemen innerhalb des Bereichs synchronisiert werden. | "Synchronisieren der Uhren zwischen KDCs und SEAM-Clients" |
3. (Optional) Führen Sie die Vorkonfigurations-prozedur für SEAM aus | Um die Installation einer Site mit vielen Hosts einfacher zu gestalten, kann diese Prozedur ausgeführt werden, womit ein großer Teil der Installationsinformationen auf einem NFS-Server gespeichert wird. Diese Informationen können dann während der Installation benutzt werden. | Hinweise zur Installation und Version von SEAM |
4. Konfigurieren Sie den Master-KDC-Server | Schritte zum Konfigurieren und Erstellen des Master-KDC-Servers und der KDC-Datenbank für einen Bereich. | "So wird ein Master-KDC konfiguriert" |
5. (Optional) Konfigurieren Sie einen Slave-KDC-Server | Schritte zum Konfigurieren und Erstellen eines Slave-KDC-Servers für einen Bereich. | "So wird ein Slave-KDC konfiguriert" |
6. (Optional) Erhöhen Sie die Sicherheit auf den KDC-Servern | Schritte zur Vermeidung von Sicherheitsverletzungen auf KDC-Servern. | "So schränken Sie den Zugriff für KDC-Server ein " |
7. (Optional) Konfigurieren Sie austauschbare KDC-Server | Befolgen Sie die Schritte dieses Verfahrens, um das Austauschen von Master- und Slave-KDCs einfacher zu gestalten. | "So wird ein austauschbares Slave-KDC konfiguriert " |
Wenn die erforderlichen Schritte durchgeführt worden sind, können die folgenden Verfahren je nach Bedarf angewendet werden.
Tabelle 3-2 Nächste Schritte: Zusätzliche SEAM-Aufgaben
Aufgabe |
Beschreibung |
Anweisungen finden Sie unter ... |
---|---|---|
Konfigurieren Sie die bereichsübergreifende Authentisierung | Schritte zum Aktivieren der Kommunikation von einem Bereich zum anderen. | "Konfigurieren der bereichsübergreifenden Authentisierung" |
Konfigurieren Sie SEAM-Anwendungsserver | Schritte zum Aktivieren eines Servers für die Unterstützung von Services wie ftp , telnet und rsh mit Kerberos-Authentisierung. | "Konfigurieren der SEAM Netzwerk-Anwendungsserver" |
Konfigurieren von SEAM-Clients | Schritte zum Aktivieren eines Clients für die Verwendung von SEAM-Services. | "Konfigurieren von SEAM-Clients" |
Konfigurieren Sie den SEAM NFS-Server | Schritte zum Aktivieren eines Servers für die Freigabe eines Dateisystems, das Kerberos-Authentisierung erfordert. | "Konfigurieren von SEAM NFS-Servern" |
Erhöhen Sie die Sicherheit auf einem Anwendungsserver | Schritte zur Erhöhung der Sicherheit auf einem Anwendungsserver, indem der Zugriff auf authentisierte Transaktionen eingeschränkt wird. | "So aktivieren Sie nur die mit Kerberos ausgestatteten Anwendungen " |
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.
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:
Bereichsname = ACME.COM
DNS-Domainname = acme.com
Master-KDC = kdc1.acme.com
Slave-KDC = kdc2.acme.com
Admin-Hauptbenutzer = kws/admin
Online-Hilfe-URL = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Passen Sie den URL so an, daß er auf den Abschnitt "SEAM Verwaltungstool" zeigt, wie in den Hinweisen zur Installation und Version von SEAM beschrieben.
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.
Melden Sie sich als Superuser beim Master-KDC an.
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.
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.
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.
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.
Start kadmin.local.
In den nächsten Teilschritten werden die von SEAM verwendeten Hauptbenutzer erstellt.
kdc1 # /usr/krb5/sbin/kadmin.local kadmin.local: |
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: |
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: |
Quit kadmin.local
Sie haben alle für die nächsten Schritte erforderlichen Hauptbenutzer hinzugefügt.
kadmin.local: quit |
Starten Sie die Kerberos-Daemons.
kdc1 # /etc/init.d/kdc start kdc1 # /etc/init.d/kdc.master start |
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: |
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: |
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: |
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 |
Beenden Sie kadmin
kadmin: quit |
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 |
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.
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:
Bereichsname = ACME.COM
DNS-Domainname = acme.com
Master-KDC = kdc1.acme.com
slave kdc = kdc2.acme.com und kdc3.acme.com
Admin-Hauptbenutzer = kws/admin
Online-Hilfe-URL = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Passen Sie den URL so an, daß er auf den Abschnitt "SEAM Verwaltungstool" zeigt, wie in den Hinweisen zur Installation und Version von SEAM beschrieben.
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.
Melden Sie sich auf dem Master-KDC als Superuser an.
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: |
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: |
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: |
Beenden Sie kadmin
kadmin: quit |
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 |
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 |
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
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 |
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.
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 |
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> |
Starten Sie auf dem neuen Slave den KDC-Daemon (krb5kdc).
kdc3 # /etc/init.d/kdc start |
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.
Sie haben mehrere Möglichkeiten, Bereiche miteinander zu verknüpfen, damit Benutzer aus einem Bereich in einem anderen Bereich authentisiert werden können. Normalerweise wird dies durch die Einrichtung eines Geheimschlüssels erreicht, der zwischen beiden Bereichen ausgetauscht wird. Die Beziehung zwischen Bereichen kann hierarchisch oder gerichtet sein (siehe "Bereichshierarchie").
Für dieses Beispiel verwenden wir zwei Bereiche, ENG.EAST.ACME.COM und EAST.ACME.COM. Die bereichsübergreifende Authentisierung wird in beide Richtungen eingerichtet. Dieses Verfahren muß in beiden Bereichen jeweils auf dem Master-KDC durchgeführt werden.
Voraussetzung zur Einrichtung der hierarchischen bereichsübergreifenden Authentifizierung
Dieses Verfahren verlangt, daß das Master-KDC für jeden Bereich installiert ist. Um den Prozeß vollständig testen zu können, müssen verschiedene Clients oder Slave-KDCs installiert sein.
Melden Sie sich auf dem ersten Master-KDC als root an.
Erstellen Sie mit kadmin Hauptbenutzer für den Ticket-Granting-Ticket-Service in beiden Bereichen.
Sie müssen sich mit einem der admin-Hauptbenutzernamen anmelden, die Sie beim Konfigurieren des Master-KDCs erstellt haben.
# /usr/krb5/sbin/kadmin -p kws/admin Paßwort eingeben: <Eingabe des Paßworts für kws/admin> kadmin: addprinc krbtgt/ENG.EAST.ACME.COM@EAST.ACME.COM Geben Sie das Paßwort für Hauptbenutzer krgtgt/ENG.EAST.ACME.COM@EAST.ACME.COM ein: <Eingabe des Paßworts> kadmin: addprinc krbtgt/EAST.ACME.COM@ENG.EAST.ACME.COM Geben Sie das Paßwort für Hauptbenutzer krgtgt/EAST.ACME.COM@EAST.ACME.COM ein: <Eingabe des Paßworts> kadmin: quit |
Das für jeden Service-Hauptbenutzer eingegebene Paßwort muß in beiden KDCs identisch sein; das bedeutet, das Paßwort für krbtgt/ENG.EAST.ACME.COM@EAST.ACME.COM muß in beiden Bereichen dasselbe sein.
Fügen Sie Einträge zur Kerberos-Konfigurationsdatei hinzu, mit denen Sie Domain-Namen für jeden Bereich definieren (krb5.conf).
# cat /etc/krb5/krb5.conf [libdefaults] . . [domain_realm] .eng.east.acme.com = ENG.EAST.ACME.COM .east.acme.com = EAST.ACME.COM |
In diesem Beispiel werden die Domain-Namen für die Bereiche ENG.EAST.ACME.COM und EAST.ACME.COM definiert. Es ist wichtig, die Subdomain zuerst einzugeben, da die Datei von oben nach unten durchsucht wird.
Kopieren Sie die Kerberos-Konfigurationsdatei auf allen Clients eines Bereichs.
Damit die bereichsübergreifende Authentifizierung funktioniert, müssen alle Systeme (einschließlich KDCs und andere Server) die neue Version der Kerberos-Konfigurationsdatei (/etc/krb5/krb5.conf) installiert haben.
Wiederholen Sie diese Schritte im zweiten Bereich.
In diesem Beispiel werden zwei Bereiche verwendet: ENG.EAST.ACME.COM und SALES.WEST.ACME.COM. Bereichsübergreifende Authentifizierung wird in beide Richtungen eingerichtet. Dieses Verfahren muß in beiden Bereichen jeweils auf dem Master-KDC durchgeführt werden.
Voraussetzung zur Einrichtung der direkten bereichsübergreifenden Authentifizierung.
Dieses Verfahren verlangt, daß das Master-KDC für jeden Bereich installiert ist. Um den Prozeß vollständig testen zu können, müssen verschiedene Clients oder Slave-KDCs installiert sein.
Melden Sie sich als Superuser bei einem der Master-KDC-Server an.
Erstellen Sie mit kadmin Hauptbenutzer für den Ticket-Granting-Ticket-Service in beiden Bereichen.
Sie müssen sich mit einem der admin-Hauptbenutzernamen anmelden, die Sie beim Konfigurieren des Master-KDCs erstellt haben.
# /usr/krb5/sbin/kadmin -p kws/admin Paßwort eingeben: <Eingabe des Paßworts für kws/admin> kadmin: addprinc krbtgt/ENG.EAST.ACME.COM@SALES.WEST.ACME.COM Geben Sie das Paßwort für Hauptbenutzer krgtgt/ENG.EAST.ACME.COM@SALES.WEST.ACME.COM ein: <Eingabe des Paßworts> kadmin: addprinc krbtgt/SALES.WEST.ACME.COM@ENG.EAST.ACME.COM Geben Sie das Paßwort für Hauptbenutzer krgtgt/SALES.WEST.ACME.COM@ENG.EAST.ACME.COM ein: <Eingabe des Paßworts> kadmin: quit |
Das für jeden Service-Hauptbenutzer eingegebene Paßwort muß in beiden KDCs identisch sein; das bedeutet, das Paßwort für krbtgt/ENG.EAST.ACME.COM@EAST.ACME.COM muß in beiden Bereichen dasselbe sein.
Fügen Sie Einträge zur Kerberos-Konfigurationsdatei hinzu, mit denen Sie den direkten Pfad zum entfernten Bereich definieren (kdc.conf).
Dieses Beispiel steht für die Clients im Bereich ENG.EAST.ACME.COM . Sie würden die Bereichsnamen austauschen, um die entsprechende Definition im Bereich SALES.WEST.ACME.COM zu erhalten.
# cat /etc/krb5/krb5.conf [libdefaults] . . [capaths] ENG.EAST.ACME.COM = { SALES.WEST.ACME.COM = . } SALES.WEST.ACME.COM = { ENG.EAST.ACME.COM = . } |
Kopieren Sie die Kerberos-Konfigurationsdatei auf allen Clients des jeweiligen Bereichs.
Damit die bereichsübergreifende Authentifizierung funktioniert, müssen alle Systeme (einschließlich Slave-KDCs und andere Server) die neue Version der Kerberos-Konfigurationsdatei (krb5.conf) installiert haben.
Wiederholen Sie diese Schritte für den zweiten Bereich.
Netzwerk-Anwendungsserver sind Hosts, die Zugang über eine der folgenden Netzwerkanwendungen gewähren: ftp, rcp, rlogin, rsh und telnet. Es sind nur wenige Schritte erforderlich, um die SEAM-Versionen dieser Befehle auf einem Server zu aktivieren.
Dieses Verfahren verwendet die folgenden Konfigurationsparameter:
Anwendungsserver = boston
Admin-Hauptbenutzer = kws/admin
DNS-Domainname = acme.com
Bereichsname = ACME.COM
Voraussetzungen zur Konfiguration eines Anwendungsservers.
Dieses Verfahren verlangt, daß der Master-KDC konfiguriert ist. Um den Prozeß vollständig testen zu können, müssen verschiedene Clients installiert sein.
Installieren Sie die SEAM Client-Software.
Die SEAM Client-Software muß installiert sein.
Optional: Installieren Sie den NTP-Client oder einen anderen Mechanismus für die Synchronisation der Uhrzeit.
Siehe "Synchronisieren der Uhren zwischen KDCs und SEAM-Clients", um weitere Informationen über NTP zu erhalten.
Starten Sie kadmin.
Die Verwendung des SEAM-Verwaltungstools zum Hinzufügen eines Hauptbenutzers wird in "Erstellen eines neuen Hauptbenutzers" erklärt "Erstellen eines neuen Hauptbenutzers". Das Beispiel weiter unten zeigt, wie die erforderlichen Hauptbenutzer über die Befehlszeile hinzugefügt werden. 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: |
Erstellen Sie den Host-Hauptbenutzer des Servers.
kadmin: addprinc -randkey host/boston.acme.com Hauptbenutzer "host/boston.acme.com" erstellt. kadmin: |
Optional: Erstellen Sie einen Root-Hauptbenutzer als Host-Hauptbenutzer.
kadmin: addprinc root/boston.acme.com Geben Sie das Paßwort für Hauptbenutzer root/boston.acme.com@ACME.COM ein: <Eingabe des Paßworts> Geben Sie das Paßwort für Hauptbenutzer root/boston.acme.com@ACME.COM erneut ein: <Nochmalige Eingabe> Hauptbenutzer "root/boston.acme.com@ACME.COM" erstellt. kadmin: |
Fügen Sie den Host-Hauptbenutzer zur Schlüsseltabelle des Servers hinzu.
Wenn das Programm kadmin nicht bereits ausgeführt wird, starten Sie es noch einmal mit einem Befehl wie: /usr/krb5/bin/kadmin -p kws/admin
kadmin: ktadd host/boston.acme.com kadmin: Eintrag für host/boston.acme.com mit kvno 3, Verschlüsselungstyp DES-CBC-CRC zur Schlüsseltabelle hinzugefügt WRFILE:/etc/krb5/krb5.keytab kadmin: quit |
Beenden Sie kadmin
kadmin: quit |
NFS services use UNIX UIDs to identify a user and cannot directly use principals. Um den Hauptbenutzer in eine UID zu übersetzen, muß eine Berechtigungsnachweistabelle erstellt werden, in der eine Zuordnung von Hauptbenutzern und UNIX-UIDs vorgenommen wird. Die weiter unten dargestellten Verfahren richten sich auf die Aufgaben, die erforderlich sind, um einen SEAM NFS-Server zu konfigurieren, die Berechtigungsnachweistabelle zu verwalten und Kerberos-Sicherheitsmodi für über NFS eingehängte Dateisysteme einzuleiten. Die folgende Tabelle beschreibt die in diesem Abschnitt behandelten Aufgaben.
Tabelle 3-3 Aufgabenübersicht für das Konfigurieren eines SEAM NFS-Servers
Aufgabe |
Beschreibung |
Anweisungen finden Sie unter ... |
---|---|---|
Konfigurieren eines SEAM NFS-Servers | Schritte zum Aktivieren eines Servers für die Freigabe eines Dateisystems, das Kerberos-Authentisierung erfordert. | "So werden SEAM NFS-Server konfiguriert" |
Ändern des serverseitigen Mechanismus für die Berechtigungsnachweis-tabelle | Schritte zur Definition des serverseitigen Mechanismus, der vom Befehl gsscred verwendet wird. | "So ändern Sie den serverseitigen Mechanismus für die gsscred-Tabelle" |
Erstellen einer Berechtigungsnachweis-tabelle | Schritte zum Generieren einer Berechtigungsnachweistabelle. | "So erstellen Sie eine Berechtigungsnachweistabelle" |
Ändern der Berechtigungsnachweis-tabelle, in der Benutzer-Hauptbenutzer und UNIX UIDs einander zugeordnet werden. | Schritte zum Aktualisieren von Informationen in der Berechtigungsnachweistabelle. | "So fügen Sie einen einzelnen Eintrag zur Berechtigungsnachweistabelle hinzu" |
Freigeben eines Dateisystems mit Kerberos-Authentisierung | Schritte zur Freigabe eines Dateisystems mit Sicherheitsmodi, die eine Kerberos-Authentisierung erforderlich machen. | "So richten Sie eine sichere NFS-Umgebung mit mehreren Kerberos-Sicherheitsmodi ein" |
Dieses Verfahren verlangt, daß der Master-KDC konfiguriert ist. Um den Prozeß vollständig testen zu können, benötigen Sie mehrere Clients. Es werden die folgenden Konfigurationsparameter verwendet:
Bereichsname = ACME.COM
DNS-Domainname = acme.com
NFS server = denver.acme.com
Admin-Hauptbenutzer = kws/admin
Voraussetzungen für die Konfiguration eines SEAM NFS-Servers
Die SEAM Client-Software muß installiert sein.
Optional: Installieren Sie den NTP-Client oder einen anderen Mechanismus für die Synchronisation der Uhrzeit.
Siehe "Synchronisieren der Uhren zwischen KDCs und SEAM-Clients", um weitere Informationen über NTP zu erhalten.
Starten Sie kadmin.
Die Verwendung des SEAM-Verwaltungstools zum Hinzufügen eines Hauptbenutzers wird in "Erstellen eines neuen Hauptbenutzers" erklärt "Erstellen eines neuen Hauptbenutzers". Das Beispiel weiter unten zeigt, wie die erforderlichen Hauptbenutzer über die Befehlszeile hinzugefügt werden. Sie müssen sich mit einem der admin-Hauptbenutzernamen anmelden, die Sie beim Konfigurieren des Master-KDCs erstellt haben.
denver # /usr/krb5/sbin/kadmin -p kws/admin Paßwort eingeben: <Eingabe des Paßworts für kws/admin> kadmin: |
Erstellen Sie den Hauptbenutzer für den NFS-Service des Servers.
kadmin: addprinc -randkey nfs/denver.acme.com Hauptbenutzer "nfs/denver.acme.com" erstellt. kadmin: |
Optional: Erstellen Sie einen Root-Hauptbenutzer für den NFS-Server.
kadmin: addprinc root/denver.acme.com Geben Sie das Paßwort für Hauptbenutzer root/denver.acme.com@ACME.COM ein: <Eingabe des Paßworts> Geben Sie das Paßwort für Hauptbenutzer root/denver.acme.com@ACME.COM erneut ein: <Nochmalige Eingabe> Hauptbenutzer "root/denver.acme.com@ACME.COM" erstellt. kadmin: |
Fügen Sie den Hauptbenutzer des NFS-Service des Servers zur Schlüsseltabelle des Servers hinzu.
kadmin: ktadd nfs/denver.acme.com kadmin: Eintrag für nfs/denver.acme.com mit kvno 3, Verschlüsselungstyp DES-CBC-CRC zur Schlüsseltabelle hinzugefügt WRFILE:/etc/krb5/krb5.keytab kadmin: quit |
Beenden Sie kadmin
kadmin: quit |
Erstellen Sie die Tabelle gsscred.
Weitere Informationen finden Sie unter "So erstellen Sie eine Berechtigungsnachweistabelle".
Geben Sie das NFS-Dateisystem in Verbindung mit Kerberos-Sicherheitsmodi frei.
Weitere Informationen finden Sie unter "So richten Sie eine sichere NFS-Umgebung mit mehreren Kerberos-Sicherheitsmodi ein".
Authentisieren Sie auf jedem Client Benutzer- und Root-Hauptbenutzer.
Weitere Informationen finden Sie unter "Einrichten der Root-Authentisierung für das Einhängen von NFS-Dateisystemen".
Melden Sie sich auf dem NFS-Server als Superuser an.
Bearbeiten Sie /etc/gss/gsscred.conf und ändern Sie den Mechanismus.
Einer der folgenden serverseitigen Mechanismen kann verwendet werden: files, xfn_files, xfn_nis, xfn_nisplus oder xfn. Die Vorteile jedes einzelnen dieser Mechanismen wird in "Verwenden der Tabelle für gsscred" behandelt.
Die gsscred-Berechtigungstabelle wird von einem NFS-Server dazu verwendet, um SEAM-Hauptbenutzer und UIDs einander zuzuordnen. Damit ein NFS-Client ein Dateisystem mit Kerberos-Authentisierung von einem NFS-Server an anderer Stelle einhängen kann, muß diese Tabelle erstellt oder verfügbar gemacht werden.
Melden Sie sich auf dem entsprechenden Server als Superuser an.
Von welchem Server aus und unter welcher ID Sie diesen Befehl ausführen, hängt vom serverseitigen Mechanismus ab, der zur Unterstützung der gsscred-Tabelle ausgewählt wurde. Für alle Mechanismen mit Ausnahme von xfn_nisplus müssen Sie sich als root anmelden.
Ist der serverseitige Mechanismus ... |
dann ... |
---|---|
files |
Auf NFS-Server ausführen |
xfn |
Host aufgrund der xfn-Dateieinstellung auswählen |
xfn_files |
Auf NFS-Server ausführen |
xfn_nis |
Auf NIS-Master ausführen |
xfn_nisplus |
An beliebiger Stelle ausführen, solange die Berechtigungen, NIS+-Daten zu ändern, vorhanden sind. |
Optional: Wenn /var/fn nicht existiert, und Sie eine der xfn-Optionen verwenden möchten, initialisieren Sie eine XFN-Datenbank.
# fnselect files # fncreate -t org -o org// |
Erstellen Sie mit gsscred die Berechtigungsnachweistabelle.
Der Befehl sammelt Informationen aus allen im passwd-Eintrag der Datei /etc/nsswitch.conf aufgelisteten Quellen. Sie müssen eventuell vorübergehend den Eintrag files entfernen, falls Sie die lokalen Paßwort-Einträge nicht in die Berechtigungsnachweistabelle aufnehmen möchten. Siehe die Online-Dokumentation zu gsscred(1M), um weitere Informationen zu erhalten.
# gsscred -m kerberos_v5 -a |
Dieses Verfahren verlangt, daß die gsscred-Tabelle bereits auf dem NFS-Server installiert ist.
Melden Sie sich auf einem NFS-Server als Superuser an.
Fügen Sie mithilfe des Befehls gsscred einen Eintrag zur Tabelle hinzu.
# gsscred -m [mech] -n [name] -u [uid] -a |
mech |
Der zu verwendende Sicherheitsmechanismus. |
Name |
Der Hauptbenutzername des Benutzers entsprechend der Definition im KDC. |
uid |
Die Benutzer-ID des Benutzers entsprechend der Definition in der Paßwort-Datenbank. |
-a |
Fügt die UID zur Hauptbenutzernamen-Zuordnung hinzu. |
Im folgenden Beispiel wird ein Eintrag für die Benutzerin mit dem Namen sandy, die der UID 3736 zugeordnet ist, hinzugefügt. Die UID wird der Paßwortdatei entnommen, wenn sie nicht in der Befehlszeile angegeben ist.
# gsscred -m kerberos_v5 -n sandy -u 3736 -a |
Melden Sie sich auf dem NFS-Server als Superuser an.
Bearbeiten Sie die Datei /etc/dfs/dfstab , und fügen Sie die Option sec= mit den erforderlichen Sicherheitsmodi in den entsprechenden Einträgen hinzu.
# share -F nfs -o [Modus] [Dateisystem] |
Modus |
Die bei der Freigabe zu verwendenden Sicherheitsmodi. Bei Verwendung mehrfacher Sicherheitsmodi wird der erste Modus in der Liste von autofs als Standard verwendet. |
Dateisystem |
Der Pfad auf das freizugebende Dateisystem. |
Alle Clients, die den Zugriff auf Dateien des benannten Dateisystems versuchen, benötigen Kerberos-Authentisierung. Um den Zugriff auf Dateien durchzuführen, sollten sowohl der Benutzer-Hauptbenutzer als auch der root-Hauptbenutzer auf dem NFS-Client authentisiert werden.
Vergewissern Sie sich, daß der NFS-Service auf dem Server ausgeführt wird.
Wenn dies der erste Freigabebefehl oder die erste Freigabefehlsfolge ist, die Sie eingeleitet haben, dann werden wahrscheinlich die NFS-Daemons nicht ausgeführt. Die nachstehende Befehlsfolge beendet die Daemons und startet sie neu.
# /etc/init.d/nfs.server stop # /etc/init.d/nfs.server start |
Optional: Wenn autofs verwendet wird, bearbeiten Sie die auto_master
-Daten, um einen anderen als den Standardsicherheitsmodus auszuwählen
Sie müssen dieses Verfahren nicht befolgen, wenn Sie autofs für den Zugriff auf das Dateisystem nicht verwenden, oder wenn die Standardauswahl des Sicherheitsmodus akzeptabel ist.
/home auto_home -nosuid,sec=krbi |
Optional: Führen Sie den Befehl mount manuell aus, um auf das Dateisystem mit einem anderen als dem Standardmodus zuzugreifen.
Alternativ dazu könnten Sie den Befehl mount dazu verwenden, um den Sicherheitsmodus anzugeben, doch dies nutzt nicht den Vorteil der automatischen Mounts aus:
# mount -F nfs -o sec=krb5p /export/home |
Dieses Beispiel erfordert Kerberos-Authentisierung, bevor auf die Dateien zugegriffen werden kann.
# share -F nfs -o sec=krb5 /export/home |
In diesem Beispiel sind alle drei Kerberos-Sicherheitsmodi ausgewählt worden. Wenn bei der Mount-Anforderung kein Sicherheitsmodus angegeben ist, dann wird der erste aufgeführte Modus bei allen NFS V3-Clients angewendet (in diesem Fall krb5). Zusätzliche Informationen finden Sie unter "Änderungen für den Befehl share".
# share -F nfs -o sec=krb5:krb5i:krb5p /export/home |
Ein SEAM-Client ist jeder Host, jedoch kein KDC-Server, in einem Netzwerk, das SEAM-Services in Anspruch nehmen muß. Dieser Abschnitt bietet ein Verfahren zur Installation eines SEAM-Clients wie auch spezielle Informationen über die Verwendung der Root-Authentisierung für das Einhängen von NFS-Dateisystemen.
Es werden die folgenden Konfigurationsparameter verwendet:
Bereichsname = ACME.COM
DNS-Domainname = acme.com
Master-KDC = kdc1.acme.com
Slave-KDC = kdc2.acme.com
Client = client.acme.com
Admin-Hauptbenutzer = kws/admin
Benutzer-Hauptbenutzer = mre
Online-Hilfe-URL = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Passen Sie den URL so an, daß er auf den Abschnitt "SEAM Verwaltungstool" zeigt, wie in den Hinweisen zur Installation und Version von SEAM beschrieben.
Voraussetzungen für die Konfiguration eines Master-KDCs
Die SEAM Client-Software muß installiert sein.
Bearbeiten Sie die Kerberos-Konfigurationsdatei (krb5.conf).
Wenn Sie das Vorkonfigurationsverfahren angewendet haben, müssen Sie diese Datei nicht bearbeiten, sie sollten den Inhalt jedoch überprüfen. Um die SEAM-Standardversion der Datei zu ändern, müssen Sie die Bereichsnamen und die Servernamen ändern, wie auch den Pfad zu den Hilfedateien für gkadmin festlegen.
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 |
Optional: Synchronisieren Sie mit der Systemuhr des Master-KDCs über NTP oder einen anderen Mechanismus für die Synchronisation der Uhrzeit.
Siehe "Synchronisieren der Uhren zwischen KDCs und SEAM-Clients", um weitere Informationen über NTP zu erhalten.
Optional: Erstellen Sie einen Benutzer-Hauptbenutzer, falls noch keiner existiert.
Sie müssen einen Benutzer-Hauptbenutzer nur dann erstellen, wenn der diesem Host zugeordnete Benutzer noch keinem Hauptbenutzer zugeordnet ist. Siehe "Erstellen eines neuen Hauptbenutzers", wo Anweisungen zur Verwendung des SEAM-Verwaltungstools gegeben werden. Ein Befehlszeilen-Beispiel wird weiter unten gezeigt.
client1 # /usr/krb5/sbin/kadmin -p kws/admin Paßwort eingeben: <Eingabe des Paßworts für kws/admin> kadmin: addprinc mre Paßwort eingeben für Hauptbenutzer mre@ACME.COM: <Eingabe des Paßworts> Paßwort erneut eingeben für Hauptbenutzer mre@ACME.COM: <Nochmalige Eingabe> kadmin: |
Erstellen Sie einen Root-Hauptbenutzer.
kadmin: addprinc root/client1.acme.com Geben Sie das Paßwort für Hauptbenutzer root/client1.acme.com@ACME.COM ein: <Eingabe des Paßworts> Geben Sie das Paßwort für Hauptbenutzer root/client1.acme.com@ACME.COM erneut ein: <Nochmalige Eingabe> kadmin: quit |
(Optional) Wenn Sie möchten, daß ein Benutzer auf dem SEAM-Client automatisch kerberosfähige NFS-Dateisysteme mithilfe der Kerberos-Authentisierung einhängt, müssen Sie den Benutzer Root authentisieren.
Dieser Prozeß wird am sichersten mit dem Befehl kinit durchgeführt; der Benutzer muß jedoch jedesmal, wenn er ein durch Kerberos gesichertes Dateisystem einhängen möchte, kinit als root anwenden. Sie können stattdessen auch eine Schlüsseltabellendatei verwenden. Ausführliche Informationen über die Anforderungen an Schlüsseltabellen erhalten Sie unter "Einrichten der Root-Authentisierung für das Einhängen von NFS-Dateisystemen".
client1 # /usr/krb5/bin/kinit root/client1.acme.com Paßwort für root/client1.acme.com@ACME.COM: <Geben Sie das Paßwort ein: |
Um die Schlüsseltabellendatei-Option zu verwenden, fügen Sie den root-Hauptbenutzer zur Schlüsseltabelle des Clients mit kadmin hinzu:
client1 # /usr/krb5/sbin/kadmin -p kws/admin Paßwort eingeben: <Eingabe des Paßworts für kws/admin> kadmin: ktadd root/client1.acme.com kadmin: Eintrag für root/client.acme.com mit kvno 3, Verschlüsselungstyp DES-CBC-CRC zur Schlüsseltabelle hinzugefügt WRFILE:/etc/krb5/krb5.keytab kadmin: quit |
Wenn Sie möchten, daß der Client die Benutzer vor Ablauf des Kerberos-Tickets warnt, erstellen Sie einen Eintrag in der Datei /etc/krb5/warn.conf.
Siehe warn.conf(4), um weitere Informationen zu erhalten.
Aktualisieren Sie den Suchpfad der Benutzershell, um den Speicherort der SEAM-Befehle und der Online-Dokumentation mit einzuschließen.
Wenn Sie die SEAM-Software mithilfe der Konfigurationsdateien installiert und ausgewählt haben, die Definition von PATH automatisch zu aktualisieren, dann brauchen Sie nur die Variable MANPATHzu ändern. Wenn Sie die C-Shell verwenden, geben sie ein:
% set path=(/usr/krb5/bin $path) % set MANPATH=(/usr/krb5/man $MANPATH) |
Damit diese Änderungen sich dauerhaft auf den Suchpfad Ihrer Shell auswirken, bearbeiten Sie Ihre Startdatei .cshrc oder .login.
Wenn Sie die Bourne- oder Korn-Shell verwenden, geben Sie ein:
$ PATH=/usr/krb5/bin:$PATH $ MANPATH=/usr/krb5/man:$MANPATH |
Damit diese Änderungen sich dauerhaft auf den Suchpfad Ihrer Shell auswirken, bearbeiten Sie Ihre Startdatei .cshrc oder .login.
Wenn der Benutzer auf ein nicht mit Kerberos ausgestattetes NFS-Dateisystem zugreifen möchte, kann das NFS-Dateisystem entweder als root eingehängt werden, oder der Zugriff kann automatisch über den Automounter erfolgen, wenn das Dateisystem benötigt wird (ohne root-Rechte zu verlangen).
Das Einhängen eines mit Kerberos ausgestatteten NFS-Dateisystems ist sehr ähnlich, nur wird ein weiteres Hindernis eingebaut. Um ein solches Dateisystem einhängen zu können, muß der Benutzer den Befehl kinit als root anwenden, um den Berechtigungsnachweis für den root-Hauptbenutzer des Clients zu erhalten, denn dieser root-Hauptbenutzer ist in der Regel nicht in der Schlüsseltabelle des Clients enthalten. Das ist auch der Fall, wenn der Automounter eingerichtet ist. Das ist nicht nur ein zusätzlicher Schritt, sondern es zwingt auch alle Benutzer dazu, das root-Paßwort und das Paßwort für den root-Hauptbenutzer zu kennen.
Um das zu umgehen, können Sie den root-Hauptbenutzer des Clients zu dessen Schlüsseltabelle hinzufügen, wodurch automatisch der Berechtigungsnachweis für root gegeben ist. Obwohl dadurch die Benutzer NFS-Dateisystem einhängen können, ohne den Befehl kinit auszuführen, und die leichte Bedienbarkeit verbessert wird, stellt es auch ein Sicherheitsrisiko dar. Wenn zum Beispiel jemand Zugang zu einem System erhält, bei dem der root -Hauptbenutzer in dessen Schlüsseltabelle steht, dann hat diese Person die Möglichkeit, den Berechtigungsnachweis fürroot zu erhalten. Sie sollten daher unbedingt die angemessenen Sicherheitsvorkehrungen treffen. Siehe "Verwalten von Schlüsseltabellen" um weitere Informationen zu erhalten.
Alle Hosts, die am Kerberos-Authentisierungssystem teilnehmen, müssen ihre Systemuhren innerhalb eines festgelegten, maximalen Zeitbereichs (auch Zeitabweichung genannt) synchron halten, wodurch eine weitere Kerberos-Sicherheitsprüfung gegeben ist. Wenn die Zeitabweichung bei einem der teilnehmenden Hosts überschritten wird, dann werden Client-Anforderungen zurückgewiesen.
Die zulässige Zeitabweichung bestimmt auch, wie lange Anwendungsserver die Kerberos-Protokollnachrichten überwachen müssen, um so das Abspielen von zwischengespeicherten Anforderungen erkennen und zurückweisen zu können. Daher müssen die Anwendungsserver umso mehr Informationen sammeln, je länger der Wert für die Zeitabweichung ist.
Der Standardwert für die maximal zulässige Zeitabweichung der Uhren beträgt 300 Sekunden (fünf Minuten), was Sie im Abschnitt libdefaults der Datei krb5.conf ändern können.
Aus Sicherheitsgründen sollten Sie die zulässige Zeitabweichung nicht über 300 Sekunden hinaus erhöhen.
Da das Aufrechterhalten synchronisierter Systemuhren zwischen KDCs und SEAM-Clients wichtig ist, wird empfohlen, daß Sie die Software Network Time Protocol (NTP) zu diesem Zweck verwenden. Network Time Protocol (NTP) ist eine "public domain"-Software der University of Delaware und ab Version Solaris 2.6 Bestandteil der Solaris-Software.
Eine andere Möglichkeit, die Uhren zu synchronisieren, liegt in der Verwendung des Befehls rdate und der cron-Jobs, was ein weniger aufwendiger Prozeß sein kann als die Verwendung von NTP. Dieser Abschnitt wird jedoch weiterhin die Verwendung von NTP in den Vordergrund stellen. Außerdem muß im Fall, daß Sie die Systemuhren über das Netzwerk synchronisieren, das Synchronisationsprotokoll selbst sicher sein.
NTP ermöglicht Ihnen die präzise Zeit- bzw. Netzwerkuhr-Synchronisation in einer Netzwerkumgebung. Grundsätzlich ist NTP eine Server/Client-Implementierung. Sie wählen ein System als Master-Uhr (NTP-Server) aus und richten dann alle anderen Systeme so ein, daß sie ihre Uhren mit der Master-Uhr synchronisieren (NTP-Clients). Das alles geschieht über den Daemon xntpd, der eine UNIX-Systemtageszeit in Übereinstimmung mit den Standard-Zeitservern im Internet festlegt und aufrecht erhält. Abbildung 3-1 zeigt ein Beispiel für die Verwendung der Server/Client-Implementierung von NTP.
Um sicherzustellen, daß KDCs und SEAM-Clients synchronisierte Uhren haben, implementieren Sie die folgenden Schritte:
Richten Sie in Ihrem Netzwerk einen NTP-Server ein (das kann jedes System sein, ausgenommen das Master-KDC). (Siehe "So richten Sie einen NTP-Server ein".)
Wenn Sie die KDCs und SEAM-Clients im Netzwerk konfigurieren, richten Sie diese als NTP-Clients auf dem NTP-Server ein. (Siehe "So richten Sie einen NTP-Client ein".)
Melden Sie sich auf dem NTP-Server als Superuser an.
Wechseln Sie zum Verzeichnis /etc/inet.
Kopieren Sie die Datei ntp.server in die Datei ntp.conf.
# cp ntp.server ntp.conf |
Wechseln Sie zum Verzeichnis /etc/init.d.
Starten Sie den Daemon xntpd.
# ./xntpd start |
Melden Sie sich als Superuser auf dem System an, das ein NTP-Client werden soll.
Wechseln Sie zum Verzeichnis /etc/inet.
Kopieren Sie die Datei ntp.client in die Datei ntp.conf.
# cp ntp.client ntp.conf |
Wechseln Sie zum Verzeichnis /etc/init.d.
Starten Sie den Daemon xntpd.
# ./xntpd start |
Diese Verfahren sollten angewendet werden, um den Austausch eines Master-KDCs mit einem Slave-KDC einfacher zu machen. Dies sollte nur getan werden, wenn der Master-KDC-Server aus irgendeinem Grund ausfällt, oder wenn der Master neu installiert werden muß (zum Beispiel bei neuer Hardware).
Dieses Verfahren sollte auf dem Slave-KDC-Server durchgeführt werden, den Sie dazu bereitstellen möchten, Master zu werden.
Verwenden Sie während der Installation für Master- und austauschbaren Slave-KDC-Server Aliasnamen.
Wenn Sie für die KDCs Hostnamen definieren, stellen Sie sicher, daß jedes System im DNS über einen Alias verfügt, und verwenden Sie die Aliasnamen bei der Host-Definition in /etc/krb5/krb5.conf.
Installieren Sie die Master-KDC-Software.
Die Installation der Master-KDC-Software stellt Binärdateien und andere Dateien zur Verfügung, die während eines Austauschs benötigt werden, unter anderen alle Dateien, die ein Slave-KDC-Server benötigt. Starten Sie das System nicht neu, wenn die Installation abgeschlossen ist.
Befolgen Sie die Schritte zur Installation eines Slave-KDCs.
Vor jeglichem Austausch sollte dieser Server wie jedes andere Slave-KDC im Bereich funktionieren. Siehe "So wird ein Slave-KDC konfiguriert", um weitere Anweisungen zu erhalten. Installieren Sie nicht die Slave-Software. Alle benötigten Dateien werden installiert, wenn die Master-Software installiert wird.
Verschieben Sie die Master-KDC-Befehle.
Um zu verhindern, daß die Master-KDC-Befehle von diesem Slave ausgeführt werden, verschieben Sie kprop, kadmind und kadmin.local an eine reservierte Stelle.
kdc4 # mv /usr/krb5/lib/kprop /usr/krb5/lib/kprop.save kdc4 # mv /usr/krb5/lib/kadmind /usr/krb5/lib/kadmind.save kdc4 # mv /usr/krb5/sbin/kadmin.local /usr/krb5/sbin/kadmin.local.save |
Deaktivieren Sie das Starten von kadmind in /etc/init.d/kdc.master .
Um zu verhindern, daß der Slave Anforderungen zur Änderung der KDC-Datenbank bearbeitet, kommentieren Sie im folgenden Skript die Zeile aus, die kadmind startet:
kdc4 # cat /etc/init.d/kdc.master . . case "$1" in 'start') if [ -f $KDC_CONF_DIR/kdc.conf ] then # $BINDIR/kadmind fi ;; |
Kommentieren Sie die kprop-Zeile in der crontab-Datei für root aus.
Dieser Schritt verhindert, daß der Slave seine Kopie der KDC-Datenbank vervielfältigt.
kdc4 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # root crontab sollte zur Sammlung von Buchungsdaten verwendet werden. # # Der rtc-Befehl wird ausgeführt, um die Echtzeituhr anzupassen, wenn ggf. # der Wechsel zwischen Sommer- und Winterzeit stattfindet. # 10 3 * * 0,4 /etc/cron.d/logchecker 10 3 * * 0 /usr/lib/newsyslog 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean #10 3 * * * /usr/krb5/lib/kprop_script kdc1.acme.sun.com #SUNWkr5ma |
Dieses Verfahren verlangt, daß der Slave-KDC-Server als austauschbarer Slave eingerichtet worden ist (siehe "So wird ein austauschbares Slave-KDC konfiguriert "). Der Master-Server, der ausgetauscht wird, heißt hier kdc1, und der Slave, der zum neuen Master wird, heißt kdc4.
Deaktivieren Sie Sie auf dem alten Master den Prozeß kadmind.
Durch Beenden des kadmind-Prozesses wird verhindert, daß an der KDC-Datenbank irgendwelche Änderungen vorgenommen werden.
kdc1 # /etc/init.d/kdc.master stop |
Kommentieren Sie auf dem alten Master die kprop-Zeile in der crontab-Datei für root aus.
Dieser Schritt verhindert, daß der alte Master seine Kopie der KDC-Datenbank vervielfältigt.
kdc1 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # root crontab sollte zur Sammlung von Buchungsdaten verwendet werden. # # Der rtc-Befehl wird ausgeführt, um die Echtzeituhr anzupassen, wenn ggf. # der Wechsel zwischen Sommer- und Winterzeit stattfindet. # 10 3 * * 0,4 /etc/cron.d/logchecker 10 3 * * 0 /usr/lib/newsyslog 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean #10 3 * * * /usr/krb5/lib/kprop_script kdc2.acme.sun.com #SUNWkr5ma |
Deaktivieren Sie das Starten von kadmind in /etc/init.d/kdc.master .
Um zu verhindern, daß der Master kadmind startet, wenn der Server neu hochgefahren wird, kommentieren Sie im folgenden Skript die Zeile aus, die kadmind startet:
kdc1 # cat /etc/init.d/kdc.master . . case "$1" in 'start') if [ -f $KDC_CONF_DIR/kdc.conf ] then # $BINDIR/kadmind fi ;; |
Führen Sie auf dem alten Master kprop_script aus, um die Datenbank zu sichern und zu vervielfältigen.
kdc1 # /usr/krb5/lib/kprop_script kdc4.acme.com Datenbankvervielfältigung auf kdc4.acme.com: ERFOLGREICH |
Verschieben Sie auf dem alten Master die Master-KDC-Befehle.
Um zu verhindern, daß die Master-KDC-Befehle ausgeführt werden, verschieben Sie kprop, kadmind und kadmin.local an eine reservierte Stelle.
kdc4 # mv /usr/krb5/lib/kprop /usr/krb5/lib/kprop.save kdc4 # mv /usr/krb5/lib/kadmind /usr/krb5/lib/kadmind.save kdc4 # mv /usr/krb5/sbin/kadmin.local /usr/krb5/sbin/kadmin.local.save |
Ändern Sie auf dem DNS-Server die Aliasnamen für den Master.
Um die Server zu ändern, bearbeiten Sie die Zonendatei acme.com und ändern Sie den Eintrag für masterkdc.
masterkdc IN CNAME kdc4 |
Starten Sie auf dem DNS-Server den Internet-Domainnamen-Server neu.
Führen Sie den folgenden Befehl auf beiden Servern aus, um die neuen Alias-Informationen zu erhalten:
# pkill -1 in.named |
Verschieben Sie auf dem neuen Master die Master-KDC-Befehle.
kdc4 # mv /usr/krb5/lib/kprop.save /usr/krb5/lib/kprop kdc4 # mv /usr/krb5/lib/kadmind.save /usr/krb5/lib/kadmind kdc4 # mv /usr/krb5/sbin/kadmin.local.save /usr/krb5/sbin/kadmin.local |
Erstellen Sie auf dem neuen Master eine Schlüsseltabellendatei für kadmin unter Verwendung von kadmin.local.
Diese Befehlsfolge erstellt eine spezielle Schlüsseltabellendatei mit Hauptbenutzereinträgen für admin und changepw . Diese Hauptbenutzer werden für den kadmind-Service benötigt.
kdc4 # /usr/krb5/sbin/kadmin.local kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc4.acme.com Eintrag für Hauptbenutzer kadmin/kdc4.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/kdc4.acme.com Eintrag für Hauptbenutzer changepw/kdc4.acme.com mit kvno 3, Verschlüsselungstyp DES-CBC-CRC zur Schlüsseltabellendatei WRFILE:/etc/krb5/kadm5.keytab hinzugefügt. kadmin.local: quit |
Aktivieren Sie auf dem neuen Master das Starten von kadmind in /etc/init.d/kdc.master .
kdc4 # cat /etc/init.d/kdc.master . . case "$1" in 'start') if [ -f $KDC_CONF_DIR/kdc.conf ] then $BINDIR/kadmind fi ;; |
Starten Sie auf dem Master-KDC kadmin.
kdc4 # /etc/init.d/kdc.master start |
Aktivieren Sie die kprop-Zeile in der crontab-Datei von root.
kdc4 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # root crontab sollte zur Sammlung von Buchungsdaten verwendet werden. # # Der rtc-Befehl wird ausgeführt, um die Echtzeituhr anzupassen, wenn ggf. # der Wechsel zwischen Sommer- und Winterzeit stattfindet. # 10 3 * * 0,4 /etc/cron.d/logchecker 10 3 * * 0 /usr/lib/newsyslog 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean 10 3 * * * /usr/krb5/lib/kprop_script kdc1.acme.sun.com #SUNWkr5ma |
Die Kerberos-Datenbank ist das Rückrat von Kerberos und muß ordentlich gepflegt werden. Dieser Abschnitt stellt einige der Verfahren zur Verwaltung der Kerberos-Datenbank zur Verfügung, wie zum Beispiel Sichern und Wiederherstellen der Datenbank, Einrichten der parallelen Vervielfältigung, Verwalten der Vorsorgedatei. Die Schritte für die Initialisierung der Datenbank sind in "So wird ein Master-KDC konfiguriert" zu finden.
Das Vervielfältigen der Kerberos-Datenbank vom Master-KDC auf den Slave-KDCs ist eine der wichtigsten Konfigurationsaufgaben. Wenn die Vervielfältigung nicht oft genug geschieht, geraten Master-KDC und Slave-KDCs in einen nicht synchronisierten Zustand, so daß im Falle eines Versagens des Master-KDCs die Slave-KDCs nicht über die aktuellsten Datenbankinformationen verfügen. Auch, wenn ein Slave-KDC als Master zum Zweck der Lastverteilung konfiguriert worden ist, haben die Clients, welche diesen Slave als Master-KDC verwenden, nicht die neuesten Informationen. Daher ist es wichtig sicherzustellen, daß die Vervielfältigung oft genug geschieht, was wiederum abhängig ist von der Häufigkeit, in der die Kerberos-Datenbank geändert wird.
Wenn Sie das Master-KDC konfigurieren, richten Sie kprop_script in einem cron-Job ein, um die Kerberos-Datenbank automatisch in die Ablagedatei /var/krb5/slave_datatrans zu sichern und bei den Slave-KDCs zu vervielfältigen. Aber wie das mit jeder Datei geschehen kann, kann auch die Kerberos-Datenbank beschädigt werden. Wenn das auf einem der Slave-KDCs geschieht, könnten Sie das niemals bemerken, da durch die nächste automatische Vervielfältigung eine frische Kopie der Datenbank installiert wird. Geschieht das jedoch auf dem Master-KDC, dann wird die beschädigte Datenbank bei der nächsten Vervielfältigung auf alle Slaves übertragen. Außerdem wird die vorherige, unbeschädigte Sicherungsdatei auf dem Master-KDC durch die beschädigte Sicherung überschrieben.
Da es in diesem Szenario keine "fehlerfreie" Sicherungskopie gibt, sollten Sie auch einen cron-Job einrichten, der die Ablagedatei slave_datatrans periodisch an eine andere Stelle kopiert oder mithilfe des Befehls dump aus kdb5_util eine andere Sicherungskopie erstellt. Wenn dann die Datenbank beschädigt wird, können Sie die letzte Sicherung auf dem Master-KDC mithilfe des Befehls load aus kdb5_util wiederherstellen.
Ein anderer, wichtiger Hinweis: Da die Datenbank-Ablagedatei Hauptbenutzerschlüssel enthält, müssen Sie die Datei vor dem Zugriff durch unbefugte Benutzer schützen (standardmäßig hat die Ablagedatei nur als root Lese-/Schreibrechte). Das bedeutet auch, daß nur der Befehl kprop zur Vervielfältigung der Ablagedatei verwendet werden sollte, weil hierdurch die zu übertragenden Daten verschlüsselt werden. Auch vervielfältigt kprop die Daten nur auf den Slave-KDCs, wodurch die Chance, daß der Datenbankauszug versehentlich an nicht autorisierte Hosts geschickt wird, sich auf ein Mindestmaß beschränkt.
Wenn die Kerberos-Datenbank nach ihrer Vervielfältigung aktualisiert wird und danach, noch vor der nächsten Vervielfältigung, beschädigt wird, dann haben die Slaves nicht die Aktualisierungen: sie gehen verloren. Wegen dieses Szenarios sollten Sie, wenn Sie vor einer normalerweise geplanten Vervielfältigung noch bedeutsame Aktualisierungen an der Datenbank vornehmen, die Datenbank manuell vervielfältigen, um einen Datenverlust zu vermeiden.
Diese Datei auf einem KDC enthält eine Liste von Host-Hauptbenutzernamen, die zeilenweise die Systeme angeben, von denen das KDC über den Vervielfältigungsmechanismus eine aktualisierte Datenbank empfangen kann. Wenn alle Slave-KDCs durch das Master-KDC vervielfältigt werden, dann muß die Datei kpropd.acl auf jedem Slave nur den Host-Hauptbenutzernamen des Masters enthalten.
Die in diesem Handbuch enthaltenen Schritte für die SEAM-Installation und nachfolgende Konfiguration weisen Sie jedoch an, dieselbe kpropd.acl-Datei auf Master- wie auch Slave-KDCs zu speichern. Die Datei enthält alle Host-Hauptbenutzernamen für das KDC. Diese Konfiguration erlaubt Ihnen, von jedem beliebigen KDC aus eine Vervielfältigung vorzunehmen für den Fall, daß ein vervielfältigendes KDC vorübergehend nicht zur Verfügung steht. Außerdem wird durch das Halten von identischen Kopien auf allen KDCs die Verwaltung einfach gemacht.
Der Befehl kprop_script verwendet den Befehl kprop, um die Kerberos-Datenbank auf anderen KDCs zu vervielfältigen. (Wenn kprop_script auf einem Slave-KDC ausgeführt wird, wird dadurch die Slave-Kopie der Kerberos-Datenbank auf andern KDCs vervielfältigt.) Das Skript kprop_script akzeptiert als Argumente eine Liste von Hostnamen, die durch Leerzeichen voneinander getrennt sind und KDCs bezeichnen, auf denen vervielfältigt werden soll.
Wenn kprop_script ausgeführt wird, erstellt das Skript eine Sicherung der Kerberos-Datenbank in der Datei /var/krb5/slave_datatrans und kopiert dann diese Datei auf die angegebenen KDCs. Die Kerberos-Datenbank wird solange gesperrt, bis die Vervielfältigung abgeschlossen ist.
Melden Sie sich als Superuser beim Master-KDC an.
Sichern Sie die Kerberos-Datenbank mithilfe des Befehls dump aus kdb5_util.
# /usr/krb5/sbin/kdb5_util dump [-verbose] [-d dbname] [filename [principals...]] |
- verbose |
Druckt den Namen jedes Hauptbenutzers und jeder Richtlinie, die gesichert wird. |
dbname |
Der Name der zu sichernden Datenbank. Beachten Sie, daß ".db" an den angegebenen Datenbanknamen angehängt wird, und daß für die Datei eine absoluter Pfad angegeben werden kann. Wenn die Option -d nicht angegeben ist, dann lautet der Standard-Datenbankname /var/krb5/principal, der dann zu /var/krb5/principal.db wird. |
filename |
Die Datei, in der die Datenbank gesichert wird. Für die Datei kann ein absoluter Pfad angegeben werden. Wenn Sie keine Datei angeben, wird die Datenbank auf der Standardausgabe ausgegeben. |
principal |
Eine Liste eines oder mehrerer Hauptbenutzer (durch Leerzeichen voneinander getrennt), die gesichert werden sollen. Es müssen vollqualifizierte Hauptbenutzernamen verwendet werden. Wenn Sie keine Hauptbenutzer angeben, wird die gesamte Datenbank gesichert. |
Im folgenden Beispiel wird die Kerberos-Datenbank in einer Datei gesichert, die dumpfile genannt wird. Da die Option -verbose angegeben ist, wird jeder Hauptbenutzer während seiner Sicherung gedruckt.
# kbd5_util dump -verbose dumpfile kadmin/kdc1.eng.acme.com@ENG.ACME.COM krbtgt/eng.acme.com@ENG.ACME.COM kadmin/history@ENG.ACME.COM pak/admin@ENG.ACME.COM pak@ENG.ACME.COM changepw/kdc1.eng.acme.com@ENG.ACME.COM # |
Im folgenden Beispiel werden die Hauptbenutzer pak und pak/admin aus der Kerberos-Datenbank gesichert.
# kdb5_util dump -verbose dumpfile pak/admin@ENG.ACME.COM pak@ENG.ACME.COM pak/admin@ENG.ACME.COM pak@ENG.ACME.COM # |
Melden Sie sich als Superuser beim Master-KDC an.
Stellen Sie die Kerberos-Datenbank mithilfe des Befehls load aus kdb_util wieder her.
# /usr/krb5/sbin/kdb5_util load [-verbose] [-d dbname] [-update] [filename] |
- verbose |
Druckt den Namen jedes Hauptbenutzers und jeder Richtlinie, die gesichert wird. |
dbname |
Der Name der wiederherzustellenden Datenbank. Beachten Sie, daß ".db" an den angegebenen Datenbanknamen angehängt wird, und daß für die Datei eine absoluter Pfad angegeben werden kann. Wenn die Option -d nicht angegeben ist, dann lautet der Standard-Datenbankname /var/krb5/principal, der dann zu /var/krb5/principal.db wird. |
-update |
Aktualisiert die bestehende Datenbank; andernfalls wird eine neue Datenbank erstellt oder die bestehende Datenbank überschrieben. |
filename |
Die Datei, aus der die Datenbank wiederherzustellen ist. Für die Datei kann ein absoluter Pfad angegeben werden. |
Im folgenden Beispiel wird die Datenbank mit dem Namen database1.db im aktuellen Verzeichnis der Datei dumpfile wiederhergestellt. Da die Option - update nicht angegeben ist, wird durch den Wiederherstellungsprozeß eine neue Datenbank erstellt.
# kdb5_util load -d database1 dumpfile |
Dieses Verfahren zeigt Ihnen, wie die Kerberos-Datenbank mithilfe des Befehls kprop vervielfältigt wird. Sie können es anwenden, wenn Sie ein Slave-KDC mit dem Master-KDC außerhalb des periodischen cron-Jobs synchronisieren müssen. Und, anders als beim kprop_script, können Sie mit kprop nur die aktuelle Datenbank-Sicherung vervielfältigen, ohne zuerst eine neue Sicherung der Datenbank zu erstellen.
Melden Sie sich als Superuser beim Master-KDC an.
(Optional) Sichern Sie die Datenbank mithilfe des kdb5_util-Befehls.
# /usr/krb5/sbin/kdb5_util dump /var/krb5/slave_datatrans |
Vervielfältigen Sie die Datenbank auf einem Slave-KDC mithilfe des Befehls kprop.
# /usr/krb5/lib/kprop -f /var/krb5/slave_datatrans slave_KDC |
Wenn Sie die Datenbank sichern und auf einem Slave-KDC außerhalb des periodischen cron-Jobs vervielfältigen möchten, können Sie den Befehl kprop_script folgendermaßen benutzen:
# /usr/krb5/lib/kprop_script slave_KDC |
In den meisten Fällen wird das Master-KDC ausschließlich dazu verwendet, seine Datenbank auf Slave-KDCs zu vervielfältigen. Wenn jedoch Ihre Site viele Slave-KDCs hat, sollten Sie eine Lastverteilung im Vervielfältigungsprozeß in Erwägung ziehen, die parallele Vervielfältigung genannt wird.
Die parallele Vervielfältigung erlaubt es bestimmten Slave-KDCs, die Vervielfältigungspflichten mit dem Master-KDC zu teilen. Dadurch kann die Vervielfältigung schneller erfolgen und die Arbeit des Master-KDCs erleichtert werden.
Nehmen wir zum Beispiel an, Ihre Site hat einen Master und sechs Slaves (dargestellt in Abbildung 3-2), wobei slave-1 bis slave-3 eine logische Gruppe bilden und slave-4 bis slave-6 eine andere. Um die parallele Vervielfältigung einzurichten, könnten Sie das Master-KDC seine Datenbank auf slave-1 und slave-4 vervielfältigen lassen, und diese Slaves könnten dann die Datenbank auf den anderen Slaves in ihrer Gruppe vervielfältigen.
Dies ist kein schrittweise dargestelltes Verfahren, sondern eine Liste von Konfigurationsschritten auf hoher Ebene, die zur parallelen Vervielfältigung führen.
Ändern Sie auf dem Master-KDC den kprop_script-Eintrag im cron-Job, damit nur für die Slaves Argumente angegeben werden, welche die nachfolgende Vervielfältigung durchführen (Vervielfältigungs-Slaves).
Fügen Sie auf jedem Vervielfältigungs-Slave einen kprop_script -Eintrag im jeweiligen cron-Job hinzu, der Argumente für die Slaves enthält, auf denen zu vervielfältigen ist. Damit die parallele Vervielfältigung erfolgreich verläuft, sollte der cron-Job so eingerichtet werden, daß er erst ausgeführt wird, nachdem der Vervielfältigungs-Slave selbst eine Vervielfältigung der neuen Datenbank erhalten hat.
Die Festlegung, wie lange es dauert, bis ein Vervielfältigungs-Slave seine Vervielfältigung erhalten hat, hängt von Faktoren wie Netzwerkbandbreite und Datenbankgröße ab.
Richten Sie auf jedem Slave-KDC die entsprechenden, zu vervielfältigenden Berechtigungen ein. Das wird durch Hinzufügen des Host-Hauptbenutzernamens seines vervielfältigenden KDCs zu seiner Datei kpropd.acl erreicht.
Für das Beispiel in Abbildung 3-2 würde der Eintrag im kprop_script für den Master-KDC etwa so aussehen:
10 3 * * * /usr/krb5/lib/kprop_script slave-1.acme.com slave-4.acme.com
Der kprop_script-Eintrag von slave-1 würde etwa so aussehen (beachten Sie, daß die Vervielfältigung auf dem Slave eine Stunde nach der Vervielfältigung durch den Master beginnt):
10 4 * * * /usr/krb5/lib/kprop_script slave-2.acme.com slave-3.acme.com
Die Datei kpropd.acl auf den Vervielfältigungs-Slaves müßte dann den folgenden Eintrag enthalten:
host/master.acme.com@ACME.COM
Die Datei kpropd.acl auf den Slaves, welche die Vervielfältigung durch slave-1 erhalten, müßte den folgenden Eintrag haben:
host/slave-1.acme.com@ACME.COM
Die Vorsorgedatei enthält den Masterschlüssel für die Kerberos-Datenbank, der mit Erstellung einer Kerberos-Datenbank automatisch generiert wird. Wenn die Vorsorgedatei beschädigt wird, können Sie die beschädigte Datei durch den Befehl stash aus kdb5_util(1M) ersetzen. Nur einmal müssen Sie eine Vorsorgedatei entfernen, und zwar dann, wenn Sie die Kerberos-Datenbank mit dem Befehl destroy aus kdb5_util löschen. Da die Vorsorgedatei nicht zusammen mit der Datenbank automatisch gelöscht wird, müssen Sie die Datei selbst entfernen, um das Aufräumen abzuschließen.
Melden Sie sich auf dem KDC als Superuser an, das die Vorsorgedatei enthält.
Entfernen Sie die Vorsorgedatei.
# rm stash_file |
stash_file |
Der Pfad zur Vorsorgedatei. Standardmäßig wird die Vorsorgedatei unter /var/krb5/.k5 realm gespeichert. |
Wenn Sie die Vorsorgedatei noch einmal erstellen müssen, verwenden Sie die Option -f des kdb5_util-Befehls.
Diese Verfahren führen Schritte auf, die Sie unternehmen können, um die Sicherheit auf SEAM-Anwendungsserver und auf KDC-Server zu erhöhen.
Dieses Verfahren schränkt den Netzwerkzugriff auf den Server über telnet , ftp, rcp, rsh und rlogin auf von Kerberos authentisierte Transaktionen ein.
Bearbeiten Sie den telnet-Eintrag in /etc/inetd.conf.
Fügen Sie die Option -a user zum telnet-Eintrag hinzu, um den Zugriff auf diejenigen Benutzer einzuschränken, die gültige Authentisierungsinformationen bereitstellen.
telnet stream tcp nowait root /usr/krb5/lib/telnetd telnetd -a user |
Bearbeiten Sie den telnet-Eintrag in /etc/inetd.conf.
Fügen Sie die Option -a zum ftp-Eintrag hinzu, um nur von Kerberos authentisierte Verbindungen zuzulassen.
ftp stream tcp nowait root /usr/krb5/lib/ftpd ftpd -a |
Deaktivieren Sie Solaris-Einträge für andere Services in /etc/inetd.conf.
Die Einträge für shell und login müssen auskommentiert oder entfernt werden
# shell stream tcp nowait root /usr/sbin/in.rshd in.rshd # login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind |
Sowohl der Master- als auch die KDC-Server haben lokal gespeicherte Kopien der KDC-Datenbank. Das Einschränken des Zugriffs auf diese Server, damit die Datenbanken sicher sind, ist für die Sicherheit der gesamten SEAM-Installation von Bedeutung.
Deaktivieren Sie entfernte Services in /etc/inetd.conf.
Um einen sicheren KDC-Server bereitzustellen, sollten alle unwesentlichen Netzwerk-Services deaktiviert werden, indem Sie den jeweiligen Eintrag in der Datei /etc/inetd.conf auskommentieren, durch den der Service gestartet wird. In den meisten Situationen wären time und krdb5_kprop die einzigen Services, die ausgeführt werden müßten. Außerdem können alle Services, die Loopback-tli (ticlts, ticotsord und ticots) verwenden, aktiviert bleiben. Nach der Bearbeitung sollte die Datei ungefähr so aussehen (um das Beispiel kürzer zu machen, wurden viele Kommentare entfernt):
kdc1 # cat /etc/inetd.conf # #ident "@(#)inetd.conf 1.33 98/06/02 SMI" /* SVr4.0 1.5 */ . . #name dgram udp wait root /usr/sbin/in.tnamed in.tnamed # #shell stream tcp nowait root /usr/sbin/in.rshd in.rshd #login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind #exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd #comsat dgram udp wait root /usr/sbin/in.comsat in.comsat #talk dgram udp wait root /usr/sbin/in.talkd in.talkd # #uucp stream tcp nowait root /usr/sbin/in.uucpd in.uucpd # #finger stream tcp nowait nobody /usr/sbin/in.fingerd in.fingerd # # Time-Service wird zur Uhrsynchronisierung verwendet # time stream tcp nowait root internal time dgram udp wait root internal # . . # 100234/1 tli rpc/ticotsord wait root /usr/lib/gss/gssd gssd #dtspc stream tcp nowait root /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd #100068/2-5 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd 100134/1 tli rpc/ticotsord wait root /usr/krb5/lib/ktkt_warnd kwarnd #klogin stream tcp nowait root /usr/krb5/lib/rlogind rlogind -k #eklogin stream tcp nowait root /usr/krb5/lib/rlogind rlogind -k -e #telnet stream tcp nowait root /usr/krb5/lib/telnetd telnetd #ftp stream tcp nowait root /usr/krb5/lib/ftpd ftpd #kshell stream tcp nowait root /usr/krb5/lib/rshd rshd -k -c -A krb5_prop stream tcp nowait root /usr/krb5/lib/kpropd kpropd |
Starten Sie den Server neu, nachdem die Änderungen vorgenommen wurden.
Schränken Sie den Zugriff auf die Hardware ein, die das KDC unterstützt.
Um den physikalischen Zugriff einzuschränken, stellen Sie sicher, daß der Server und sein Monitor in einem sicheren Gebäude untergebracht sind. Normale Benutzer sollten sowieso keinen Zugang zu diesem Server haben.
Speichern Sie die Sicherungen der KDC-Datenbank auf lokalen Platten oder auf den Slaves.
Bandsicherungen des KDC sollten durchgeführt werden, wenn die Bänder sicher verwahrt werden. Das gilt auch für Kopien von Schlüsseltabellendateien. Am besten sollten diese Dateien auf einem lokalen Dateisystem gespeichert werden, das für keine anderen Systeme freigegeben ist. Das Dateisystem des Speichers kann sich entweder auf dem Master-KDC-Server oder auf einem der Slaves befinden.