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 manuelle d'un KDC esclave
Actualisation des clés TGS sur un serveur maître
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
Les clients Kerberos incluent tout hôte qui n'est pas un serveur KDC sur le réseau et qui doit utiliser les services Kerberos. Cette section décrit les procédures d'installation d'un client Kerberos, ainsi que des informations spécifiques sur l'utilisation de l'authentification root pour monter des systèmes de fichiers NFS.
La liste des tâches ci-dessous comprend toutes les procédures associées à la configuration des clients Kerberos. Chaque ligne comprend un identificateur de tâche, une description de la raison pour laquelle cette tâche doit être effectuée, suivie d'un lien vers la tâche.
|
Cette procédure permet de créer un profil kclient à utiliser lorsque vous installez un client Kerberos. L'utilisation du profil kclient permet de réduire les risques de faute de frappe. En outre, le profil permet de réduire l'intervention de l'utilisateur par rapport au processus interactif.
Un exemple de profil kclient pourrait ressembler à l'exemple suivant :
client# cat /net/denver.example.com/export/install/profile REALM EXAMPLE.COM KDC kdc1.example.com ADMIN clntconfig FILEPATH /net/denver.example.com/export/install/krb5.conf NFS 1 DNSLOOKUP none
Avant de commencer
Cette procédure utilise un profil d'installation. Reportez-vous à la section Création d'un profil d'installation de client Kerberos.
Pour effectuer cette tâche, vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Vous devez fournir le mot de passe pour le principal clntconfig afin de terminer le processus.
client# /usr/sbin/kclient -p /net/denver.example.com/export/install/profile Starting client setup --------------------------------------------------- kdc1.example.com Setting up /etc/krb5/krb5.conf. Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> nfs/client.example.com entry ADDED to KDC database. nfs/client.example.com entry ADDED to keytab. host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE. client#
Exemple 21-8 Configuration automatique d'un client Kerberos avec des remplacements de ligne de commande
L'exemple suivant remplace les paramètres DNSARG et KDC définis dans le profil d'installation.
# /usr/sbin/kclient -p /net/denver.example.com/export/install/profile\ -d dns_fallback -k kdc2.example.com Starting client setup --------------------------------------------------- kdc1.example.com Setting up /etc/krb5/krb5.conf. Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> nfs/client.example.com entry ADDED to KDC database. nfs/client.example.com entry ADDED to keytab. host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE. client#
Cette procédure utilise l'utilitaire d'installation kclient sans profil d'installation. Dans la version Oracle Solaris 11, l'utilitaire kclient a amélioré la facilité d'utilisation et le travail avec les serveurs Active Directory. Reportez-vous à la section Configuration d'un client Kerberos pour un serveur Active Directory pour plus d'informations. Reportez-vous à l'Exemple 21-10 pour un exemple d'exécution de kclient sur une version précédente.
Avant de commencer
Pour effectuer cette tâche, vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Vous devez fournir les informations suivantes :
Nom de domaine Kerberos
Nom d'hôte KDC maître
Nom d'hôte KDC esclave
Domaines à mettre en correspondance avec le domaine local
Noms de service PAM et options à utiliser pour l'authentification Kerberos
Si ce système est un client d'un serveur KDC qui n'exécute pas une version d'Oracle Solaris vous devez définir le type de serveur qui exécute le KDC. Les serveurs disponibles sont : Microsoft Active Directory, serveur KDC MIT, serveur KDC Heimdal et serveur KDC Shishi.
Si vous utilisez DNS pour les recherches Kerberos, vous devez saisir l'option de recherche DNS que vous souhaitez utiliser. Les options valides sont dns_lookup_kdc, dns_lookup_realm et dns_fallback. Pour plus d'informations sur ces valeurs, reportez-vous à la page de manuel krb5.conf(4).
Ces informations sont ajoutées au fichier de configuration /etc/krb5/krb5.conf.
S'il existe des KDC esclaves dans le domaine, vous devez entrer les noms d'hôte des KDC esclaves. Ces informations sont utilisées pour créer d'autres entrées KDC dans le fichier de configuration du client.
Normalement, des clés de service ou d'hôte ne sont pas requise, sauf si le système client héberge des services utilisant Kerberos.
Si le client est membre d'un cluster, vous devez fournir le nom logique du cluster. Le nom d'hôte logique est utilisé lorsque vous créez les clés de service, ce qui est requis lors de l'hébergement de services Kerberos de clusters.
Ce mappage permet à d'autres domaines d'appartenir au domaine par défaut du client.
Les clés de service NFS doivent être créées si le client héberge des services NFS utilisant Kerberos.
Cela vous permet de définir les services PAM utilisant Kerberos pour l'authentification. Vous devez entrer le nom du service et un indicateur indiquant comment l'authentification Kerberos est utilisée. Les options d'indicateur valides sont les suivantes :
first : utilise l'authentification Kerberos en premier, puis utilise uniquement UNIX si l'authentification Kerberos échoue
only : utilise l'authentification Kerberos uniquement
optional : utilise l'authentification Kerberos de manière optionnelle
Cette option permet d'utiliser des informations de configuration spécifiques lorsque les arguments de kclient ne sont pas suffisants.
Exemple 21-9 Exécution de l'utilitaire d'installation kclient
client# /usr/sbin/kclient Starting client setup --------------------------------------------------- Is this a client of a non-Solaris KDC ? [y/n]: n No action performed. Do you want to use DNS for kerberos lookups ? [y/n]: n No action performed. Enter the Kerberos realm: EXAMPLE.COM Specify the KDC hostname for the above realm: kdc1.example.com Note, this system and the KDC's time must be within 5 minutes of each other for Kerberos to function. Both systems should run some form of time synchronization system like Network Time Protocol (NTP). Do you have any slave KDC(s) ? [y/n]: y Enter a comma-separated list of slave KDC host names: kdc2.example.com Will this client need service keys ? [y/n]: n No action performed. Is this client a member of a cluster that uses a logical host name ? [y/n]: n No action performed. Do you have multiple domains/hosts to map to realm ? [y/n]: y Enter a comma-separated list of domain/hosts to map to the default realm: engineering.example.com, \ example.com Setting up /etc/krb5/krb5.conf. Do you plan on doing Kerberized nfs ? [y/n]: y Do you want to update /etc/pam.conf ? [y/n]: y Enter a comma-separated list of PAM service names in the following format: service:{first|only|optional}: xscreensaver:first Configuring /etc/pam.conf. Do you want to copy over the master krb5.conf file ? [y/n]: n No action performed. --------------------------------------------------- Setup COMPLETE.
Exemple 21-10 Exécution de l'utilitaire d'installation kclient dans la version Oracle Solaris 10
La sortie suivante indique les résultats de l'exécution de la commande kclient.
client# /usr/sbin/kclient Starting client setup --------------------------------------------------- Do you want to use DNS for kerberos lookups ? [y/n]: n No action performed. Enter the Kerberos realm: EXAMPLE.COM Specify the KDC hostname for the above realm: kdc1.example.com Setting up /etc/krb5/krb5.conf. Enter the krb5 administrative principal to be used: clntconfig/admin Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> Do you plan on doing Kerberized nfs ? [y/n]: n host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Do you want to copy over the master krb5.conf file ? [y/n]: y Enter the pathname of the file to be copied: \ /net/denver.example.com/export/install/krb5.conf Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE ! #
Cette procédure utilise l'utilitaire d'installation kclient sans profil d'installation.
Avant de commencer
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
client# sharectl set -p ddns_enable=true smb
L'option -T permet de sélectionner un type de serveur KDC. Dans ce cas, un serveur Active Directory est sélectionné.
client# kclient -T ms_ad
Par défaut, vous devez fournir le mot de passe pour le principal d'administration.
Exemple 21-11 Configuration d'un client Kerberos pour un serveur Active Directory à l'aide de kclient
La sortie suivante indique les résultats de l'exécution de la commande kclient à l'aide de l'argument de type de serveur ms_ad (Microsoft Active Directory). Le client sera joint au domaine Active Directory appelé EXAMPLE.COM.
client# /usr/sbin/kclient -T ms_ad Starting client setup --------------------------------------------------- Attempting to join 'CLIENT' to the 'EXAMPLE.COM' domain. Password for Administrator@EXAMPLE.COM: <Type the password> Forest name found: example.com Looking for local KDCs, DCs and global catalog servers (SVR RRs). Setting up /etc/krb5/krb5.conf Creating the machine account in AD via LDAP. --------------------------------------------------- Setup COMPLETE. #
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
Serveur NFS = denver.example.com
Client = client.example.com
admin principal = kws/admin
Utilisateur principal = mre
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
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Pour modifier le fichier de version Kerberos par défaut, vous devez modifier les noms de domaine et les noms de serveur. Vous devez également identifier le chemin d'accès aux fichiers d'aide pour gkadmin.
kdc1 # cat /etc/krb5/krb5.conf [libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.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
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.
Par défaut, le domaine Kerberos pour le mappage KDC est effectué dans l'ordre suivant :
Définition de la section realms dans krb5.conf.
Recherche des enregistrements SRV dans le DNS.
Vous pouvez modifier ce comportement en ajoutant dns_lookup_kdc ou dns_fallback à la section libdefaults du fichier krb5.conf. Pour plus d'informations, reportez-vous à la page de manuel krb5.conf(4). Notez que les références sont toujours tentées en premier.
Par défaut, le mappage de l'hôte au domaine est déterminé dans l'ordre suivant :
Si le KDC prend en charge les références, le KDC peut indiquer au client le domaine auquel appartient l'hôte.
Par la définition de domain_realm dans le fichier krb5.conf.
Le nom de domaine DNS de l'hôte.
Le domaine par défaut.
Vous pouvez modifier ce comportement en ajoutant dns_lookup_kdc ou dns_fallback à la section libdefaults du fichier krb5.conf. Pour plus d'informations, reportez-vous à la page de manuel krb5.conf(4). Notez que les références sont toujours tentées en premier.
L'installation et l'utilisation du protocole NTP (Network Time Protocol) ne sont pas requises. Cependant, chaque horloge doit être synchronisée avec l'heure sur le serveur KDC dans une différence maximum définie par la relation clockskew dans le fichier krb5.conf pour que l'opération d'authentification réussisse. Pour plus d'informations sur le protocole NTP, reportez-vous à la section Synchronisation des horloges entre les KDC et les clients Kerberos.
Vous pouvez utiliser l'outil d'administration graphique Kerberos pour ajouter un principal, comme expliqué dans la section Création d'un principal Kerberos. Pour ce faire, vous devez vous connecter à l'aide de l'un des noms de principal admin que vous avez créés lorsque vous avez configuré le KDC maître. Toutefois, l'exemple ci-après montre comment ajouter les principaux requis à l'aide de la ligne de commande.
denver # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Vous devez créer un principal d'utilisateur uniquement si aucun principal n'est affecté à l'utilisateur associé à cet hôte.
kadmin: addprinc mre Enter password for principal mre@EXAMPLE.COM: <Type the password> Re-enter password for principal mre@EXAMPLE.COM: <Type it again> kadmin:
Cette étape est nécessaire pour que le client dispose d'un accès root aux systèmes de fichiers montés à l'aide du service NFS. Cette étape est également requise si l'accès root non interactif est nécessaire, par exemple pour l'exécution des tâches cron en tant que root.
Vous pouvez ignorer cette étape si le client ne nécessite pas l'accès root à un système de fichiers distant monté à l'aide du service NFS. Le principal de root doit être un principal à deux composants, avec pour second composant le nom d'hôte du système du client Kerberos, pour éviter la création d'un principal root à l'échelle du domaine. 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 root/client.example.com Principal "root/client.example.com" created. kadmin: ktadd root/client.example.com Entry for principal root/client.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 root/client.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 root/client.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 root/client.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal root/client.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
Le principal host est utilisé par les services d'accès à distance pour fournir l'authentification. L'identité permet à root d'acquérir des informations d'identification, s'il n'en existe pas déjà dans le fichier keytab.
kadmin: addprinc -randkey host/denver.example.com Principal "host/denver.example.com@EXAMPLE.COM" created. kadmin: ktadd host/denver.example.com Entry for principal host/denver.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/denver.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/denver.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/denver.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/denver.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
Cette étape n'est requise que si le client a besoin d'accéder aux systèmes de fichiers NFS à l'aide de l'authentification Kerberos.
kadmin: ktadd nfs/denver.example.com Entry for principal nfs/denver.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 nfs/denver.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 nfs/denver.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 nfs/denver.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal nfs/denver.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
Modifiez le fichier /etc/nfssec.conf et supprimez le "#" placé devant les modes de sécurité Kerberos.
# cat /etc/nfssec.conf . . # # Uncomment the following lines to use Kerberos V5 with NFS # krb5 390003 kerberos_v5 default - # RPCSEC_GSS krb5i 390004 kerberos_v5 default integrity # RPCSEC_GSS krb5p 390005 kerberos_v5 default privacy # RPCSEC_GSS
Si le service svc:/network/dns/client:default n'est pas activé, activez-le. Pour plus d'informations, reportez-vous à la page de manuel resolv.conf(4).
# svcadm restart network/rpc/gss
Pour plus d'informations, reportez-vous à la page de manuel warn.conf(4).
Exemple 21-12 Configuration d'un client Kerberos à l'aide d'un KDC non Solaris
Un client Kerberos peut être configuré pour fonctionner avec un KDC non Solaris. Dans ce cas, une ligne doit être incluse dans le fichier /etc/krb5/krb5.conf à la section realms. Cette ligne change le protocole utilisé lorsque le client est en cours de communication avec le serveur de changement de mot de passe Kerberos. Le format de cette ligne est le suivant.
[realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com kpasswd_protocol = SET_CHANGE }
Exemple 21-13 Enregistrements DNS TXT pour le mappage de l'hôte et du nom de domaine au domaine Kerberos
@ IN SOA kdc1.example.com root.kdc1.example.com ( 1989020501 ;serial 10800 ;refresh 3600 ;retry 3600000 ;expire 86400 ) ;minimum IN NS kdc1.example.com. kdc1 IN A 192.146.86.20 kdc2 IN A 192.146.86.21 _kerberos.example.com. IN TXT "EXAMPLE.COM" _kerberos.kdc1.example.com. IN TXT "EXAMPLE.COM" _kerberos.kdc2.example.com. IN TXT "EXAMPLE.COM"
Exemple 21-14 Enregistrements DNS SRV pour les emplacements de serveur Kerberos
Cet exemple définit les enregistrements pour l'emplacement des KDC, du serveur admin et du serveur kpasswd, respectivement.
@ IN SOA kdc1.example.com root.kdc1.example.com ( 1989020501 ;serial 10800 ;refresh 3600 ;retry 3600000 ;expire 86400 ) ;minimum IN NS kdc1.example.com. kdc1 IN A 192.146.86.20 kdc2 IN A 192.146.86.21 _kerberos._udp.EXAMPLE.COM IN SRV 0 0 88 kdc2.example.com _kerberos._tcp.EXAMPLE.COM IN SRV 0 0 88 kdc2.example.com _kerberos._udp.EXAMPLE.COM IN SRV 1 0 88 kdc1.example.com _kerberos._tcp.EXAMPLE.COM IN SRV 1 0 88 kdc1.example.com _kerberos-adm._tcp.EXAMPLE.COM IN SRV 0 0 749 kdc1.example.com _kpasswd._udp.EXAMPLE.COM IN SRV 0 0 749 kdc1.example.com
Exemple 21-15 Configuration d'un client Solaris pour la prise en charge d'un KDC à plusieurs maîtres
Le service Kerberos Microsoft Active Directory fournit un KDC qui s'exécute sur plusieurs maîtres. Afin qu'un client Solaris puisse mettre à jour les informations, la déclaration admin_server ou kpasswd_server dans /etc/krb5/krb5.conf doit être mise à jour pour répertorier tous les serveurs. Cet exemple montre comment autoriser le client à mettre à jour les informations sur le KDC partagé entre kdc1 et kdc2.
[realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com admin_server = kdc2.example.com }
Cette procédure permet de désactiver le contrôle de sécurité qui vérifie que le KDC de l'hôte principal stocké dans le fichier /etc/krb5/krb5.keytab local est le même KDC qui a émis le ticket d'octroi de tickets. Cette vérification permet d'empêcher les attaques par usurpation de DNS. Cependant, pour certaines configurations client, l'hôte principal peut ne pas être disponible, et cette vérification doit alors être désactivée pour que le client puisse fonctionner. Voici les configurations requérant que cette vérification soit désactivée :
L'adresse IP du client est affectée de manière dynamique. Par exemple, un client DHCP.
Le client n'est pas configuré pour héberger les services, de sorte qu'aucun hôte principal n'a été créé.
La clé d'hôte n'est pas stockée sur le client.
Avant de commencer
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Si l'option verify_ap_req_nofail est définie sur false, le processus de vérification du TGT n'est pas activé. Pour plus d'informations sur cette option, reportez-vous à la page de manuel krb5.conf(4).
client # cat /etc/krb5/krb5.conf [libdefaults] default_realm = EXAMPLE.COM verify_ap_req_nofail = false ...
Remarque - L'option verify_ap_req_nofail peut être saisie dans la section [libdefaults] ou [realms] du fichier krb5.conf. Si la valeur de l'option est dans la section [libdefaults], le paramètre est utilisé pour tous les domaines. Si la valeur de l'option est dans la section [realms], le paramètre s'applique uniquement au domaine défini.
Cette procédure permet à un client d'accéder à un système de fichiers NFS requérant l'authentification Kerberos avec le privilège d'ID root, en particulier lorsque le système de fichiers NFS est partagé avec des options comme -o sec=krb5,root=client1.sun.com.
Vous pouvez utiliser l'outil d'administration graphique Kerberos pour ajouter un principal, comme expliqué dans la section Création d'un principal Kerberos. Pour ce faire, vous devez vous connecter à l'aide de l'un des noms de principal admin que vous avez créés lorsque vous avez configuré le KDC maître. Toutefois, l'exemple ci-après montre comment ajouter les principaux requis à l'aide de la ligne de commande.
denver # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Ce principal permet de fournir un accès équivalent à root aux systèmes de fichiers montés NFS requérant l'authentification Kerberos. Le principal root doit être un principal à deux composants, avec pour second composant le nom d'hôte du système du client Kerberos, pour éviter la création d'un principal root à l'échelle du domaine. 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 root/client.example.com Principal "root/client.example.com" created. kadmin:
Cette étape est nécessaire si vous avez ajouté un principal root afin que le client puisse avoir l'accès root aux systèmes de fichiers montés à l'aide du service NFS. Cette étape est également requise si l'accès root non interactif est nécessaire, par exemple pour l'exécution des tâches cron en tant que root.
kadmin: ktadd root/client.example.com Entry for principal root/client.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 root/client.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 root/client.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 root/client.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal root/client.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
Les utilisateurs ne disposant pas d'un principal Kerberos peuvent être automatiquement migrés vers un domaine Kerberos existant. La migration s'effectue à l'aide de la structure PAM pour le service en cours d'utilisation par la superposition du module pam_krb5_migrate dans la pile d'authentification du service dans les fichiers de configuration PAM.
Dans cet exemple, les noms de services PAM gdm et other sont configurés pour utiliser la migration automatique. Les paramètres de configuration suivants sont utilisés :
Nom de domaine = EXAMPLE.COM
KDC maître = kdc1.example.com
Machine hébergeant le service de migration = server1.example.com
Principal du service de migration = host/server1.example.com
Avant de commencer
Configurez server1 en tant que client Kerberos du domaine EXAMPLE.COM. Pour plus d'informations, reportez-vous à la section Configuration des clients Kerberos.
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
L'hôte principal de service dans le fichier keytab de server1 est utilisé pour authentifier le serveur auprès du KDC maître.
server1 # klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- ------------------------------------------------ 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM
# cat /etc/pam.d/gdm . . auth definitive pam_user_policy.so.1 auth requisite pam_authtok_get.so.1 auth required pam_dhkeys.so.1 auth sufficient pam_krb5.so.1 auth requisite pam_unix_auth.so.1 auth required pam_unix_cred.so.1 auth optional pam_krb5_migrate.so.1
Il est possible de définir le délai d'expiration du mot de passe des nouveaux comptes Kerberos sur l'heure actuelle (maintenant), afin de forcer la modification immédiate du mot de passe Kerberos. Pour définir l'heure d'expiration sur l'heure actuelle, ajoutez l'option expire_pw aux lignes utilisant le module pam_krb5_migrate. Pour plus d'informations, reportez-vous à la page de manuel pam_krb5_migrate(5).
# cat /etc/pam.d/gdm . . auth optional pam_krb5_migrate.so.1 expire_pw
Cet ajout prévoit l'expiration du mot de passe de Kerberos afin de bloquer l'accès.
# cat /etc/pam.d/other . . # # Default definition for Account management # Used when service name is not explicitly mentioned for account management # account requisite pam_roles.so.1 account definitive pam_user_policy.so.1 account required pam_krb5.so.1 account required pam_unix_account.so.1 account required pam_tsol_account.so.1 #
Cet ajout permet la mise à jour des mots de passe lorsque ceux-ci expirent.
# cat /etc/pam.d/other . . # # Default definition for Password management # password include pam_authtok_common password sufficient pam_krb5.so.1 password required pam_authtok_store.so.1
Les entrées suivantes accordent des privilèges de migration et de consultation au principal de service host/server1.example.com pour tous les utilisateurs, excepté l'utilisateur root. Il est important que les utilisateurs qui ne doivent pas être migrés soient répertoriés dans le fichier kadm5.acl à l'aide du privilège U. Ces entrées doivent figurer avant l'entrée "permit all" ou ui. Pour plus d'informations, reportez-vous à la page de manuel kadm5.acl(4).
kdc1 # cat /etc/krb5/kadm5.acl host/server1.example.com@EXAMPLE.COM U root host/server1.example.com@EXAMPLE.COM ui * */admin@EXAMPLE.COM *
Cette étape permet au démon kadmind d'utiliser les nouvelles entrées kadm5.acl.
kdc1 # svcadm restart network/security/kadmin
Les entrées suivantes permettent au démon kadmind d'utiliser le service PAM k5migrate pour valider le mot de passe utilisateur UNIX pour les comptes qui nécessitent une migration.
# grep k5migrate /etc/pam.conf k5migrate auth required pam_unix_auth.so.1 k5migrate account required pam_unix_account.so.1
% /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Dans l'exemple suivant, la sous-commande add_policy est utilisée pour créer une stratégie nommée default. Trois échecs d'authentification en l'espace de 300 secondes déclenchera un verrouillage de compte de 900 secondes.
kadmin: add_policy -maxfailure 3 -failurecountinterval "300 seconds"\ -lockoutduration "900 seconds" default
kadmin: quit
Exemple 21-16 Déverrouillage d'un principal verrouillé
Dans l'exemple suivant, un principal d'utilisateur est déverrouillé :
/usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin: modify_principal -unlock principal
Avant de commencer
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Ajoutez une entrée similaire à la suivante pour renouveler le ticket d'octroi de tickets (TGT, ticket-granting ticket) 30 minutes avant son expiration et consigner le message sur le terminal utilisateurs lorsque le renouvellement réussit ou échoue :
# cat /etc/krb5/warn.conf * renew:log terminal 30m
# svcadm restart network/security/ktkt_warn
Exemple 21-17 Configuration des messages d'expiration de TGT sur un serveur
L'exemple ci-après illustre plusieurs modes de configuration du renouvellement et du message système pour les TGT.
# cat /etc/krb5/warn.conf # # renew the TGT 30 minutes before expiration and send message to users terminal # gtb@EXAMPLE.COM renew:log terminal 30m # # send a warning message to a specific email address 20 minutes before TGT expiration # mre@EXAMPLE.COM mail 20m mre@example2.com # # renew the TGT 20 minutes before expiration and send an email message on failure # bricker@EXAMPLE.COM renew:log-failure mail 20m & # # catch-all: any principal not matched above will get an email warning * mail 20m &
Exemple 21-18 Configuration des messages d'expiration de TGT pour un utilisateur
Outre la configuration d'une entrée pour chaque utilisateur au niveau du système, chaque utilisateur peut configurer un fichier de configuration warnd nommé /var/user/$USER/krb-warn.conf. Par exemple :
% cat /var/user/gtb/krb-warn.conf gtb@EXAMPLE.COM renew:log mail 30m &