Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris : services de sécurité Oracle Solaris 11 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. Utilisation de l'outil de génération de rapports d'audit de base (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. Authentification des services réseau (tâches)
17. Utilisation de Secure Shell (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
Procédure de configuration automatique d'un KDC maître
Procédure de configuration interactive d'un KDC maître
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 automatique d'un KDC esclave
Procédure de configuration interactive d'un KDC esclave
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
Procédure d'utilisation du service de sécurité générique avec Kerberos lors de l'exécution FTP
Configuration de serveurs NFS Kerberos
Procédure de configuration des serveurs NFS Kerberos
Procédure de création d'une table d'informations d'identification
Procédure d'ajout d'une entrée unique à la table d'informations d'identification
Procédure de mappage d'informations d'identification entre domaines
Procédure de 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
Procédure de configuration automatique d'un client Kerberos
Procédure de configuration interactive d'un client Kerberos
Procédure de configuration d'un client Kerberos pour un serveur Active Directory
Procédure de configuration manuelle d'un client Kerberos
Procédure de désactivation de la vérification du ticket d'octroi de tickets
Procédure d'accès à un système de fichiers NFS protégé par Kerberos en tant qu'utilisateur root
Procédure de configuration de la migration automatique des utilisateurs dans un domaine Kerberos
Procédure de configuration du verrouillage de compte
Synchronisation des horloges entre les KDC et les clients Kerberos
Echange d'un KDC maître et d'un KDC esclave
Procédure de 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
Procédure de 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
Procédure de 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
Procédure de 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
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
Procédure d'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
La base de données Kerberos est l'épine dorsale de Kerberos et sa maintenance doit s'effectuer correctement. Cette section présente certaines procédures d'administration de la base de données Kerberos, telles que la sauvegarde et la restauration de la base de données, la définition de la propagation incrémentielle ou parallèle, ainsi que l'administration du fichier stash. Les étapes de configuration initiale de la base de données sont détaillées dans la section Procédure de configuration manuelle d'un KDC maître.
La propagation de la base de données Kerberos du KDC maître aux KDC esclaves est l'une des tâches de configuration les plus importantes. Si la propagation n'est pas suffisamment fréquente, la synchronisation entre le KDC maître et les KDC esclaves est perdue. Par conséquent, en cas de défaillance du KDC maître, les KDC esclaves n'auront pas les informations de base de données les plus récentes. En outre, si un KDC esclave a été configuré en tant que KDC maître à des fins d'équilibrage de charge, les clients qui utilisent le KDC esclave en tant que KDC maître ne disposeront pas des dernières informations. Par conséquent, vous devez vous assurer que la propagation est suffisamment fréquente ou configurer les serveurs pour une propagation incrémentielle, en fonction de la fréquence à laquelle vous modifiez la base de données Kerberos. La propagation incrémentielle est préférable à une propagation manuelle parce qu'elle élimine les frais d'administration liés à la propagation manuelle de la base de données. En outre, une propagation complète de la base de données n'est pas totalement efficace.
Lorsque vous configurez le KDC maître, vous configurez la commande kprop_script dans une tâche cron pour sauvegarder automatiquement la base de données Kerberos dans le fichier dump /var/krb5/slave_datatrans et la propager vers les KDC esclaves. Mais, comme avec n'importe quel fichier, la base de données Kerberos peut être corrompue. Si la corruption de données se produit sur un KDC esclave, il se peut que vous ne le remarquiez pas, dans la mesure où la propagation automatique suivante de la base de données permet d'installer une nouvelle copie. Toutefois, si la corruption se produit sur le KDC maître, la base de données corrompue est propagée à l'ensemble des KDC esclaves pendant la propagation suivante. Et, la sauvegarde corrompue écrase le fichier de sauvegarde non altéré précédent sur le KDC maître.
Parce qu'il n'y a pas de copie de sauvegarde "sûre" dans ce scénario, vous devez également définir une tâche cron pour copier, à intervalles réguliers, le fichier dump slave_datatrans dans un autre emplacement ou pour créer une autre copie de sauvegarde à l'aide de la commande dump de kdb5_util. Puis, si votre base de données est endommagée, vous pouvez restaurer la sauvegarde la plus récente sur le KDC maître en utilisant la commande load de kdb5_util.
Autre remarque importante : puisque le fichier dump de la base de données contient les clés de principal, vous devez protéger le fichier de tout accès par des utilisateurs non autorisés. Par défaut, la base de données du fichier de vidage dispose d'autorisations de lecture et d'écriture uniquement en tant que root. Afin de les protéger contre tout accès non autorisé, utilisez uniquement la commande kprop pour propager la base de données du fichier de vidage, qui chiffre les données en cours de transfert. En outre, kprop propage les données uniquement aux KDC esclaves, ce qui réduit les risques d'envoi par inadvertance du fichier dump de la base de données à des hôtes non autorisés.
Attention - Si la base de données Kerberos est mise à jour après sa propagation et que la base de données est ensuite corrompue avant la propagation suivante, les KDC esclaves ne contiennent pas les mises à jour. Les mises à jour seront perdues. Pour cette raison, si vous ajoutez des mises à jour importantes de la base de données Kerberos avant une propagation programmée, vous devez propager manuellement la base de données afin d'éviter toute perte de données. |
Le fichier kpropd.acl sur un KDC esclave fournit une liste de noms d'hôte principal, un nom par ligne, qui spécifie les systèmes à partir desquels le KDC peut recevoir une base de données mise à jour par la propagation. Si le KDC maître est utilisé pour propager tous les KDC esclaves, le fichier kpropd.acl sur chaque esclave doit contenir uniquement le nom d'hôte principal du KDC maître.
Toutefois, l'installation de Kerberos et les étapes de configuration dans ce manuel vous indiquent que vous devez ajouter le même fichier kpropd.acl sur le KDC maître et les KDC esclaves. Ce fichier contient tous les noms de principaux d'hôtes KDC. Cette configuration vous permet de propager à partir de n'importe quel KDC, dans le cas où la propagation des KDC serait temporairement indisponible. De plus, en conservant une copie identique sur tous les KDC, la configuration est plus facile à gérer.
La commande kprop_script utilise la commande kprop pour propager la base de données Kerberos à d'autres KDC. Si la commande kprop_script est exécutée sur un KDC esclave, elle se propage à la copie de la base de données Kerberos du KDC esclave vers d'autres KDC. La commande kprop_script accepte une liste de noms d'hôte pour les arguments, séparés par des espaces, qui indiquent les KDC à propager.
Quand kprop_script est exécutée, elle crée une copie de sauvegarde de la base de données Kerberos pour le fichier /var/krb5/slave_datatrans et copie le fichier dans les KDC spécifiés. La base de données Kerberos est verrouillée jusqu'à ce que la propagation soit terminée.
Pour plus d'informations, reportez-vous à la section Procédure d'obtention des droits d'administration.
# /usr/sbin/kdb5_util dump [-verbose] [-d dbname] [filename [principals...]]
Imprime le nom de chaque principal et stratégie en cours de sauvegarde.
Définit le nom de la base de données à sauvegarder. Notez que vous pouvez spécifier un chemin d'accès absolu pour le fichier. Si l'option -d n'est pas spécifiée, le nom de la base de données par défaut est /var/krb5/principal.
Définit le fichier utilisé pour sauvegarder la base de données. Vous pouvez spécifier un chemin d'accès absolu pour le fichier. Si vous ne spécifiez pas un fichier, la base de données est transférée vers la sortie standard.
Définit une liste d'un ou plusieurs principaux (séparés par un espace) à sauvegarder. Vous devez utiliser des noms de principaux entièrement qualifiés. Si vous ne spécifiez aucun principal, l'intégralité de la base de données est sauvegardée.
Exemple 21-16 Sauvegarde de la base de données Kerberos
Dans l'exemple suivant, la base de données Kerberos est sauvegardée dans un fichier appelé dumpfile. Dans la mesure où l'option -verbose est spécifiée, chaque principal est imprimé lorsqu'il est sauvegardé.
# kdb5_util dump -verbose dumpfile kadmin/kdc1.eng.example.com@ENG.EXAMPLE.COM krbtgt/ENG.EXAMPLE.COM@ENG.EXAMPLE.COM kadmin/history@ENG.EXAMPLE.COM pak/admin@ENG.EXAMPLE.COM pak@ENG.EXAMPLE.COM changepw/kdc1.eng.example.com@ENG.EXAMPLE.COM
Dans l'exemple suivant, les principaux pak et pak/admin de la base de données Kerberos sont sauvegardés.
# kdb5_util dump -verbose dumpfile pak/admin@ENG.EXAMPLE.COM pak@ENG.EXAMPLE.COM pak/admin@ENG.EXAMPLE.COM pak@ENG.EXAMPLE.COM
kdc1 # svcadm disable network/security/krb5kdc kdc1 # svcadm disable network/security/kadmin
# /usr/sbin/kdb5_util load [-verbose] [-d dbname] [-update] [filename]
Imprime le nom de chaque principal et stratégie en cours de restauration.
Définit le nom de la base de données à restaurer. Notez que vous pouvez spécifier un chemin d'accès absolu pour le fichier. Si l'option -d n'est pas spécifiée, le nom de la base de données par défaut est /var/krb5/principal.
Met à jour la base de données existante. Dans le cas contraire, une nouvelle base de données est créée ou la base de données existante est écrasée.
Définit le fichier à partir duquel restaurer la base de données. Vous pouvez spécifier un chemin d'accès absolu pour le fichier.
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
Exemple 21-17 Restauration de la base de données Kerberos
Dans l'exemple suivant, la base de données appelée database1 est restaurée dans le répertoire courant à partir du fichier dumpfile. Comme l'option -update n'est pas spécifiée, la restauration crée une nouvelle base de données.
# kdb5_util load -d database1 dumpfile
Si votre base de données KDC a été créée sur un serveur exécutant la version Solaris 8 ou Solaris 9, la conversion de la base de données vous permet de tirer parti du format de base de données amélioré.
Avant de commencer
Assurez-vous que la base de données utilise un format ancien.
kdc1 # svcadm disable network/security/krb5kdc kdc1 # svcadm disable network/security/kadmin
kdc1 # mkdir /var/krb5/tmp kdc1 # chmod 700 /var/krb5/tmp
kdc1 # kdb5_util dump /var/krb5/tmp/prdb.txt
kdc1 # cd /var/krb5 kdc1 # mv princ* tmp/
kdc1 # kdb5_util load /var/krb5/tmp/prdb.txt
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
Les étapes de cette procédure peuvent être utilisées pour reconfigurer un KDC maître pour qu'il utilise la propagation incrémentielle. 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
KDC esclave = kdc2.example.com
admin principal = kws/admin
Vous devez activer la propagation incrémentielle et sélectionner le nombre de mises à jour que le KDC maître conserve dans le journal. Pour plus d'informations, 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 }
Le principal kiprop est utilisé pour authentifier le serveur KDC maître et autoriser les mises à jour depuis le KDC maître.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin: addprinc -randkey kiprop/kdc1.example.com Principal "kiprop/kdc1.example.com@EXAMPLE.COM" created. kadmin: addprinc -randkey kiprop/kdc2.example.com Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created. kadmin:
Cette entrée permet au KDC maître de recevoir des demandes de propagation incrémentielle du serveur kdc2.
kdc1 # cat /etc/krb5/kadm5.acl */admin@EXAMPLE.COM * kiprop/kdc2.example.com@EXAMPLE.COM p
Cette étape permet d'éviter que le KDC maître ne propage sa copie de la base de données KDC.
kdc1 # crontab -e #ident "@(#)root 1.20 01/11/06 SMI" # # The root crontab should be used to perform accounting data collection. # # The rtc command is run to adjust the real time clock if and when # daylight savings time changes. # 10 3 * * * /usr/sbin/logadm 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean #10 3 * * * /usr/lib/krb5kprop_script kdc2.example.sun.com #SUNWkr5ma
kdc1 # svcadm restart network/security/kadmin
Reportez-vous à la section Procédure de reconfiguration d'un KDC esclave pour l'utilisation de la propagation incrémentielle pour obtenir des instructions complètes.
La première nouvelle entrée permet active la propagation incrémentielle. La deuxième nouvelle entrée définit la durée d'interrogation sur deux minutes.
kdc2 # 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 }
kdc2 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> 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: quit
kdc2 # svcadm restart network/security/krb5_prop
Cette procédure montre comment reconfigurer un serveur KDC esclave exécutant la version Solaris 10 pour qu'il utilise la propagation complète. Normalement, la procédure est utilisée uniquement si le serveur KDC maître exécute la version Solaris 9 ou une version antérieure. Dans ce cas, le serveur KDC maître ne prend pas en charge la propagation incrémentielle, de sorte que le serveur esclave doit être configuré pour que la propagation fonctionne.
Dans cette procédure, un KDC esclave nommé kdc3 est configuré. 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 et kdc3.example.com
admin principal = kws/admin
Aide en ligne URL = http://download.oracle.com/docs/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
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 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/kdc3.example.com Principal "host/kdc3@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 kdc = kdc3.example.com admin_server = kdc1.example.com }
Reportez-vous à la page de manuel kprop(1M)pour obtenir une description complète de ce fichier.
kdc1 # cat /etc/krb5/kpropd.acl host/kdc1.example.com@EXAMPLE.COM host/kdc2.example.com@EXAMPLE.COM host/kdc3.example.com@EXAMPLE.COM
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
/etc/krb5/kpropd.acl
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.
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/kdc3.example.com Entry for principal host/kdc3.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/kdc3.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/kdc3.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/kdc3.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc3.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
Ajoutez le nom de chaque serveur KDC esclave à la fin de la ligne kprop_script.
10 3 * * * /usr/lib/krb5/kprop_script kdc2.example.com kdc3.example.com
Vous pouvez aussi modifier l'heure des sauvegardes. Cette entrée démarre le processus de sauvegarde tous les jours à 3h10.
kdc3 # svcadm enable network/security/krb5_prop
Si une copie de sauvegarde de la base de données est déjà disponible, il n'est pas nécessaire d'effectuer une autre sauvegarde. Reportez-vous à la section Procédure de propagation manuelle de la base de données Kerberos aux KDC esclaves pour obtenir des instructions.
kdc1 # /usr/lib/krb5/kprop_script kdc3.example.com Database propagation to kdc3.example.com: SUCCEEDED
kdc3 # /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.
kdc3 # svcadm enable network/security/krb5kdc
Si la propagation incrémentielle a été configurée, cette procédure permet de s'assurer que les informations sur le KDC esclave ont été mises à jour.
kdc1 # /usr/sbin/kproplog -h
kdc2 # /usr/sbin/kproplog -h
Exemple 21-18 Vérification de la synchronisation des serveurs KDC
L'exemple suivant est un exemple des résultats de l'exécution de la commande kproplog sur le serveur KDC maître.
kdc1 # /usr/sbin/kproplog -h Kerberos update log (/var/krb5/principal.ulog) Update log dump: Log version #: 1 Log state: Stable Entry block size: 2048 Number of entries: 2500 First serial #: 137966 Last serial #: 140465 First time stamp: Fri Nov 28 00:59:27 2004 Last time stamp: Fri Nov 28 01:06:13 2004
L'exemple suivant est un exemple des résultats de l'exécution de la commande kproplog sur le serveur KDC esclave.
kdc2 # /usr/sbin/kproplog -h Kerberos update log (/var/krb5/principal.ulog) Update log dump: Log version #: 1 Log state: Stable Entry block size: 2048 Number of entries: 0 First serial #: None Last serial #: 140465 First time stamp: None Last time stamp: Fri Nov 28 01:06:13 2004
Notez que les valeurs pour le dernier numéro de série et le dernier horodatage sont identiques, ce qui indique que l'esclave est synchronisé avec le serveur KDC maître.
Dans la sortie du serveur KDC esclave, notez qu'aucune entrée de mise à jour n'existe dans le journal de mise à jour du serveur KDC esclave. Il n'y a pas d'entrées dans la mesure où le serveur KDC esclave ne conserve pas de jeu de mises à jour, à l'inverse du serveur KDC maître. En outre, le serveur KDC esclave n'inclut pas d'informations sur le premier numéro de série ou le premier horodatage car il ne s'agit pas d'informations pertinentes.
Cette procédure vous indique comment propager la base de données Kerberos à l'aide de la commande kprop. Utilisez cette procédure si vous avez besoin de synchroniser un KDC esclave avec le KDC maître à l'extérieur de la tâche périodique cron. A la différence de kprop_script, vous pouvez utiliser kprop pour propager uniquement la sauvegarde actuelle de la base de données sans nouvelle sauvegarde préalable de la base de données Kerberos.
Remarque - N'utilisez pas cette procédure si vous utilisez la propagation incrémentielle.
Pour plus d'informations, reportez-vous à la section Procédure d'obtention des droits d'administration.
# /usr/sbin/kdb5_util dump /var/krb5/slave_datatrans
# /usr/lib/krb5/kprop -f /var/krb5/slave_datatrans slave-KDC
Exemple 21-19 Propagation manuelle de la base de données Kerberos au KDC esclave à l'aide de kprop_script
Si vous souhaitez sauvegarder la base de données et la propager à un KDC esclave à l'extérieur de la tâche périodique cron, vous pouvez également utiliser la commande kprop_script comme suit :
# /usr/lib/krb5/kprop_script slave-KDC
Dans la plupart des cas, le KDC maître est utilisé exclusivement pour propager sa base de données Kerberos aux KDC esclaves. Cependant, si votre site comporte beaucoup de KDC esclaves, vous pouvez envisager le partage de la charge du processus de propagation, aussi appelé propagation parallèle.
Remarque - N'utilisez pas cette procédure si vous utilisez la propagation incrémentielle.
La propagation parallèle autorise des KDC esclaves spécifiques à partager les fonctions de propagation avec le KDC maître. Ce partage permet à la propagation de s'effectuer plus rapidement et d'alléger la charge du KDC maître.
Par exemple, supposons que votre site dispose d'un KDC maître et de six KDC esclaves (illustrés dans la Figure 21-2), où slave-1 jusqu'à slave-3 correspond à un regroupement logique et slave-4 jusqu'à slave-6 correspond à un autre regroupement logique. Pour configurer une propagation parallèle, vous pouvez faire en sorte que le KDC maître propage la base de données à slave-1 et slave-4. A leur tour, ces KDC esclaves pourraient propager la base de données aux KDC esclaves dans leur groupe.
Figure 21-2 Exemple de configuration de propagation parallèle
Ce qui suit n'est pas une procédure détaillée étape par étape, mais une liste de haut niveau des étapes de configuration permettant d'activer la propagation parallèle. Ces étapes impliquent ce qui suit :
Sur le KDC maître, modification de l'entrée kprop_script dans sa tâche cron afin d'inclure les arguments uniquement pour les KDC esclaves qui effectueront la propagation suivante (les esclaves de propagation).
Sur chaque esclave de propagation, l'ajout d'une entrée kprop_script dans sa tâche cron, qui doit inclure les arguments pour que les esclaves réalisent la propagation. Pour que la propagation parallèle s'effectue, la tâche cron doit être configurée de sorte qu'elle s'exécute après que la nouvelle base de données Kerberos soit propagée à l'esclave de propagation.
Remarque - Le temps que prend un esclave de propagation à se propager dépend de facteurs tels que la bande passante du réseau et la taille de la base de données Kerberos.
Sur chaque KDC esclave, configurez les autorisations appropriées à propager. Cette étape s'effectue en ajoutant le nom de l'hôte principal de son KDC de propagation à son fichier kpropd.acl.
Exemple 21-20 Configuration d'une propagation parallèle
Dans la Figure 21-2, l'entrée kprop_script du KDC maître doit ressembler à ce qui suit :
0 3 * * * /usr/lib/krb5/kprop_script slave-1.example.com slave-4.example.com
L'entrée kprop_script du slave-1 doit ressembler à ce qui suit :
0 4 * * * /usr/lib/krb5/kprop_script slave-2.example.com slave-3.example.com
Notez que la propagation sur l'esclave démarre une heure après sa propagation par le maître.
Le fichier kpropd.acl sur les esclaves de propagation doit contenir l'entrée suivante :
host/master.example.com@EXAMPLE.COM
Le fichier kpropd.acl sur les KDC esclaves propagés par slave-1 contient l'entrée suivante :
host/slave-1.example.com@EXAMPLE.COM
Le fichier stash contient la clé principale de la base de données Kerberos, qui est créée automatiquement lorsque vous créez une base de données Kerberos. Si le fichier stash est corrompu, vous pouvez utiliser la commande stash de l'utilitaire kdb5_util pour remplacer le fichier corrompu. Le seul moment où vous devez supprimer un fichier stash est après la suppression de la base de données Kerberos avec la commande destroy de kdb5_util. Dans la mesure où le fichier stash n'est pas automatiquement supprimé avec la base de données, vous devez d'abord supprimer le fichier stash pour terminer le nettoyage.
# rm stash-file
Où stash-file est le chemin d'accès du fichier stash. Par défaut, le fichier stash est situé dans /var/krb5/.k5. realm.
Remarque - Si vous devez recréer le fichier stash, vous pouvez utiliser l'option -f de la commande kdb5_util.
Pour plus d'informations, reportez-vous à la section Procédure d'obtention des droits d'administration.
Cette commande ajoute une nouvelle clé principale, générée de façon aléatoire. L'option -s requiert que la nouvelle clé principale soit stockée dans le fichier keytab par défaut.
# kdb5_util add_mkey -s Creating new master key for master key principal 'K/M@EXAMPLE.COM' You will be prompted for a new 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>
# kdb5_util list_mkeys Master keys for Principal: K/M@EXAMPLE.COM KNVO: 2, Enctype: AES-128 CTS mode with 96-bit SHA-1 HMAC, No activate time set KNVO: 1, Enctype: DES cbc mode with RSA-MD5, Active on: Wed Dec 31 18:00:00 CST 2001 *
L'astérisque dans cette sortie identifie la clé principale actuellement active.
# date Fri Jul 1 17:57:00 CDT 2011 # kdb5_util use_mkey 2 'now+2days' # kdb5_util list_mkeys Master keys for Principal: K/M@EXAMPLE.COM KNVO: 2, Enctype: AES-128 CTS mode with 96-bit SHA-1 HMAC, Active on: Sun Jul 03 17:57:15 CDT 2011 KNVO: 1, Enctype: DES cbc mode with RSA-MD5, Active on: Wed Dec 31 18:00:00 CST 2001 *
Dans cet exemple, la date est définie deux jours plus tard pour laisser le temps à la nouvelle clé principale de se propager à tous les KDC. Ajustez la date selon les besoins de votre environnement.
# kadmin.local -q 'getprinc jimf' |egrep 'Principal|MKey' Authenticating as principal root/admin@EXAMPLE.COM with password. Principal: jimf@EXAMPLE.COM MKey: vno 2
Dans cet exemple, MKey: vno 2 indique que la clé secrète du principal est protégée par la nouvelle clé principale 2.
Si vous ajoutez un argument de modèle à la fin de la commande, les principaux qui correspondent au modèle seront mis à jour. Ajoutez l'option -n à la syntaxe de cette commande afin d'identifier les principaux qui seront mis à jour.
# kdb5_util update_princ_encryption -f -v Principals whose keys WOULD BE re-encrypted to master key vno 2: updating: host/kdc1.example.com@EXAMPLE.COM skipping: jimf@EXAMPLE.COM updating: kadmin/changepw@EXAMPLE.COM updating: kadmin/history@EXAMPLE.COM updating: kdc/admin@EXAMPLE.COM updating: host/kdc2.example.com@EXAMPLE.COM 6 principals processed: 5 updated, 1 already current
Lorsqu'une clé principale n'est plus utilisée pour protéger les clés secrètes des principaux, elle peut être purgée du principal de la clé principale. Cette commande ne purge pas la clé si celle-ci est encore utilisée par des principaux. Ajoutez l'option -n à cette commande pour vérifier que la clé principale appropriée sera purgée.
# kdb5_util purge_mkeys -f -v Purging the follwing master key(s) from K/M@EXAMPLE.COM: KNVO: 1 1 key(s) purged.
# kdb5_util list_mkeys Master keys for Principal: K/M@EXAMPLE.COM KNVO: 2, Enctype: AES-128 CTS mode with 96-bit SHA-1 HMAC, Active on: Sun Jul 03 17:57:15 CDT 2011 *
# kdb5_util stash Using existing stashed keys to update stash file.
# klist -kt /var/krb5/.k5.EXAMPLE.COM Keytab name: FILE:.k5.EXAMPLE.COM KVNO Timestamp Principal ---- ---------------- --------------------------------------------------------- 2 05/07/2011 15:08 K/M@EXAMPLE.COM