Après avoir installé le logiciel SEAM, vous devez configurer les serveurs KDC. La configuration d'un centre de distribution de clés (KDC) maître et d'au moins un KDC esclave établit le service émettant les justificatifs d'identité. Ces justificatifs d'identité constituent la base de SEAM ; les KDC doivent donc être installés avant l'exécution d'autres tâches.
La principale différence entre un maître et un esclave est que seul le maître peut traiter les requêtes d'administration de base de données. Par exemple, le changement d'un mot de passe ou l'ajout d'un nouveau principal doit être effectué sur le KDC maître. Ces changements peuvent ensuite être propagés aux KDC esclaves. Les KDC maître et esclave génèrent des justificatifs d'identité ; cela procure une redondance au cas où le KDC maître soit incapable de répondre.
Pour donner un exemple complet, supposons que vous n'avez pas exécuté la procédure de préconfiguration. Si vous avez utilisé la procédure de préconfiguration en installant le logiciel, plusieurs des fichiers inclus dans cette procédure n'ont pas besoin d'être modifiés ; vous devriez toutefois consulter le contenu des fichiers.
Dans cette procédure, les paramètres de configuration suivants sont utilisés :
nom du secteur = ACME.COM
nom du domaine DNS = acme.com
KDC maître = kdc1.acme.com
KDC esclave = kdc2.acme.com
principal admin = kws/admin
URL d'aide en ligne = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Modifiez l'URL pour qu'il désigne la section "Outil d'administration SEAM" tel que décrit dans Installation de SEAM et notes de version.
Conditions préalables à la configuration d'un KDC maître.
Cette procédure exige que le logiciel du KDC maître soit installé. En outre, DNS doit être en cours d'exécution. Voir "Permutation de KDC maître et esclave" pour des directives de nomenclature particulières si ce maître doit être permutable.
Adoptez l'identité de superutilisateur sur le KDC maître.
Éditez le fichier de configuration Kerberos (krb5.conf).
Vous devez changer les noms des secteurs et des serveurs. Pour une description complète de ce fichier, consultez la page de manuel krb5.conf(4). Si vous avez installé le logiciel SEAM au moyen des fichiers de configuration, vérifiez le contenu du fichier plutôt que de le modifier.
kdc1 # cat /etc/krb5/krb5.conf
[libdefaults]
default_realm = ACME.COM
[realms]
ACME.COM = {
kdc = kdc1.acme.com
kdc = kdc2.acme.com
admin_server = kdc1.acme.com
}
[domain_realm]
.acme.com = ACME.COM
#
# si le nom du domaine et le nom du secteur sont équivalents,
# cette entrée n'est pas nécessaire
#
[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 correspondant à default_realm, kdc, admin_server et toutes les entrées domain_realm ont été modifiées. La ligne de default_realm est incluse pour rendre l'exemple complet, mais cette entrée ne sera pas créée par le processus d'installation si les noms de secteur et de domaine sont équivalents. En outre, la ligne définissant help_url a été modifiée.
Éditez le fichier de configuration KDC (kdc.conf).
Vous devez changer le nom du secteur. Pour une description complète de ce fichier, consultez la page de manuel kdc.conf(4). Si vous avez installé le logiciel SEAM au moyen des fichiers de configuration, vérifiez le contenu du fichier plutôt que de le modifier.
kdc1 # cat /etc/krb5/kdc.conf
[kdcdefaults]
kdc_ports = 88,750
[realms]
ACME.COM= {
profile = /etc/krb5/krb5.conf
database_name = /var/krb5/principal
admin_keytab = /var/krb5/kadm5.keytab
acl_file = /var/krb5/kadm5.acl
kadmind_port = 749
max_life = 8h 0m 0s
max_renewable_life = 7d 0h 0m 0s
}
|
Dans cet exemple, la définition du nom du secteur dans la section realms a été modifiée.
Créez la base de données KDC au moyen de kdb5_util.
La commande kdb5_util crée la base de données KDC et, lorsqu'elle est utilisée avec l'option -s , crée un fichier de réserve permettant d'authentifier le KDC pour lui-même avant le lancement des démons kadmind et krb5kdc.
kdc1 # /usr/krb5/sbin/kdb5_util create -r ACME.COM -s Initialisation de la base de données '/var/krb5/principal' du secteur 'ACME.COM' nom de la clé maîtresse 'K/M@ACME.COM' Il vous sera demandé d'entrer le mot de passe maître de la base de données. N'OUBLIEZ PAS ce mot de passe, il est essentiel. Entrez la clé maîtresse de la base de données KDC : <tapez la clé> Entrez à nouveau la clé maîtresse de la base de données KDC pour vérifier : <tapez-la à nouveau> |
L'option -r suivie du nom du secteur n'est pas requise si le nom du secteur est équivalent au nom du domaine de l'espace de nom du serveur.
Éditez le fichier de liste de contrôle d'accès Kerberos (kadm5.acl).
Une fois rempli, /etc/krb5/kadm5.acl devrait contenir tous les noms de principal autorisés à administrer le KDC. Voici un exemple de première entrée ajoutée :
kws/admin@ACME.COM * |
Cette entrée autorise le principal kws/admin dans le secteur ACME.COM à modifier les principaux ou les politiques dans le KDC. L'installation par défaut inclut un symbole "*" afin de désigner tous les principaux admin. Vu que cela pourrait présenter des risques de sécurité, il est plus sécuritaire d'inclure une liste de tous les principaux admin.
Lancez kadmin.local.
Les sous-étapes suivantes créent les principaux utilisés par SEAM.
kdc1 # /usr/krb5/sbin/kadmin.local kadmin.local: |
Ajoutez les principaux d'administration à la base de données avec 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 taper un nom de principal approprié au lieu de "kws."
kadmin.local: addprinc kws/admin Entrer le mot de passe du principal kws/admin@ACME.COM: <tapez le mot de passe> Entrer à nouveau le mot de passe du principal kws/admin@ACME.COM: <tapez-le à nouveau> Principal "kws/admin@ACME.COM" créé. kadmin.local: |
Créez un fichier de table de clés pour kadmin au moyen de kadmin.local.
Cette suite de commandes crée un fichier de table de clés spécial avec des entrées de principal pour kadmin et changepw. Ces principaux sont requis pour le service kadmind.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.acme.com Entrée pour le principal kadmin/kdc1.acme.com avec numéro de version de clé 3 et type de chiffrement DES-CBC-CRC ajoutée à la table de clés WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.acme.com Entrée pour le principal changepw/kdc1.acme.com avec numéro de version de clé 3 et type de chiffrement DES-CBC-CRC ajoutée à la table de clés WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: |
Quittez kadmin.local
Vous avez ajouté tous les principaux requis pour les étapes suivantes.
kadmin.local: quit |
Démarrez les démons Kerberos.
kdc1 # /etc/init.d/kdc start kdc1 # /etc/init.d/kdc.master start |
Démarrez kadmin.
Vous pouvez maintenant ajouter des principaux au moyen de l'outil d'administration SEAM. Cet exemple de ligne de commande est donné à des fins de simplicité. Vous devez vous connecter avec un des noms de principal admin créés antérieurement dans cette procédure.
kdc1 # /usr/krb5/sbin/kadmin -p kws/admin Entrer le mot de passe : <Entrez le mot de passe kws/admin> kadmin: |
Créez le principal de l'hôte du KDC maître avec kadmin.
Le principal de l'hôte est utilisé par les applications compatibles Kerberos (telles que klist et kprop) ainsi que par les services compatibles Kerberos (tels que ftp et telnet).
kadmin: addprinc -randkey host/kdc1.acme.com Principal "host/kdc1.acme.com@ACME.COM" créé. kadmin: |
Facultatif : Créez le principal racine du KDC maître avec kadmin.
Ce principal est employé pour le montage NFS authentifié, et peut donc ne pas être requis pour un KDC maître.
kadmin: addprinc root/kdc1.acme.com Entrer le mot de passe du principal root/kdc1.acme.com@ACME.COM: <tapez le mot de passe> Entrer à nouveau le mot de passe du principal root/kdc1.acme.com@ACME.COM: <tapez-le à nouveau> Principal "root/kdc1.acme.com@ACME.COM" créé. kadmin: |
Ajoutez le principal de l'hôte du KDC maître au fichier de table de clés du KDC maître.
L'ajout du principal de l'hôte au fichier de table de clés permet à ce principal d'être automatiquement utilisé.
kadmin: ktadd host/kdc1.acme.com kadmin: Entrée du principal host/kdc1.acme.com avec numéro de version de clé 3 et type de chiffrement DES-CBC-CRC ajoutée à la table de clés WRFILE:/etc/krb5/krb5.keytab kadmin: quit |
Quittez kadmin
kadmin: quit |
Ajoutez une entrée pour chaque KDC dans le fichier de configuration de propagation (kpropd.acl).
Pour une description complète de ce fichier, consultez la page de manuel kprop(1M). Si vous avez installé le logiciel SEAM au moyen des fichiers de configuration, vérifiez le contenu du fichier plutôt que de le modifier.
kdc1 # cat /etc/krb5/kpropd.acl host/kdc1.acme.com@ACME.COM host/kdc2.acme.com@ACME.COM |
Facultatif : Synchronisez l'horloge du KDC maître au moyen de NTP ou d'un autre mécanisme de synchronisation d'horloge.
Il n'est pas nécessaire d'installer et d'utiliser NTP, mais chaque horloge doit être réglée à l'heure par défaut définie dans la section libdefaults du fichier krb5.conf pour que l'authentification réussisse. Voir le "Synchronisation des horloges des KDC et des clients SEAM" pour de plus amples renseignements sur NTP.
Dans cette procédure, un nouveau KDC esclave appelé kdc3 est configuré. Afin de fournir un exemple complet, on suppose que vous n'avez pas effectué la procédure de préconfiguration en installant le logiciel ou n'avez pas défini kdc3 comme esclave en exécutant la procédure de préconfiguration. Si vous avez effectué la procédure et identifié kdc3 comme esclave, plusieurs des fichiers inclus dans cette procédure n'auront pas besoin d'être édités, mais vous devriez vérifier le contenu des fichiers.
Cette procédure utilise les paramètres de configuration suivants :
nom du secteur = ACME.COM
nom du domaine DNS = acme.com
KDC maître = kdc1.acme.com
kdc esclaves = kdc2.acme.com et kdc3.acme.com
principal admin = kws/admin
URL d'aide en ligne = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Modifier l'URL pour qu'il désigne la section "Outil d'administration SEAM", tel que décrit dans Installation de SEAM et Notes de version.
Conditions préalables à la configuration d'un KDC esclave.
Cette procédure exige que le KDC maître soit configuré et que le logiciel du KDC esclave SEAM soit installé sur kdc3. Voir "Permutation de KDC maître et esclave" pour des directives spéciales si cet esclave est permutable.
Sur le KDC maître : Adoptez l'identité de superutilisateur.
Sur le KDC maître : Démarrez kadmin.
Vous devez vous connecter avec un des noms de principal admin créés lors de la configuration du KDC maître.
kdc1 # /usr/krb5/sbin/kadmin -p kws/admin Entrer le mot de passe : <Entrez le mot de passe kws/admin> kadmin: |
Sur le KDC maître : Ajoutez les principaux de l'hôte esclave à la base de données, si cela n'est pas déjà fait, avec kadmin.
Pour que l'esclave fonctionne, il doit avoir un principal d'hôte.
kadmin: addprinc -randkey host/kdc3.acme.com Principal "host/kdc3@ACME.COM" créé. kadmin: |
Facultatif : Sur le KDC maître, créez le principal racine du KDC esclave avec kadmin.
Ce principal n'est requis que si l'esclave effectue un montage NFS d'un système de fichiers authentifié.
kadmin: addprinc kdc3.acme.com Entrer le mot de passe du principal root/kdc3.acme.com@ACME.COM: <tapez le mot de passe> Entrer à nouveau le mot de passe du principal root/kdc3.acme.com@ACME.COM: <tapez-le à nouveau> Principal "root/kdc3.acme.com@ACME.COM" créé. kadmin: |
Quittez kadmin
kadmin: quit |
Sur le KDC maître : Éditez le fichier de configuration Kerberos (krb5.conf).
Vous devez ajouter une entrée pour chaque esclave. Consultez la page de manuel krb5.conf(4) pour une description complète de ce fichier. Si vous avez défini kdc3 comme serveur esclave en effectuant la procédure de préconfiguration, vérifiez le contenu du fichier plutôt que de l'éditer.
kdc1 # cat /etc/krb5/krb5.conf
[libdefaults]
default_realm = ACME.COM
[realms]
ACME.COM = {
kdc = kdc1.acme.com
kdc = kdc2.acme.com
kdc = kdc3.acme.com
admin_server = kdc1.acme.com
}
[domain_realm]
.acme.com = ACME.COM
#
# si le nom du domaine et le nom du secteur sont équivalents,
# cette entrée n'est pas nécessaire
#
[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
|
Sur le KDC maître : Ajoutez une entrée pour chaque KDC esclave dans le fichier de configuration de propagation de la base de données ( kpropd.acl).
Pour une description complète de ce fichier, consultez la page de manuel kprop(1M). Si vous avez défini kdc3 comme serveur esclave en effectuant la procédure de préconfiguration, vérifiez le contenu du fichier plutôt que de l'éditer.
kdc1 # cat /etc/krb5/kpropd.acl host/kdc1.acme.com@ACME.COM host/kdc2.acme.com@ACME.COM host/kdc3.acme.com@ACME.COM |
Sur tous les esclaves : Copiez les fichiers d'administration KDC du serveur KDC maître.
Cette étape doit être effectuée sur tous les KDC esclaves, puisque le serveur KDC maître a actualisé des informations dont chaque serveur KDC a besoin. Si vous avez défini kdc3 comme serveur esclave en effectuant la procédure de préconfiguration, vérifiez le contenu des fichiers plutôt que de les copier. Vous pouvez utiliser ftp ou un mécanisme de transfert similaire pour obtenir des copies des fichiers suivants du maître :
/etc/krb5/krb5.conf
/etc/krb5/kdc.conf
/etc/krb5/kpropd.acl
Sur le nouvel esclave : Ajoutez le principal de l'hôte de l'esclave à la table de clés de l'esclave avec kadmin.
Vous devez vous connecter avec un des noms de principal admin créés lors de la configuration du KDC maître. Cette entrée permettra à kprop et à d'autres applications compatibles Kerberos de fonctionner.
kdc3 # /usr/krb5/sbin/kadmin -p kws/admin Entrer le mot de passe : <Entrez le mot de passe kws/admin> kadmin: ktadd host/kdc3.acme.com kadmin: Entrée du principal kdc3.acme.com avec numéro de version de clé 3 et type de chiffrement DES-CBC-CRC ajoutée à la table de clés WRFILE:/etc/krb5/krb5.keytab kadmin: quit |
Sur le KDC maître : Ajoutez les noms des KDC esclaves à la tâche cron, laquelle exécute automatiquement les sauvegardes, en exécutant crontab -e.
Ajoutez le nom de chaque serveur KDC esclave à la fin de la ligne kprop_script. Si vous avez défini kdc3 comme serveur esclave en effectuant la procédure de préconfiguration, vérifiez le contenu du fichier plutôt que de l'éditer.
10 3 * * * /usr/krb5/lib/kprop_script kdc2.acme.com kdc3.acme.com |
Vous pouvez aussi changer l'heure des sauvegardes. Cette configuration lance le processus de sauvegarde chaque jour à 3:10 AM.
Sur le KDC maître : Faites une copie de sauvegarde de la base de données et propagez-la avec kprop_script.
Si une copie de sauvegarde de la base de données est déjà disponible, il n'est pas nécessaire d'effectuer une nouvelle sauvegarde. Voir "Comment propager manuellement la base de données Kerberos vers les KDC esclaves" pour plus de détails.
kdc1 # /usr/krb5/lib/kprop_script kdc3.acme.com Propagation de la base de données à kdc3.acme.com: REUSSIE |
Sur le nouvel esclave : Créez un fichier de réserve avec kdb5_util.
kdc3 # réserve /usr/krb5/sbin/kdb5_util kdb5_util: Impossible de trouver/lire la clé principale enregistrée au cours de la lecture de la clé maîtresse kdb5_util: Avertissement : procédure amorcée sans clé maîtresse Entrez la clé maîtresse de la base de données KDC : <tapez la clé> |
Sur le nouvel esclave : Démarrez le démon KDC (krb5kdc).
kdc3 # /etc/init.d/kdc start |
Facultatif : Sur le nouvel esclave, synchronisez l'horloge du KDC maître au moyen de NTP ou d'un autre mécanisme de synchronisation d'horloge.
Il n'est pas nécessaire d'installer et d'utiliser NTP, mais chaque horloge doit être réglée à l'heure par défaut définie dans la section libdefaults du fichier krb5.conf pour que l'authentification réussisse. Voir "Synchronisation des horloges des KDC et des clients SEAM" pour de plus amples renseignements sur NTP.