Teil I Übersicht über die Sicherheit
1. Sicherheitsservices (Überblick)
Teil II System-, Datei- und Gerätesicherheit
2. Verwalten von Rechnersicherheit (Übersicht)
3. Steuern des Zugriffs auf Systeme (Aufgaben)
4. Steuern des Zugriffs auf Geräte (Aufgaben)
5. Verwenden von Basic Audit Reporting Tool (Aufgaben)
6. Steuern des Zugriffs auf Dateien (Aufgaben)
7. Verwenden von Automated Security Enhancement Tool (Aufgaben)
Teil III Rollen, Berechtigungsprofile und Berechtigungen
8. Verwenden von Rollen und Berechtigungen (Übersicht)
9. Rollenbasierte Zugriffssteuerung (Aufgaben)
10. Rollenbasierte Zugriffssteuerung (Übersicht)
Teil IV Kryptografische Services
13. Oracle Solaris Cryptographic Framework (Übersicht)
14. Oracle Solaris Cryptographic Framework (Aufgaben)
15. Oracle Solaris Key Management Framework
Teil V Authentifizierungsservices und sichere Kommunikation
16. Verwenden von Authentifizierungsservices (Aufgaben)
19. Verwenden von Oracle Solaris Secure Shell (Aufgaben)
20. Oracle Solaris Secure Shell (Referenz)
21. Einführung zum Kerberos-Service
22. Planen des Kerberos-Service
23. Konfigurieren des Kerberos-Service (Aufgaben)
Konfigurieren des Kerberos-Service (Übersicht der Schritte)
Konfigurieren zusätzlicher Kerberos-Services (Übersicht der Schritte)
So konfigurieren Sie ein Master-KDC manuell
So konfigurieren Sie ein KDC zur Verwendung eines LDAP-Datenservers
So konfigurieren Sie ein Slave-KDC manuell
So aktualisieren Sie die Ticket Granting Service-Schlüssel auf einem Master-Server
Konfigurieren von bereichsübergreifender Authentifizierung
So richten Sie eine hierarchische bereichsübergreifende Authentifizierung ein
So richten Sie eine direkte bereichsübergreifende Authentifizierung ein
Konfigurieren von Kerberos-Netzwerkanwendungsservern
So konfigurieren Sie einen Kerberos-Netzwerkanwendungsserver
Konfigurieren von Kerberos-NFS-Servern
So konfigurieren Sie Kerberos-NFS-Server
So erstellen Sie eine Berechtigungsnachweistabelle
So fügen Sie der Berechtigungstabelle einen einzelnen Eintrag hinzu
So ordnen Sie Berechtigungsnachweise zwischen Bereichen zu
So richten Sie eine sichere NFS-Umgebung mit mehreren Kerberos-Sicherheitsmodi ein
Konfigurieren von Kerberos-Clients
Konfigurieren von Kerberos-Clients (Übersicht der Schritte)
So erstellen Sie ein Kerberos-Clientinstallationsprofil
So konfigurieren Sie einen Kerberos-Client automatisch
So konfigurieren Sie einen Kerberos-Client interaktiv
So konfigurieren Sie einen Kerberos-Client manuell
So deaktivieren Sie die Überprüfung des TGT (Ticket Granting Ticket)
So greifen Sie auf ein durch Kerberos geschütztes NFS-Dateisystem als root-Benutzer zu
So konfigurieren Sie eine automatische Migration von Benutzern in einem Kerberos-Bereich
Synchronisieren von Uhren zwischen KDCs und Kerberos-Clients
Austauschen von Master-KDC und Slave-KDC
So konfigurieren Sie ein austauschbares Slave-KDC
So tauschen Sie ein Master-KDC gegen ein Slave-KDC aus
Verwalten der Kerberos-Datenbank
Backup und Weitergabe der Kerberos-Datenbank
So erstellen Sie ein Backup der Kerberos-Datenbank
So stellen Sie die Kerberos-Datenbank wieder her
So konvertieren Sie eine Kerberos-Datenbank nach einem Server-Upgrade
So konfigurieren Sie ein Master-KDC zur Verwendung der inkrementellen Weitergabe
So konfigurieren Sie ein Slave-KDC zur Verwendung der inkrementellen Weitergabe
So konfigurieren Sie ein Slave-KDC zur Verwendung der vollständigen Weitergabe
So überprüfen Sie die Synchronisierung der KDC-Server
So führen Sie eine manuelle Weitergabe der Kerberos-Datenbank an Slave-KDCs durch
Einrichten von paralleler Weitergabe
Konfigurationsschritte zum Einrichten einer parallelen Weitergabe
So entfernen Sie eine Stash-Datei
Verwalten eines KDC auf einem LDAP-Verzeichnisserver
So löschen Sie einen Bereich auf einem LDAP-Verzeichnisserver
Erhöhen der Sicherheit auf Kerberos-Servern
So aktivieren Sie nur kerberisierte Anwendungen
So beschränken Sie den Zugriff auf KDC-Server
So verwenden Sie eine Wörterbuchdatei zur Erhöhung der Passwortsicherheit
24. Kerberos-Fehlermeldungen und -Fehlerbehebung
25. Verwalten von Kerberos-Hauptelementen und Richtlinien (Aufgaben)
26. Verwenden von Kerberos-Anwendungen (Aufgaben)
27. Der Kerberos-Service (Referenz)
Teil VII Prüfung bei Oracle Solaris
28. Prüfung bei Oracle Solaris (Übersicht)
29. Planen der Oracle Solaris-Prüfung
30. Verwalten der Oracle Solaris-Prüfung (Aufgaben)
Nach der Installation der Kerberos-Software müssen Sie die KDC-Server konfigurieren. Durch Konfiguration eines Master-KDC und mindestens eines Slave-KDC wird der Service zur Ausgabe von Berechtigungsnachweisen bereitgestellt. Diese Berechtigungsnachweise bilden die Grundlage für den Kerberos-Service. Daher müssen die KDCs vor der Durchführung anderer Aufgaben installiert werden.
Der wichtigste Unterschied zwischen einem Master-KDC und einem Slave-KDC ist, dass nur das Master-KDC Datenbankverwaltungsanforderungen verarbeiten kann. So muss z. B. das Ändern eines Passworts oder das Hinzufügen eines neuen Hauptelements auf dem Master-KDC erfolgen. Diese Änderungen können dann an die Slave-KDCs weitergegeben werden. Sowohl Slave-KDC als auch Master-KDC generieren Berechtigungsnachweise. Diese Funktionsweise bietet Redundanz, falls das Master-KDC nicht verfügbar ist.
Tabelle 23-1 Konfigurieren von KDC-Servern (Übersicht der Schritte)
|
Bei diesem Verfahren wird eine inkrementelle Weitergabe konfiguriert. Zusätzlich werden folgende Konfigurationsparameter verwendet:
Bereichsname = EXAMPLE.COM
DNS-Domainname = example.com
Master-KDC = kdc1.example.com
admin-Hauptelement = kws/admin
Onlinehilfe-URL = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Hinweis - Passen Sie die URL an, sodass sie auf den Bereich "Graphical Kerberos Administration Tool" verweist, wie in Onlinehilfe-URL im Graphical Kerberos Administration Tool beschrieben.
Bevor Sie beginnen
Für dieses Verfahren muss der Host zur Verwendung von DNS konfiguriert sein. Wenn dieser Master austauschbar sein soll, beachten Sie die Naming-Anweisungen unter Austauschen von Master-KDC und Slave-KDC.
Sie müssen die Bereichsnamen und Servernamen ändern. Eine vollständige Beschreibung dieser Datei finden Sie auf der Manpage krb5.conf(4).
kdc1 # cat /etc/krb5/krb5.conf [libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = kdc1.example.com admin_server = kdc1.example.com } [domain_realm] .example.com = EXAMPLE.COM # # if the domain name and realm name are equivalent, # this entry is not needed # [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 und alle Einträge von domain_realm geändert. Außerdem wurde die Zeile zur Definition der help_url bearbeitet.
Hinweis - Um die Verschlüsselungstypen zu beschränken, können Sie die Zeilen default_tkt_enctypes oder default_tgs_enctypes einstellen. Eine Beschreibung der Probleme beim Beschränken der Verschlüsselungstypen finden Sie unter Verwenden von Kerberos-Verschlüsselungstypen.
Sie müssen den Bereichsnamen ändern. Eine vollständige Beschreibung dieser Datei finden Sie auf der Manpage kdc.conf(4).
kdc1 # cat /etc/krb5/kdc.conf [kdcdefaults] kdc_ports = 88,750 [realms] EXAMPLE.COM = { profile = /etc/krb5/krb5.conf database_name = /var/krb5/principal admin_keytab = /etc/krb5/kadm5.keytab acl_file = /etc/krb5/kadm5.acl kadmind_port = 749 max_life = 8h 0m 0s max_renewable_life = 7d 0h 0m 0s sunw_dbprop_enable = true sunw_dbprop_master_ulogsize = 1000 }
In diesem Beispiel wurde die Bereichsnamendefinition im Abschnitt realms geändert. Im Abschnitt realms wurden außerdem Zeilen zum Aktivieren der inkrementellen Weitergabe und für die Anzahl der Aktualisierungen, die der KDC-Master in der Protokolldatei beibehält, hinzugefügt.
Hinweis - Um die Verschlüsselungstypen zu beschränken, können Sie die Zeilen permitted_enctypes, supported_enctypes oder master_key_type einstellen. Eine Beschreibung der Probleme beim Beschränken der Verschlüsselungstypen finden Sie unter Verwenden von Kerberos-Verschlüsselungstypen.
Der Befehl kdb5_util erstellt die KDC-Datenbank. In Verbindung mit der Option -s erstellt dieser Befehl eine Stash-Datei, die zur Authentifizierung des KDC dient, bevor die Dämonen kadmind und krb5kdc gestartet werden.
kdc1 # /usr/sbin/kdb5_util create -s Initializing database '/var/krb5/principal' for realm 'EXAMPLE.COM' master key name 'K/M@EXAMPLE.COM' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: <Type the key> Re-enter KDC database master key to verify: <Type it again>
Nach der Datenaufnahme sollte die Datei /etc/krb5/kadm5.acl alle Hauptelementnamen enthalten, die zur Verwaltung des KDC berechtigt sind.
kws/admin@EXAMPLE.COM *
Der Eintrag ermöglicht dem Hauptelement kws/admin im Bereich EXAMPLE.COM Hauptelemente oder Richtlinien im KDC zu ändern. Die Standardinstallation enthält ein Sternchen (*) zur Übereinstimmung mit allen admin-Hauptelementen. Diese Standardeinstellung kann ein Sicherheitsrisiko darstellen. Es ist sicherer, eine Liste aller admin-Hauptelemente einzuschließen. Weitere Informationen finden Sie auf der Manpage kadm5.acl(4).
Mit den nächsten Teilschritten erstellen Sie Hauptelemente, die vom Kerberos-Service verwendet werden.
kdc1 # /usr/sbin/kadmin.local kadmin.local:
Sie können so viele admin-Hauptelemente hinzufügen, wie Sie benötigen. Sie müssen mindestens ein admin-Hauptelement zum Abschließen des KDC-Konfigurationsprozesses hinzufügen. In diesem Beispiel wird ein kws/admin-Hauptelement hinzugefügt. Ersetzen Sie kws durch einen geeigneten Hauptelementnamen.
kadmin.local: addprinc kws/admin Enter password for principal kws/admin@EXAMPLE.COM:<Type the password> Re-enter password for principal kws/admin@EXAMPLE.COM: <Type it again> Principal "kws/admin@EXAMPLE.COM" created. kadmin.local:
Das kiprop-Hauptelement dient dazu, Aktualisierungen vom Master-KDC zu autorisieren.
kadmin.local: addprinc -randkey kiprop/kdc1.example.com Principal "kiprop/kdc1.example.com@EXAMPLE.COM" created. kadmin.local:
Diese Befehlssequenz erstellt eine spezielle Schlüsseltabellendatei mit Hauptelementeinträgen für kadmin/<FQDN> und changepw/<FQDN>. Diese Hauptelemente werden für den kadmind-Service und zum Ändern von Passwörtern verwendet. Wenn die Hauptelementinstanz ein Hostname ist, muss der FQDN unabhängig von der Schreibung des Domainnamens in der Datei /etc/resolv.conf in Kleinbuchstaben angegeben werden. Das kadmin/changepw-Hauptelement dient zum Ändern der Passwörter von Clients, auf denen keine Solaris-Version ausgeführt wird.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.example.com Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.example.com Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/changepw Entry for principal kadmin/changepw with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local:
Da Sie das kiprop-Hauptelement der Datei kadm5.keytab hinzugefügt haben, kann sich der Befehl kadmind beim Start der inkrementellen Weitergabe authentifizieren.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kiprop/kdc1.example.com Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local:
Sie haben alle erforderlichen Hauptelemente für die nächsten Schritte hinzugefügt.
kadmin.local: quit
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
Zu diesem Zeitpunkt können Sie Hauptelemente mit dem Graphical Kerberos Administration Tool hinzufügen. Dazu müssen Sie sich mit einem der zuvor in diesem Verfahren erstellten admin-Hauptelementnamen anmelden. Der Einfachheit halber wird hier das folgende Befehlszeilenbeispiel gezeigt.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Das Host-Hauptelement wird von kerberisierten Anwendungen wie kprop zur Weitergabe von Änderungen an Slave-KDCs verwendet. Dieses Hauptelement dient auch dazu, sicheren Remote-Zugriff auf den KDC-Server für Anwendungen wie ssh zu bieten. Wenn die Hauptelementinstanz ein Hostname ist, muss der FQDN unabhängig von der Schreibung des Domainnamens in der Datei /etc/resolv.conf in Kleinbuchstaben angegeben werden.
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
Dieses Hauptelement wird vom Dienstprogramm kclient während der Installation eines Kerberos-Clients verwendet. Sie müssen das Hauptelement nur hinzufügen, wenn Sie dieses Dienstprogramm verwenden möchten. Die Benutzer des Dienstprogramms kclient müssen dieses Passwort verwenden.
kadmin: addprinc clntconfig/admin Enter password for principal clntconfig/admin@EXAMPLE.COM:<Type the password> Re-enter password for principal clntconfig/admin@EXAMPLE.COM: <Type it again> Principal "clntconfig/admin@EXAMPLE.COM" created. kadmin:
Durch Hinzufügen des Host-Hauptelements zur Schlüsseltabellendatei kann es von Anwendungsservern wie sshd automatisch verwendet werden.
kadmin: ktadd host/kdc1.example.com Entry for principal host/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
Die Installation und Verwendung des Network Time Protocol (NTP) ist nicht obligatorisch. Alle Uhren müssen sich innerhalb der im Abschnitt libdefaults der Datei krb5.conf definierten Standardzeit befinden. Informationen zu NTP finden Sie unter Synchronisieren von Uhren zwischen KDCs und Kerberos-Clients.
Um für Redundanz zu sorgen, installieren Sie mindestens ein Slave-KDC. Genaue Anweisungen finden Sie unter So konfigurieren Sie ein Slave-KDC manuell.
Ab der Version Solaris 10 5/08 kann ein KDC mit folgendem Verfahren zur Verwendung eines LDAP-Datenservers konfiguriert werden.
In diesem Verfahren werden die folgenden Konfigurationsparameter verwendet:
Realm name = EXAMPLE.COM
DNS-Domainname = example.com
Master-KDC = kdc1.example.com
Verzeichnisserver = dsserver.example.com
admin-Hauptelement = kws/admin
FMRI für den LDAP-Service = svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1
Onlinehilfe-URL = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Hinweis - Passen Sie die URL an, sodass sie auf den Bereich "Graphical Kerberos Administration Tool" verweist, wie in Onlinehilfe-URL im Graphical Kerberos Administration Tool beschrieben.
Bevor Sie beginnen
Für dieses Verfahren muss der Host außerdem zur Verwendung von DNS konfiguriert sein. Um die Leistung zu verbessern, installieren Sie das KDC und den LDAP-Directory Service auf dem gleichen Server. Außerdem muss ein Verzeichnisserver ausgeführt werden. Das unten beschriebene Verfahren funktioniert mit Servern, die über die Sun Java Directory Server Enterprise Edition-Version verfügen.
Mit den folgenden Schritten konfigurieren Sie ein S10-KDC zur Verwendung des selbstsignierten Zertifikats von Directory Server 6.1. Wenn das Zertifikat abgelaufen ist, führen Sie die Anweisungen zum Erneuern von Zertifikaten unter To Manage Self-Signed Certificates in Sun Java System Directory Server Enterprise Edition 6.2 Administration Guide aus.
# /usr/sfw/bin/certutil -L -n defaultCert -d /export/sun-ds6.1/directory/alias \ -P 'slapd-' -a > /var/tmp/ds_cert.pem
# /usr/sfw/bin/certutil -N -d /var/ldap
# /usr/sfw/bin/certutil -A -n defaultCert -i /var/tmp/ds_cert -a -t CT -d /var/ldap
# pktool setpin keystore=nss dir=/var/ldap # chmod a+r /var/ldap/*.db # pktool import keystore=nss objtype=cert trust="CT" infile=/tmp/defaultCert.certutil.der \ label=defaultCert dir=/var/ldap
# ldapmodify -h dsserver.example.com -D "cn=directory manager" -f /usr/share/lib/ldif/kerberos.ldif
Fügen Sie die folgenden Einträge der Datei krb5.conf hinzu.
Fügen Sie einen Eintrag zum Definieren des database_module im Abschnitt realms hinzu.
database_module = LDAP
[dbmodules] LDAP = { ldap_kerberos_container_dn = "cn=krbcontainer,dc=example,dc=com" db_library = kldap ldap_kdc_dn = "cn=kdc service,ou=profile,dc=example,dc=com" ldap_kadmind_dn = "cn=kadmin service,ou=profile,dc=example,dc=com" ldap_cert_path = /var/ldap ldap_servers = ldaps://dsserver.example.com }
Dieser Befehl erstellt krbcontainer und mehrere andere Objekte. Er erstellt auch die /var/krb5/.k5.EXAMPLE.COM-Stash-Datei mit dem Master-Schlüssel.
# kdb5_ldap_util -D "cn=directory manager" create -P abcd1234 -r EXAMPLE.COM -s
Mit diesen Passwörtern stellt das KDC eine Verbindung zum Verzeichnisserver her. Das KDC verwendet verschiedene Rollen, abhängig vom entsprechenden Zugriffstyp.
# kdb5_ldap_util stashsrvpw "cn=kdc service,ou=profile,dc=example,dc=com" # kdb5_ldap_util stashsrvpw "cn=kadmin service,ou=profile,dc=example,dc=com"
dn: cn=kdc service,ou=profile,dc=example,dc=com cn: kdc service sn: kdc service objectclass: top objectclass: person userpassword: test123 dn: cn=kadmin service,ou=profile,dc=example,dc=com cn: kadmin service sn: kadmin service objectclass: top objectclass: person userpassword: test123
# ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif
# cat << EOF | ldapmodify -h dsserver.example.com -D "cn=directory manager" # Set kadmin ACL for everything under krbcontainer. dn: cn=krbcontainer,dc=example,dc=com changetype: modify add: aci aci: (target="ldap:///cn=krbcontainer,dc=example,dc=com")(targetattr="krb*")(version 3.0;\ acl kadmin_ACL; allow (all)\ userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";) # Set kadmin ACL for everything under the people subtree if there are # mix-in entries for krb princs: dn: ou=people,dc=example,dc=com changetype: modify add: aci aci: (target="ldap:///ou=people,dc=example,dc=com")(targetattr="krb*")(version 3.0;\ acl kadmin_ACL; allow (all)\ userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";) EOF
Sie müssen die Bereichsnamen und Servernamen ändern. Eine vollständige Beschreibung dieser Datei finden Sie auf der Manpage krb5.conf(4).
kdc1 # cat /etc/krb5/krb5.conf [libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = kdc1.example.com admin_server = kdc1.example.com } [domain_realm] .example.com = EXAMPLE.COM # # if the domain name and realm name are equivalent, # this entry is not needed # [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 und alle Einträge von domain_realm geändert. Außerdem wurde die Zeile zur Definition der help_url bearbeitet.
Hinweis - Um die Verschlüsselungstypen zu beschränken, können Sie die Zeilen default_tkt_enctypes oder default_tgs_enctypes einstellen. Eine Beschreibung der Probleme beim Beschränken der Verschlüsselungstypen finden Sie unter Verwenden von Kerberos-Verschlüsselungstypen.
Sie müssen den Bereichsnamen ändern. Eine vollständige Beschreibung dieser Datei finden Sie auf der Manpage kdc.conf(4).
kdc1 # cat /etc/krb5/kdc.conf [kdcdefaults] kdc_ports = 88,750 [realms] EXAMPLE.COM = { profile = /etc/krb5/krb5.conf database_name = /var/krb5/principal admin_keytab = /etc/krb5/kadm5.keytab acl_file = /etc/krb5/kadm5.acl kadmind_port = 749 max_life = 8h 0m 0s max_renewable_life = 7d 0h 0m 0s sunw_dbprop_enable = true sunw_dbprop_master_ulogsize = 1000 }
In diesem Beispiel wurde die Bereichsnamendefinition im Abschnitt realms geändert. Im Abschnitt realms wurden außerdem Zeilen zum Aktivieren der inkrementellen Weitergabe und für die Anzahl der Aktualisierungen, die der KDC-Master in der Protokolldatei beibehält, hinzugefügt.
Hinweis - Um die Verschlüsselungstypen zu beschränken, können Sie die Zeilen permitted_enctypes, supported_enctypes oder master_key_type einstellen. Eine Beschreibung der Probleme beim Beschränken der Verschlüsselungstypen finden Sie unter Verwenden von Kerberos-Verschlüsselungstypen.
Nach der Datenaufnahme sollte die Datei /etc/krb5/kadm5.acl alle Hauptelementnamen enthalten, die zur Verwaltung des KDC berechtigt sind.
kws/admin@EXAMPLE.COM *
Der Eintrag ermöglicht dem Hauptelement kws/admin im Bereich EXAMPLE.COM Hauptelemente oder Richtlinien im KDC zu ändern. Die Standardinstallation enthält ein Sternchen (*) zur Übereinstimmung mit allen admin-Hauptelementen. Diese Standardeinstellung kann ein Sicherheitsrisiko darstellen. Es ist sicherer, eine Liste aller admin-Hauptelemente einzuschließen. Weitere Informationen finden Sie auf der Manpage kadm5.acl(4).
Mit den nächsten Teilschritten erstellen Sie Hauptelemente, die vom Kerberos-Service verwendet werden.
kdc1 # /usr/sbin/kadmin.local kadmin.local:
Sie können so viele admin-Hauptelemente hinzufügen, wie Sie benötigen. Sie müssen mindestens ein admin-Hauptelement zum Abschließen des KDC-Konfigurationsprozesses hinzufügen. In diesem Beispiel wird ein kws/admin-Hauptelement hinzugefügt. Ersetzen Sie kws durch einen geeigneten Hauptelementnamen.
kadmin.local: addprinc kws/admin Enter password for principal kws/admin@EXAMPLE.COM:<Type the password> Re-enter password for principal kws/admin@EXAMPLE.COM: <Type it again> Principal "kws/admin@EXAMPLE.COM" created. kadmin.local:
Diese Befehlssequenz erstellt eine spezielle Schlüsseltabellendatei mit Hauptelementeinträgen für kadmin und changepw. Diese Hauptelemente werden für den kadmind-Service benötigt. Wenn die Hauptelementinstanz ein Hostname ist, muss der FQDN unabhängig von der Schreibung des Domainnamens in der Datei /etc/resolv.conf in Kleinbuchstaben angegeben werden.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.example.com Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.example.com Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/changepw Entry for principal kadmin/changepw with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local:
Sie haben alle erforderlichen Hauptelemente für die nächsten Schritte hinzugefügt.
kadmin.local: quit
Wenn die LDAP- und KDC-Server auf demselben Host ausgeführt werden und der LDAP-Service mit einem SMF-FMRI konfiguriert ist, fügen Sie dem LDAP-Service eine Abhängigkeit für die Kerberos-Dämonen hinzu. Dadurch wird der KDC-Service beim Neustart des LDAP-Service gestartet.
# svccfg -s security/krb5kdc svc:/network/security/krb5kdc> addpg dsins1 dependency svc:/network/security/krb5kdc> setprop dsins1/entities = \ fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1" svc:/network/security/krb5kdc> setprop dsins1/grouping = astring: "require_all" svc:/network/security/krb5kdc> setprop dsins1/restart_on = astring: "restart" svc:/network/security/krb5kdc> setprop dsins1/type = astring: "service" svc:/network/security/krb5kdc> exit
# svccfg -s security/kadmin svc:/network/security/kadmin> addpg dsins1 dependency svc:/network/security/kadmin> setprop dsins1/entities =\ fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1" svc:/network/security/kadmin> setprop dsins1/grouping = astring: "require_all" svc:/network/security/kadmin> setprop dsins1/restart_on = astring: "restart" svc:/network/security/kadmin> setprop dsins1/type = astring: "service" svc:/network/security/kadmin> exit
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
Zu diesem Zeitpunkt können Sie Hauptelemente mit dem Graphical Kerberos Administration Tool hinzufügen. Dazu müssen Sie sich mit einem der zuvor in diesem Verfahren erstellten admin-Hauptelementnamen anmelden. Der Einfachheit halber wird hier das folgende Befehlszeilenbeispiel gezeigt.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Das Host-Hauptelement wird von kerberisierten Anwendungen wie klist und kprop verwendet. Clients verwenden dieses Hauptelement beim Einhängen eines authentifizierten NFS-Dateisystems. Wenn die Hauptelementinstanz ein Hostname ist, muss der FQDN unabhängig von der Schreibung des Domainnamens in der Datei /etc/resolv.conf in Kleinbuchstaben angegeben werden.
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
Dieses Hauptelement wird vom Dienstprogramm kclient während der Installation eines Kerberos-Clients verwendet. Sie müssen das Hauptelement nur hinzufügen, wenn Sie dieses Dienstprogramm verwenden möchten. Die Benutzer des Dienstprogramms kclient müssen dieses Passwort verwenden.
kadmin: addprinc clntconfig/admin Enter password for principal clntconfig/admin@EXAMPLE.COM:<Type the password> Re-enter password for principal clntconfig/admin@EXAMPLE.COM: <Type it again> Principal "clntconfig/admin@EXAMPLE.COM" created. kadmin:
Durch Hinzufügen des Host-Hauptelements zur Schlüsseltabellendatei kann es automatisch verwendet werden.
kadmin: ktadd host/kdc1.example.com Entry for principal host/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
Die Installation und Verwendung des Network Time Protocol (NTP) ist nicht obligatorisch. Alle Uhren müssen sich innerhalb der im Abschnitt libdefaults der Datei krb5.conf definierten Standardzeit befinden. Informationen zu NTP finden Sie unter Synchronisieren von Uhren zwischen KDCs und Kerberos-Clients.
Um für Redundanz zu sorgen, installieren Sie mindestens ein Slave-KDC. Genaue Anweisungen finden Sie unter So konfigurieren Sie ein Slave-KDC manuell.
Mit diesem Verfahren wird ein neues Slave-KDC namens kdc2 konfiguriert. Außerdem wird die inkrementelle Weitergabe konfiguriert. In diesem Verfahren werden die folgenden Konfigurationsparameter verwendet:
Realm name = EXAMPLE.COM
DNS-Domainname = example.com
Master-KDC = kdc1.example.com
Slave-KDC = kdc2.example.com
admin-Hauptelement = kws/admin
Bevor Sie beginnen
Das Master-KDC muss konfiguriert sein. Wenn dieser Slave austauschbar ist, finden Sie spezielle Anweisungen unter Austauschen von Master-KDC und Slave-KDC.
Sie müssen sich mit einem der zuvor bei der Konfiguration des Master-KDC erstellten admin-Hauptelementnamen anmelden.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Damit der Slave ordnungsgemäß funktioniert, muss er über ein Host-Hauptelement verfügen. Wenn die Hauptelementinstanz ein Hostname ist, muss der FQDN unabhängig von der Schreibung des Domainnamens in der Datei /etc/resolv.conf in Kleinbuchstaben angegeben werden.
kadmin: addprinc -randkey host/kdc2.example.com Principal "host/kdc2.example.com@EXAMPLE.COM" created. kadmin:
Das kiprop-Hauptelement dient zur Autorisierung der inkrementellen Weitergabe vom Master-KDC.
kadmin: addprinc -randkey kiprop/kdc2.example.com Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created. kadmin:
kadmin: quit
Sie müssen einen Eintrag pro Slave hinzufügen. Eine vollständige Beschreibung dieser Datei finden Sie auf der Manpage krb5.conf(4).
kdc1 # cat /etc/krb5/krb5.conf . . [realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com }
Durch diesen Eintrag erhält das Master-KDC Anforderungen zur inkrementellen Weitergabe für den kdc2-Server.
kdc1 # cat /etc/krb5/kadm5.acl */admin@EXAMPLE.COM * kiprop/kdc2.example.com@EXAMPLE.COM p
kdc1 # svcadm restart network/security/kadmin
Dieser Schritt ist für alle Slave-KDCs obligatorisch, da der Master-KDC-Server über aktualisierte Informationen verfügt, die auf den KDC-Servern benötigt werden. Sie können ftp oder einen ähnlichen Transfermechanismus verwenden, um Kopien der folgenden Dateien vom Master-KDC zu übertragen:
/etc/krb5/krb5.conf
/etc/krb5/kdc.conf
Diese Informationen müssen auf allen Slave-KDC-Servern aktualisiert werden.
kdc2 # cat /etc/krb5/kpropd.acl host/kdc1.example.com@EXAMPLE.COM host/kdc2.example.com@EXAMPLE.COM
In unverändertem Zustand sieht die Datei kadm5.acl etwa folgendermaßen aus:
kdc2 # cat /etc/krb5/kadm5.acl */admin@___default_realm___ *
Wenn die Datei kiprop-Einträge enthält, entfernen Sie diese.
Ersetzen Sie den Eintrag sunw_dbprop_master_ulogsize durch einen Eintrag zur Definition von sunw_dbprop_slave_poll. Dieser Eintrag stellt eine Abfragezeit von 2 Minuten ein.
kdc1 # cat /etc/krb5/kdc.conf [kdcdefaults] kdc_ports = 88,750 [realms] EXAMPLE.COM= { profile = /etc/krb5/krb5.conf database_name = /var/krb5/principal admin_keytab = /etc/krb5/kadm5.keytab acl_file = /etc/krb5/kadm5.acl kadmind_port = 749 max_life = 8h 0m 0s max_renewable_life = 7d 0h 0m 0s sunw_dbprop_enable = true sunw_dbprop_slave_poll = 2m }
Sie müssen sich mit einem der zuvor bei der Konfiguration des Master-KDC erstellten admin-Hauptelementnamen anmelden.
kdc2 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Dieser Eintrag stellt die ordnungsgemäße Funktion von kprop und anderen kerberisierten Anwendungen sicher. Wenn die Hauptelementinstanz ein Hostname ist, muss der FQDN unabhängig von der Schreibung des Domainnamens in der Datei /etc/resolv.conf in Kleinbuchstaben angegeben werden.
kadmin: ktadd host/kdc2.example.com Entry for principal host/kdc2.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc2.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc2.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc2.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc2.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
Durch Hinzufügen des kiprop-Hauptelements zur Datei krb5.keytab kann sich der Befehl kpropd beim Start der inkrementellen Weitergabe authentifizieren.
kadmin: ktadd kiprop/kdc2.example.com Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
kdc2 # /usr/lib/krb5/kpropd
kdc2 # /usr/sbin/kdb5_util stash kdb5_util: Cannot find/read stored master key while reading master key kdb5_util: Warning: proceeding without master key Enter KDC database master key: <Type the key>
kdc2 # pkill kpropd
Die Installation und Verwendung des Network Time Protocol (NTP) ist nicht obligatorisch. Alle Uhren müssen sich innerhalb der im Abschnitt libdefaults der Datei krb5.conf definierten Standardzeit befinden. Informationen zu NTP finden Sie unter Synchronisieren von Uhren zwischen KDCs und Kerberos-Clients.
Wenn der krb5kdc-Service aktiviert ist, wird kpropd ebenfalls gestartet, sofern das System als Slave konfiguriert ist.
kdc2 # svcadm enable network/security/krb5kdc
Wenn das TGS-Hauptelement (Ticket Granting Service) nur über einen DES-Schlüssel verfügt, was bei KDC-Servern vor Solaris 10 der Fall ist, beschränkt der Schlüssel den Verschlüsselungstyp des TGT-Sitzungsschlüssels (Ticket Granting Ticket) auf DES. Wenn ein KDC auf eine Version aktualisiert wird, die zusätzliche stärkere Verschlüsselungstypen unterstützt, wird erwartungsgemäß die stärkere Verschlüsselung für alle vom KDC generierten Sitzungsschlüssel verwendet. Wenn das vorhandene TGS-Hauptelement nicht mit den neuen Verschlüsselungstypen aktualisiert wird, ist der TGT-Sitzungsschlüssel weiterhin auf DES beschränkt. Das folgende Verfahren aktualisiert den Schlüssel, sodass zusätzliche Verschlüsselungstypen verwendet werden können.
kdc1 % /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin: cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM
Beispiel 23-1 Aktualisieren der Hauptelementschlüssel von einem Master-Server
Wenn Sie auf dem KDC-Master als root angemeldet sind, können Sie das Hauptelement für den TGS-Service mit dem folgenden Befehl aktualisieren:
kdc1 # kadmin.local -q 'cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM'