Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris 11.1 : Services de sécurité Oracle Solaris 11.1 Information Library (Français) |
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. Service d'analyse antivirus (tâches)
5. Contrôle de l'accès aux périphériques (tâches)
6. Vérification de l'intégrité des fichiers à l'aide de BART (tâches)
7. Contrôle de l'accès aux fichiers (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. Attributs de sécurité dans Oracle Solaris (référence)
Partie IV Services cryptographiques
11. Structure cryptographique (présentation)
12. Structure cryptographique (tâches)
13. Structure de gestion des clés
Partie V Services d'authentification et communication sécurisée
14. Utilisation de modules d'authentification enfichables
15. Utilisation de Secure Shell
17. Utilisation de l'authentification simple et de la couche de sécurité
18. Authentification des services réseau (tâches)
19. Introduction au service Kerberos
20. Planification du service Kerberos
21. 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
Configuration automatique d'un KDC maître
Configuration interactive d'un KDC maître
Configuration manuelle d'un KDC maître
Configuration d'un KDC pour l'utilisation d'un serveur de données LDAP
Configuration automatique d'un KDC esclave
Configuration interactive d'un KDC esclave
Configuration de l'authentification inter-domaine
Etablissement de l'authentification inter-domaine hiérarchique
Etablissement de l'authentification inter-domaine directe
Configuration des serveurs d'application réseau Kerberos
Configuration d'un serveur d'application réseau Kerberos
Utilisation du service de sécurité générique avec Kerberos lors de l'exécution FTP
Configuration de serveurs NFS Kerberos
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
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)
Création d'un profil d'installation de client Kerberos
Configuration automatique d'un client Kerberos
Configuration interactive d'un client Kerberos
Configuration d'un client Kerberos pour un serveur Active Directory
Configuration manuelle d'un client Kerberos
Désactivation de la vérification du ticket d'octroi de tickets
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
Configuration du verrouillage de compte
Renouvellement automatique de tous les tickets d'octroi de tickets
Synchronisation des horloges entre les KDC et les clients Kerberos
Echange d'un KDC maître et d'un KDC esclave
Configuration d'un KDC échangeable
Echange 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
Restauration de la base de données Kerberos
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
Reconfiguration d'un KDC esclave pour l'utilisation de la propagation incrémentielle
Configuration d'un KDC esclave pour l'utilisation de la propagation complète
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
Etapes de configuration d'une propagation parallèle
Administration du fichier stash
Suppression d'un fichier stash
Utilisation d'une nouvelle clé principale
Gestion d'un KDC sur un serveur d'annuaire LDAP
Association des attributs de principaux Kerberos dans un type de classe d'objet non Kerberos
Suppression d'un domaine d'un serveur d'annuaire LDAP
Renforcement de la sécurité des serveurs Kerberos
Restriction de l'accès aux serveurs KDC
Utilisation d'un fichier dictionnaire pour augmenter la sécurité de mot de passe
22. Messages d'erreur et dépannage de Kerberos
23. Administration des principaux et des stratégies Kerberos (tâches)
24. Utilisation des applications Kerberos (tâches)
25. Service Kerberos (référence)
Partie VII Audit dans Oracle Solaris
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 aux KDC esclaves. Les KDC esclaves 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 21-1 Configuration de serveurs KDC (liste des tâches)
|
Dans la version Oracle Solaris 11, un KDC maître peut être configuré automatiquement à l'aide de la procédure suivante.
Avant de commencer
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Exécutez l'utilitaire kdcmgr pour créer le KDC. Vous devez fournir à la fois le mot de passe de la clé maître et le mot de passe du principal d'administration.
kdc1# kdcmgr -a kws/admin -r EXAMPLE.COM create master Starting server setup --------------------------------------- Setting up /etc/krb5/kdc.conf Setting up /etc/krb5/krb5.conf 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 password> Re-enter KDC database master key to verify: <Type it again> Authenticating as principal root/admin@EXAMPLE.COM with password. WARNING: no policy specified for kws/admin@EXAMPLE.COM; defaulting to no policy 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. Setting up /etc/krb5/kadm5.acl. --------------------------------------------------- Setup COMPLETE. kdc1#
Dans la version Oracle Solaris, un KDC maître peut être configuré de manière interactive à l'aide de la procédure suivante.
Avant de commencer
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Exécutez l'utilitaire kdcmgr pour créer le KDC. Vous devez fournir à la fois le mot de passe de la clé maître et le mot de passe du principal d'administration.
kdc1# kdcmgr create master Starting server setup --------------------------------------- Enter the Kerberos realm: EXAMPLE.COM Setting up /etc/krb5/kdc.conf Setting up /etc/krb5/krb5.conf 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 password> Re-enter KDC database master key to verify: <Type it again> Enter the krb5 administrative principal to be created: kws/admin Authenticating as principal root/admin@EXAMPLE.COM with password. WARNING: no policy specified for kws/admin@EXAMPLE.COM; defaulting to no policy 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. Setting up /etc/krb5/kadm5.acl. --------------------------------------------------- Setup COMPLETE. kdc1#
Exemple 21-1 Affichage de l'état d'un serveur KDC
La commande kdcmgr statuspeut être utilisée pour afficher des informations sur un serveur KDC maître ou esclave.
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://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
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 Echange d'un KDC maître et d'un KDC esclave.
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
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://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html }
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 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 les 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).
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:
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
A 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 service de noms.
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 Configuration manuelle d'un KDC esclave.
Utilisez la procédure ci-dessous pour configurer un KDC pour l'utilisation d'un serveur de données LDAP.
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://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
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 Directory Server Enterprise Edition 7.0.
Vous devez prendre le rôle root sur le serveur KDC. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Les étapes suivantes permettent de configurer un KDC de version pour qu'il utilise le certificat auto-signé Directory Server. Si le certificat est arrivé à expiration, suivez les instructions de renouvellement de certificat dans la section To Manage Self-Signed Certificates .
# /export/sun-ds6.1/ds6/bin/dsadm show-cert -F der /export/sun-ds6.1/directory2 \ defaultCert > /tmp/defaultCert.cert.der
# 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
Cet exemple suppose que l'entrée e cn=directory manager dispose de privilèges d'administration.
/usr/bin/ldapsearch -Z -P /var/ldap -D "cn=directory manager" \ -h dsserver.example.com -b "" -s base objectclass='*' Subject: "CN=dsserver.example.com,CN=636,CN=Directory Server,O=Example Corporation
Notez que l'entrée CN=dsserver.example.com doit inclure le nom d'hôte complet, pas une version abrégée.
# 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://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html }
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 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 les 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:
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. Cette dépendance 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
A 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'host 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 service de noms.
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 Configuration manuelle d'un KDC esclave.
Dans la version Oracle Solaris, un KDC esclave peut être configuré automatiquement à l'aide de la procédure suivante.
Avant de commencer
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Exécutez l'utilitaire kdcmgr pour créer le KDC. Vous devez fournir à la fois le mot de passe de la clé maître et le mot de passe du principal d'administration.
kdc2# kdcmgr -a kws/admin -r EXAMPLE.COM create -m kdc1 slave Starting server setup --------------------------------------- Setting up /etc/krb5/kdc.conf Setting up /etc/krb5/krb5.conf Obtaining TGT for kws/admin ... Password for kws/admin@EXAMPLE.COM: <Type the password> Setting up /etc/krb5/kadm5.acl. Setting up /etc/krb5/kpropd.acl. Waiting for database from master... Waiting for database from master... Waiting for database from master... 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 password> --------------------------------------------------- Setup COMPLETE. kdc2#
Utilisez la procédure suivante pour configurer un KDC esclave en mode interactif.
Avant de commencer
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Exécutez l'utilitaire kdcmgr pour créer le KDC. Vous devez fournir à la fois le mot de passe de la clé maître et le mot de passe du principal d'administration.
kdc1# kdcmgr create slave Starting server setup --------------------------------------- Enter the Kerberos realm: EXAMPLE.COM What is the master KDC's host name?: kdc1 Setting up /etc/krb5/kdc.conf Setting up /etc/krb5/krb5.conf Obtaining TGT for kws/admin ... Password for kws/admin@EXAMPLE.COM: <Type the password> Setting up /etc/krb5/kadm5.acl. Setting up /etc/krb5/kpropd.acl. Waiting for database from master... Waiting for database from master... Waiting for database from master... 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 password> --------------------------------------------------- Setup COMPLETE. kdc2#
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 Echange d'un KDC maître et d'un KDC esclave.
Vous devez prendre le rôle root sur le serveur KDC. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
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 service de noms.
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 deux 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 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 service de noms.
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 # svcadm enable network/security/krb5_prop
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>
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.
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 Solaris 10, 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 21-2 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'