Gestion de Kerberos et d'autres services d'authentification dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Septembre 2014
 
 

Configuration manuelle d'un client Kerberos

    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

  • 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

Avant de commencer

Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .

  1. Editez le fichier de configuration Kerberos, krb5.conf.

    Modifier les noms de domaine et les noms de serveur dans le fichier de configuration Kerberos. Vous pouvez également indiquer le chemin d'accès aux fichiers d'aide pour gkadmin.

    kdc1 # pfedit /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://www.example.com/doclib/OSMKA/aadmin-23.html

    Remarque -  Si vous devez communiquer à l'aide d'une version antérieure, vous aurez sans doute besoin Kerberos pour limiter les types de chiffrement. Pour une description des problèmes liés à la restriction des types de chiffrement, reportez-vous à la section Types de chiffrement Kerberos.
  2. (Facultatif) Modifiez le processus utilisé pour localiser les KDC.

      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 d'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 à krb5.conf(4). Notez que les références sont toujours tentées en premier.

  3. (Facultatif) Modifiez le processus utilisé pour déterminer le domaine d'un hôte.

      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.

    • 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.

  4. Synchronisez l'horloge du client avec l'horloge du KDC maître à l'aide de NTP ou d'un autre mécanisme de synchronisation d'horloge.

    Pour une authentification réussie, chaque horloge doit être synchronisée avec l'heure du serveur KDC ne pouvant dépasser un écart maximum défini dans la relation clockskew dans le fichier krb5.conf. Pour plus d'informations, reportez-vous à la page de manuel krb5.conf(4). Pour plus d'informations sur le NTP (Network Time Protocol), reportez-vous à la section Synchronisation des horloges entre les KDC et les clients Kerberos.

  5. Créer les principaux Kerberos.
    denver # /usr/sbin/kadmin -p kws/admin
    Enter password: xxxxxxxx
    kadmin: 

    Pour plus d'informations, reportez-vous à la page de manuel kadmin(1M).

    1. (Facultatif) Créez un principal d'utilisateur s'il n'en existe pas déjà.

      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 strong password **/
      Re-enter password for principal mre@EXAMPLE.COM: xxxxxxxx
      kadmin: 
    2. (Facultatif) Créez un principal root et ajoutez le principal au fichier keytab du serveur.

      Remarque -  Si le client ne nécessite pas d'accès root à un système de fichiers monté via NFS distant, vous pouvez ignorer cette étape.

      Si l'accès root non interactif est nécessaire, par exemple pour l'exécution des tâches cron en tant qu'utilisateur root, réalisez cette étape.

      Le principal root doit être un principal à deux composants. Le second composant doit être le nom d'hôte du système du client Kerberos pour éviter la création d'un principal root à l'échelle du domaine. 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.
      kadmin: 
    3. Créez un principal host et ajoutez le principal au fichier keytab du serveur.

      Le principal host est utilisé par les services d'accès à distance pour fournir l'authentification. Le principal permet à root d'acquérir des informations d'identification, si elles n'existent 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.
      kadmin:
    4. (Facultatif) Ajoutez le principal de service du serveur NFS au fichier keytab du serveur.

      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.
      kadmin: 
    5. Quitter kadmin.
      kadmin: quit
  6. (Facultatif) Activez Kerberos avec NFS.
    1. Activez les modes de sécurité Kerberos dans le fichier /etc/nfssec.conf.

      Dans le fichier/etc/nfssec.conf, supprimez le "#" qui met en commentaire les modes de sécurité Kerberos.

      # pfedit /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
    2. Activez DNS.

      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 enable network/dns/client:default
    3. Redémarrez le service gss.
      # svcadm restart network/rpc/gss
  7. (Facultatif) Pour que le client renouvelle automatiquement le TGT ou pour avertir les utilisateurs concernant l'expiration du ticket Kerberos, créez une entrée dans le fichier /etc/krb5/warn.conf.

    Pour plus d'informations, reportez-vous à la page de manuel warn.conf(4) et à la section Renouvellement automatique de tous les tickets d'octroi de tickets.

Exemple 4-4  Configuration d'un client Oracle Solaris pour une utilisation avec un KDC à plusieurs maîtres

Le service Kerberos Microsoft Active Directory (AD) fournit un KDC qui s'exécute sur plusieurs serveurs maîtres. Pour qu'un client Oracle Solaris mette à jour les informations, admin_server ou la déclaration kpasswd_server dans le fichier /etc/krb5/krb5.conf doit reprendre tous les serveurs. Cet exemple montre comment autoriser le client à mettre à jour les informations concernant le KDC partagé par kdc1 et kdc2.

[realms]
EXAMPLE.COM = {
kdc = kdc1.example.com
kdc = kdc2.example.com
admin_server = kdc1.example.com
admin_server = kdc2.example.com
}
Exemple 4-5  Configuration d'un client Kerberos pour un KDC non-Oracle Solaris

Un client Kerberos peut être configuré pour travailler avec un KDC non Oracle Solaris, en ajoutant une ligne au fichier /etc/krb5/krb5.conf dans 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. L'extrait suivant montre le format de cette ligne.

[realms]
EXAMPLE.COM = {
kdc = kdc1.example.com
kdc = kdc2.example.com
admin_server = kdc1.example.com
kpasswd_protocol = SET_CHANGE
}
Exemple 4-6  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 4-7  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 464 kdc1.example.com
_kpasswd._udp.EXAMPLE.COM          IN      SRV 0 0 464 kdc1.example.com