Ignorer les liens de navigation | |
Quitter l'aperu | |
Guide d'administration système : Services de sécurité |
Partie I Présentation de la sécurité
1. Services de sécurité (présentation)
Partie II Sécurité du système, des fichiers et des périphériques
2. Gestion de la sécurité de la machine (présentation)
3. Contrôle de l'accès aux systèmes (tâches)
4. Contrôle de l'accès aux périphériques (tâches)
5. Utilisation de l'outil de génération de rapports d'audit de base (tâches)
6. Contrôle de l'accès aux fichiers (tâches)
7. Utilisation d'Automated Security Enhancement Tool (Tâches)
Partie III Rôles, profils de droits et privilèges
8. Utilisation des rôles et des privilèges (présentation)
9. Utilisation du contrôle d'accès basé sur les rôles (tâches)
10. Contrôle d'accès basé sur les rôles (référence)
Partie IV Services cryptographiques
13. Structure cryptographique Oracle Solaris (présentation)
14. Structure cryptographique Oracle Solaris (tâches)
15. Structure de gestion des clés Oracle Solaris
Partie V Services d'authentification et communication sécurisée
16. Utilisation des services d'authentification (tâches)
19. Utilisation d'Oracle Solaris Secure Shell (tâches)
20. Oracle Solaris Secure Shell (référence)
21. Introduction au service Kerberos
22. Planification du service Kerberos
23. Configuration du service Kerberos (tâches)
Configuration du service Kerberos (liste des tâches)
Configuration de services Kerberos supplémentaires (liste des tâches)
Configuration des serveurs KDC
Procédure de configuration manuelle d'un KDC maître
Procédure de configuration d'un KDC pour l'utilisation d'un serveur de données LDAP
Procédure de configuration manuelle d'un KDC esclave
Procédure d'actualisation des clés TGS sur un serveur maître
Configuration de l'authentification inter-domaine
Procédure d'établissement de l'authentification inter-domaine hiérarchique
Procédure d'établissement de l'authentification inter-domaine directe
Configuration des serveurs d'application réseau Kerberos
Procédure de configuration d'un serveur d'application réseau Kerberos
Configuration de serveurs NFS Kerberos
Procédure de configuration des serveurs NFS Kerberos
Création d'une table d'informations d'identification
Ajout d'une entrée unique à la table d'informations d'identification
Procédure de mappage d'informations d'identification entre domaines
Configuration d'un environnement NFS sécurisé avec plusieurs modes de sécurité Kerberos
Configuration des clients Kerberos
Configuration des clients Kerberos (liste des tâches)
Procédure de création d'un profil d'installation de client Kerberos
Configuration automatique d'un client Kerberos
Configuration interactive d'un client Kerberos
Configuration manuelle d'un client Kerberos
Désactivation de la vérification du TGT
Accès à un système de fichiers NFS protégé par Kerberos en tant qu'utilisateur root
Configuration de la migration automatique des utilisateurs dans un domaine Kerberos
Synchronisation des horloges entre les KDC et les clients Kerberos
Échange d'un KDC maître et d'un KDC esclave
Configuration d'un KDC échangeable
Procédure d'échange d'un KDC maître et d'un KDC esclave
Administration de la base de données Kerberos
Sauvegarde et propagation de la base de données Kerberos
Sauvegarde de la base de données Kerberos
Procédure de restauration de la base de données Kerberos
Procédure de conversion d'une base de données Kerberos après une mise à niveau du serveur
Reconfiguration d'un KDC maître pour l'utilisation de la propagation incrémentielle
Procédure de reconfiguration d'un KDC esclave pour l'utilisation de la propagation incrémentielle
Procédure de configuration d'un KDC esclave pour l'utilisation de la propagation complète
Procédure de vérification de la synchronisation des serveurs KDC
Propagation manuelle de la base de données Kerberos aux KDC esclaves
Configuration d'une propagation parallèle
Étapes de configuration d'une propagation parallèle
Administration du fichier stash
Procédure de suppression d'un fichier stash
Gestion d'un KDC sur un serveur d'annuaire LDAP
Procédure de suppression d'un domaine d'un serveur d'annuaire LDAP
Renforcement de la sécurité des serveurs Kerberos
Procédure d'activation des applications utilisant Kerberos uniquement
Procédure de restriction de l'accès aux serveurs KDC
Utilisation d'un fichier dictionnaire pour augmenter la sécurité de mot de passe
24. Messages d'erreur et dépannage de Kerberos
25. Administration des principaux et des stratégies Kerberos (tâches)
26. Utilisation des applications Kerberos (tâches)
27. Service Kerberos (référence)
Partie VII Audit Oracle Solaris
28. Audit Oracle Solaris (présentation)
29. Planification de l'audit Oracle Solaris
30. Gestion de l'audit Oracle Solaris (tâches)
Une fois que vous avez installé le logiciel Kerberos, vous devez configurer les serveurs KDC. La configuration d'un KDC maître et d'au moins un KDC esclave fournit le service émetteur des informations d'identification. Ces informations d'identification étant la base du service Kerberos, les KDC doivent être installés avant de tenter d'effectuer d'autres tâches.
La différence principale entre un KDC maître et un KDC esclave est que seul le KDC maître peut traiter les demandes d'administration de base de données. Par exemple, la modification d'un mot de passe ou l'ajout d'un nouveau principal doivent s'effectuer sur le KDC maître. Ces modifications peuvent alors être propagées au KDC esclave. Les KDC esclave et maître génèrent tous deux des informations d'identification. Cette fonction fournit une redondance au cas où le KDC maître ne répond pas.
Tableau 23-1 Configuration de serveurs KDC (liste des tâches)
|
Dans cette procédure, la propagation incrémentielle est configurée. En outre, les paramètres de configuration suivants sont utilisés :
Nom de domaine = EXAMPLE.COM
Nom de domaine DNS = example.com
KDC maître = kdc1.example.com
admin principal = kws/admin
URL de l'aide en ligne = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Remarque - Réglez l'URL pour qu'elle pointe vers la section "Outil d'administration graphique Kerberos", comme décrit dans la section URL d'aide en ligne dans l'outil d'administration graphique de Kerberos .
Avant de commencer
Cette procédure nécessite que l'hôte soit configuré pour utiliser DNS. Pour obtenir des instructions de nommage spécifiques afin de déterminer si ce maître doit être échangeable, reportez-vous à la section Échange d'un KDC maître et d'un KDC esclave.
Vous devez modifier les noms de domaine et les noms de serveurs. Pour une description complète de ce fichier, reportez-vous à la page de manuel 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 }
Dans cet exemple, les lignes pour default_realm , kdc, admin_server et toutes les entrées domain_realm ont été modifiées. En outre, la ligne définissant help_url a été modifiée.
Remarque - Si vous voulez limiter les types de chiffrement, vous pouvez définir les lignes default_tkt_enctypes ou default_tgs_enctypes. Pour une description des problèmes liés à la restriction des types de chiffrement, reportez-vous à la section Utilisation des types de chiffrement Kerberos.
Vous devez modifier le nom de domaine. Pour une description complète de ce fichier, reportez-vous à la page de manuel 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 }
Dans cet exemple, la définition du nom de domaine dans la section realms a été modifiée. En outre, dans la section realms, des lignes ont été ajoutées pour activer la propagation incrémentielle et sélectionner le nombre de mises à jour que le KDC maître conserve dans le journal.
Remarque - Si vous voulez limiter les types de chiffrement, vous pouvez définir les lignes permitted_enctypes, supported_enctypes ou master_key_type. Pour une description des problèmes liés à la restriction des types de chiffrement, reportez-vous à la section Utilisation des types de chiffrement Kerberos.
La commande kdb5_util crée la base de données KDC. En outre, lorsqu'elle est utilisée avec l'option -s, cette commande crée un fichier stash utilisé pour authentifier le KDC à lui-même avant le lancement des démons kadmind et krb5kdc.
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>
Une fois renseigné, le fichier /etc/krb5/kadm5.acl doit contenir tous les noms de principaux autorisés à administrer le KDC.
kws/admin@EXAMPLE.COM *
L'entrée donne au principal kws/admin du domaine EXAMPLE.COM la possibilité de modifier les principaux ou des stratégies dans le KDC. L'installation par défaut comprend un astérisque (*) pour correspondre à tous principaux admin. Cette valeur par défaut peut constituer un risque de sécurité, il est donc plus sûr d'inclure une liste de tous les principaux admin. Pour plus d'informations, reportez-vous à la page de manuel kadm5.acl(4).
Les sous-étapes suivantes créent des principaux utilisés par le service Kerberos.
kdc1 # /usr/sbin/kadmin.local kadmin.local:
Vous pouvez ajouter autant de principaux admin que nécessaire. Vous devez ajouter au moins un principal admin pour terminer le processus de configuration du KDC. Pour cet exemple, un principal kws/admin est ajouté. Vous pouvez remplacer kws par le nom de principal approprié.
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:
Le principal kiprop est utilisé pour autoriser les mises à jour depuis le KDC maître.
kadmin.local: addprinc -randkey kiprop/kdc1.example.com Principal "kiprop/kdc1.example.com@EXAMPLE.COM" created. kadmin.local:
Cette séquence de commandes crée un fichier keytab avec les entrées de principal pour kadmin/<FQDN> et changepw/<FQDN>. Ces principaux sont nécessaires pour que le service kadmind et les mots de passe soient modifiés. Notez que lorsque l'instance de principal est un nom d'hôte, le nom de domaine complet (FQDN) doit être spécifié en minuscules, quelle que soit la casse du nom de domaine dans le fichier /etc/resolv.conf. Le principal kadmin/changepw est utilisé pour modifier les mots de passe à partir des clients qui n'exécutent pas une version de Solaris.
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:
L'ajout du principal kiprop au fichier kadm5.keytab permet à la commande kadmind de s'authentifier elle-même lors du lancement de la propagation incrémentielle.
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:
Vous avez ajouté toutes les identités requises pour les prochaines étapes.
kadmin.local: quit
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
À ce stade, vous pouvez ajouter les principaux à l'aide de l'outil d'administration graphique Kerberos. Pour ce faire, vous devez vous connecter avec l'un des noms de principal admin que vous avez précédemment créés dans cette procédure. Cependant, l'exemple de ligne de commande suivant est utilisé par souci de simplicité.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
L'hôte principal est utilisé par les applications utilisant Kerberos, notamment kprop, pour propager les modifications aux KDC esclaves. Ce principal est également utilisé pour fournir un accès à distance sécurisé au serveur KDC à l'aide d'applications, comme ssh. Notez que lorsque l'instance de principal est un nom d'hôte, le nom de domaine complet (FQDN) doit être spécifié en minuscules, quelle que soit la casse du nom de domaine dans le fichier /etc/resolv.conf.
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
Ce principal est utilisé par l'utilitaire kclient au cours de l'installation d'un client Kerberos. Si vous n'avez pas l'intention d'utiliser cet utilitaire, vous n'avez pas besoin d'ajouter le principal. Les utilisateurs de l'utilitaire kclient doivent utiliser ce mot de passe.
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:
L'ajout de l'hôte principal au fichier keytab autorise ce principal à être utilisé automatiquement par des serveurs d'application tels que sshd .
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
L'installation et l'utilisation du protocole NTP (Network Time Protocol) ne sont pas requises. Cependant, chaque horloge doit être réglée sur l'heure par défaut définie dans la section libdefaults du fichier krb5.conf pour que l'authentification s'exécute correctement. Pour plus d'informations sur le protocole NTP, reportez-vous à la section Synchronisation des horloges entre les KDC et les clients Kerberos.
Pour assurer la redondance, veillez à installer au moins un KDC esclave. Pour obtenir des instructions spécifiques, reportez-vous à la section Procédure de configuration manuelle d'un KDC esclave.
À partir de la version Solaris 10 5/08, un KDC peut être configuré pour utiliser un serveur de données LDAP à l'aide de la procédure suivante.
Dans cette procédure, les paramètres de configuration suivants sont utilisés :
Nom de domaine = EXAMPLE.COM
Nom de domaine DNS = example.com
KDC maître = kdc1.example.com
Serveur d'annuaire = dsserver.example.com
admin principal = kws/admin
FMRI pour le service LDAP = svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1
URL de l'aide en ligne = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Remarque - Réglez l'URL pour qu'elle pointe vers la section "Outil d'administration graphique Kerberos", comme décrit dans la section URL d'aide en ligne dans l'outil d'administration graphique de Kerberos .
Avant de commencer
Cette procédure nécessite également que l'hôte soit configuré pour utiliser DNS. Pour de meilleures performances, installez le KDC et le service d'annuaire LDAP sur le même serveur. En outre, un serveur d'annuaire doit être en cours d'exécution. La procédure ci-dessous fonctionne avec des serveurs utilisant la version Sun Java Directory Server Enterprise Edition.
Les étapes suivantes permettent de configurer un KDC S10 pour utiliser le certificat auto-signé Directory Server 6.1. Si le certificat est arrivé à expiration, suivez les instructions de renouvellement de certificat dans la section To Manage Self-Signed Certificates du Sun Java System Directory Server Enterprise Edition 6.2 Administration Guide.
# /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
Ajoutez les entrées suivantes au fichier krb5.conf.
Ajoutez une entrée pour définir le database_module sur la section realms.
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 }
Cette commande crée krbcontainer et plusieurs autres objets. Elle crée également un fichier stash de clé principale /var/krb5/.k5.EXAMPLE.COM.
# kdb5_ldap_util -D "cn=directory manager" create -P abcd1234 -r EXAMPLE.COM -s
Ces mots de passe sont utilisés par le KDC lorsqu'il se connecte au DS. Le KDC utilise des rôles différents en fonction du type d'accès utilisé par le KDC.
# 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
Vous devez modifier les noms de domaine et les noms de serveurs. Pour une description complète de ce fichier, reportez-vous à la page de manuel 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 }
Dans cet exemple, les lignes pour default_realm , kdc, admin_server et toutes les entrées domain_realm ont été modifiées. En outre, la ligne définissant help_url a été modifiée.
Remarque - Si vous voulez limiter les types de chiffrement, vous pouvez définir les lignes default_tkt_enctypes ou default_tgs_enctypes. Pour une description des problèmes liés à la restriction des types de chiffrement, reportez-vous à la section Utilisation des types de chiffrement Kerberos.
Vous devez modifier le nom de domaine. Pour une description complète de ce fichier, reportez-vous à la page de manuel 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 }
Dans cet exemple, la définition du nom de domaine dans la section realms a été modifiée. En outre, dans la section realms, des lignes ont été ajoutées pour activer la propagation incrémentielle et sélectionner le nombre de mises à jour que le KDC maître conserve dans le journal.
Remarque - Si vous voulez limiter les types de chiffrement, vous pouvez définir les lignes permitted_enctypes, supported_enctypes ou master_key_type. Pour une description des problèmes liés à la restriction des types de chiffrement, reportez-vous à la section Utilisation des types de chiffrement Kerberos.
Une fois renseigné, le fichier /etc/krb5/kadm5.acl doit contenir tous les noms de principaux autorisés à administrer le KDC.
kws/admin@EXAMPLE.COM *
L'entrée donne au principal kws/admin du domaine EXAMPLE.COM la possibilité de modifier les principaux ou des stratégies dans le KDC. L'installation par défaut comprend un astérisque (*) pour correspondre à tous principaux admin. Cette valeur par défaut peut constituer un risque de sécurité, il est donc plus sûr d'inclure une liste de tous les principaux admin. Pour plus d'informations, reportez-vous à la page de manuel kadm5.acl(4).
Les sous-étapes suivantes créent des principaux utilisés par le service Kerberos.
kdc1 # /usr/sbin/kadmin.local kadmin.local:
Vous pouvez ajouter autant de principaux admin que nécessaire. Vous devez ajouter au moins un principal admin pour terminer le processus de configuration du KDC. Pour cet exemple, un principal kws/admin est ajouté. Vous pouvez remplacer kws par le nom de principal approprié.
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:
Cette séquence de commande crée un fichier keytab avec les entrées de principaux pour kadmin et changepw. Ces principaux sont nécessaires pour le service kadmind. Notez que lorsque l'instance de principal est un nom d'hôte, le nom de domaine complet (FQDN) doit être spécifié en minuscules, quelle que soit la casse du nom de domaine dans le fichier /etc/resolv.conf.
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:
Vous avez ajouté toutes les identités requises pour les prochaines étapes.
kadmin.local: quit
Si LDAP et les serveurs KDC sont en cours d'exécution sur le même hôte et que le service LDAP est configuré avec un FMRI SMF, ajoutez une dépendance de service LDAP pour les démons Kerberos. Ceci redémarre le service KDC si le service LDAP est redémarré.
# 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
À ce stade, vous pouvez ajouter les principaux à l'aide de l'outil d'administration graphique Kerberos. Pour ce faire, vous devez vous connecter avec l'un des noms de principal admin que vous avez précédemment créés dans cette procédure. Cependant, l'exemple de ligne de commande suivant est utilisé par souci de simplicité.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
L'hôte principal est utilisé par les applications utilisant Kerberos, notamment klist et kprop. Les clients utilisent ce principal lors du montage d'un système de fichiers NFS authentifié. Notez que lorsque l'instance de principal est un nom d'hôte, le nom de domaine complet (FQDN) doit être spécifié en minuscules, quelle que soit la casse du nom de domaine dans le fichier /etc/resolv.conf.
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
Ce principal est utilisé par l'utilitaire kclient au cours de l'installation d'un client Kerberos. Si vous n'avez pas l'intention d'utiliser cet utilitaire, vous n'avez pas besoin d'ajouter le principal. Les utilisateurs de l'utilitaire kclient doivent utiliser ce mot de passe.
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:
L'ajout de l'hôte principal au fichier keytab autorise ce principal à être utilisé de manière automatique.
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
L'installation et l'utilisation du protocole NTP (Network Time Protocol) ne sont pas requises. Cependant, chaque horloge doit être réglée sur l'heure par défaut définie dans la section libdefaults du fichier krb5.conf pour que l'authentification s'exécute correctement. Pour plus d'informations sur le protocole NTP, reportez-vous à la section Synchronisation des horloges entre les KDC et les clients Kerberos.
Pour assurer la redondance, veillez à installer au moins un KDC esclave. Pour obtenir des instructions spécifiques, reportez-vous à la section Procédure de configuration manuelle d'un KDC esclave.
Dans cette procédure, un nouveau KDC esclave nommé kdc2 est configuré. En outre, la propagation incrémentielle est configurée. Cette procédure utilise les paramètres de configuration ci-dessous :
Nom de domaine = EXAMPLE.COM
Nom de domaine DNS = example.com
KDC maître = kdc1.example.com
KDC esclave = kdc2.example.com
admin principal = kws/admin
Avant de commencer
Le KDC maître doit être configuré. Pour obtenir des instructions spécifiques afin de déterminer si cet esclave doit être échangeable, reportez-vous à la section Échange d'un KDC maître et d'un KDC esclave.
Vous devez vous connecter à l'aide de l'un des noms de principal admin que vous avez créé lors de la configuration du KDC maître.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Pour que l'esclave fonctionne, il doit avoir un hôte principal. Notez que lorsque l'instance de principal est un nom d'hôte, le nom de domaine complet (FQDN) doit être spécifié en minuscules, quelle que soit la casse du nom de domaine dans le fichier /etc/resolv.conf.
kadmin: addprinc -randkey host/kdc2.example.com Principal "host/kdc2.example.com@EXAMPLE.COM" created. kadmin:
Le principal kiprop est utilisé pour autoriser la propagation incrémentielle à partir du KDC maître.
kadmin: addprinc -randkey kiprop/kdc2.example.com Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created. kadmin:
kadmin: quit
Vous devez ajouter une entrée pour chaque esclave. Pour une description complète de ce fichier, reportez-vous à la page de manuel 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 }
Cette entrée permet au KDC maître de recevoir des demandes de propagation incrémentielle pour le serveur kdc2.
kdc1 # cat /etc/krb5/kadm5.acl */admin@EXAMPLE.COM * kiprop/kdc2.example.com@EXAMPLE.COM p
kdc1 # svcadm restart network/security/kadmin
Cette étape doit être effectuée sur tous les KDC esclaves, car le serveur KDC maître a mis à jour des informations requises par chaque serveur KDC. Vous pouvez utiliser ftp ou tout autre mécanisme de transfert similaire pour extraire des copies des fichiers suivants du KDC maître :
/etc/krb5/krb5.conf
/etc/krb5/kdc.conf
Ces informations doivent être mises à jour sur tous les serveurs KDC esclaves.
kdc2 # cat /etc/krb5/kpropd.acl host/kdc1.example.com@EXAMPLE.COM host/kdc2.example.com@EXAMPLE.COM
Un fichier kadm5.acl non modifié ressemble à ce qui suit :
kdc2 # cat /etc/krb5/kadm5.acl */admin@___default_realm___ *
Si le fichier contient des entrées kiprop, supprimez-les.
Remplacez l'entrée sunw_dbprop_master_ulogsize par une entrée définissant sunw_dbprop_slave_poll. L'entrée définit la durée d'interrogation sur 2 minutes.
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 }
Vous devez vous connecter à l'aide de l'un des noms de principal admin que vous avez créé lors de la configuration du KDC maître.
kdc2 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Cette entrée permet à kprop et à d'autres applications utilisant Kerberos de fonctionner. Notez que lorsque l'instance de principal est un nom d'hôte, le nom de domaine complet (FQDN) doit être spécifié en minuscules, quelle que soit la casse du nom de domaine dans le fichier /etc/resolv.conf.
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:
L'ajout du principal kiprop au fichier krb5.keytab permet à la commande kpropd de s'authentifier elle-même lors du lancement de la propagation incrémentielle.
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
L'installation et l'utilisation du protocole NTP (Network Time Protocol) ne sont pas requises. Cependant, chaque horloge doit être réglée sur l'heure par défaut définie dans la section libdefaults du fichier krb5.conf pour que l'authentification s'exécute correctement. Pour plus d'informations sur le protocole NTP, reportez-vous à la section Synchronisation des horloges entre les KDC et les clients Kerberos.
Lorsque le service krb5kdc est activé, kpropd démarre également si le système est configuré en tant qu'esclave.
kdc2 # svcadm enable network/security/krb5kdc
Lorsque le principal de TGS (Ticket Granting Service, service d'octroi de tickets) n'a qu'une clé DES, ce qui est le cas pour les serveurs KDC créés avant la version Solaris10, la clé restreint le type de chiffrement de la clé de session du TGT à DES. Si un KDC est mis à jour pour une version prenant en charge d'autres types de chiffrement renforcés, l'administrateur peut s'attendre à ce que le chiffrement renforcé soit utilisé pour toutes les clés de session générées par le KDC. En revanche, si les clés du principal de TGS ne sont pas actualisées pour inclure les nouveaux types de chiffrement, la clé de session du TGT restera limitée à DES. La procédure suivante actualise la clé afin que d'autres types de chiffrement puissent être utilisés.
kdc1 % /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin: cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM
Exemple 23-1 Actualisation des clés de principal à partir d'un serveur maître
Si vous n'êtes pas connecté au KDC maître en tant que root, vous pouvez actualiser le principal de TGS à l'aide de la commande suivante :
kdc1 # kadmin.local -q 'cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM'