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 du KDC maître pour utiliser un serveur d'annuaires LDAP

    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

  • Serveur d'annuaire = dsserver.example.com

  • admin principal = kws/admin

  • FMRI pour le service LDAP = svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1

  • URL de l'aide en ligne = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html


    Remarque -  Ajuster l'URL de sorte qu'il pointe vers l'emplacement de l'aide en ligne, comme décrit dans Interface graphique gkadmin.

Avant de commencer

L'hôte soit configuré pour utiliser DNS. Pour de meilleures performances, installez le KDC et le service d'annuaire LDAP sur le même serveur. En outre, un Serveur d'annuaire doit être en cours d'exécution. La procédure ci-dessous fonctionne avec des serveurs utilisant Oracle Directory Server Enterprise Edition. Pour plus d'informations, reportez-vous à Oracle Identity Management - Documentation.

Vous devez prendre le rôle root sur le serveur KDC. 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. Configurez le KDC maître afin qu'il utilise SSL pour atteindre le Serveur d'annuaire.

    Les étapes suivantes permettent de configurer le KDC afin qu'il utilise le certificat autosigné du Serveur d'annuaire.

    1. Sur le Serveur d'annuaire, exportez le certificat autosigné.
      # /export/sun-ds6.1/ds6/bin/dsadm show-cert -F der /export/sun-ds6.1/directory2 \
      defaultCert > /tmp/defaultCert.cert.der
    2. Sur le KDC maître, importez le certificat du Serveur d'annuaire.
      # pktool setpin keystore=nss dir=/var/ldap
      # chmod a+r /var/ldap/*.db
      # pktool import keystore=nss objtype=cert trust="CT" \
      infile=/tmp/defaultCert.cert.der \
      label=defaultCert dir=/var/ldap

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

    3. Sur le KDC maître, vérifiez que SSL fonctionne.

      Cet exemple suppose que l'entrée cn=directory manager dispose de privilèges d'administration.

      master# /usr/bin/ldapsearch -Z -P /var/ldap -D "cn=directory manager" \
      -h dsserver.example.com -b "" -s base objectclass='*'
      Subject:
      "CN=dsserver.example.com,CN=636,CN=Directory Server,O=Example Corporation

      Notez que l'entrée CN=dsserver.example.com doit inclure le nom d'hôte complet, pas une version abrégée.

  2. Renseignez l'annuaire LDAP, si nécessaire.
  3. Ajoutez le schéma Kerberos au schéma existant de LDAP.
    # ldapmodify -h dsserver.example.com -D "cn=directory manager" \
    -f /usr/share/lib/ldif/kerberos.ldif
  4. Créez le conteneur Kerberos dans l'annuaire LDAP.

    Ajoutez les entrées suivantes au fichier krb5.conf.

    1. Définissez le type de base de données.

      Ajoutez une entrée pour définir le database_module sur la section realms.

      database_module = LDAP
    2. Définissez le module de base de données.
      [dbmodules]
      LDAP = {
      ldap_kerberos_container_dn = "cn=krbcontainer,dc=example,dc=com"
      db_library = kldap
      ldap_kdc_dn = "cn=kdc service,ou=profile,dc=example,dc=com"
      ldap_kadmind_dn = "cn=kadmin service,ou=profile,dc=example,dc=com"
      ldap_cert_path = /var/ldap
      ldap_servers = ldaps://dsserver.example.com
      }
    3. Créez le KDC dans l'annuaire LDAP.

      Cette commande crée krbcontainer et plusieurs autres objets. Elle crée également une clé principale /var/krb5/.k5.EXAMPLE.COM et un fichier stash pour la clé. Pour plus d'informations sur les options de la commande, reportez-vous à la page de manuel kdb5_ldap_util(1M).

      # kdb5_ldap_util -D "cn=directory manager" create
         -P master-key -r EXAMPLE.COM -s
  5. Dissimulez les mots de passe KDC de liaison DN (Distinguished Name, nom distinctif).

    Ces mots de passe sont utilisés par le KDC lorsqu'il se connecte au serveur d'annuaire. Le KDC utilise des rôles différents en fonction du type d'accès utilisé par le KDC.

    # kdb5_ldap_util stashsrvpw "cn=kdc service,ou=profile,dc=example,dc=com"
    # kdb5_ldap_util stashsrvpw "cn=kadmin service,ou=profile,dc=example,dc=com"
  6. Ajoutez des rôles de service KDC.
    1. Créez un fichier kdc_roles.ldif avec un contenu comme suit :
      dn: cn=kdc service,ou=profile,dc=example,dc=com
      cn: kdc service
      sn: kdc service
      objectclass: top
      objectclass: person
      userpassword: xxxxxxxx
      
      dn: cn=kadmin service,ou=profile,dc=example,dc=com
      cn: kadmin service
      sn: kadmin service
      objectclass: top
      objectclass: person
      userpassword: xxxxxxxx
    2. Créez des entrées de rôle dans l'annuaire LDAP
      # ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif
  7. Définissez les ACL pour les rôles liés à kadmin.
    # cat << EOF | ldapmodify -h dsserver.example.com -D "cn=directory manager"
    # Set kadmin ACL for everything under krbcontainer.
    dn: cn=krbcontainer,dc=example,dc=com
    changetype: modify
    add: aci
    aci: (target="ldap:///cn=krbcontainer,dc=example,dc=com")(targetattr="krb*")(version 3.0;\
    acl kadmin_ACL; allow (all)\
    userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";)
    
    # Set kadmin ACL for everything under the people subtree if there are
    # mix-in entries for krb princs:
    dn: ou=people,dc=example,dc=com
    changetype: modify
    add: aci
    aci: (target="ldap:///ou=people,dc=example,dc=com")(targetattr="krb*")(version 3.0;\
    acl kadmin_ACL; allow (all)\
    userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";)
    EOF
  8. Edition du fichier de configuration Kerberos, krb5.conf.

    Vous devez attribuer un nom au les domaines (realms) et sur les serveurs. Pour plus d'informations sur ce fichier, reportez-vous à la page de manuel krb5.conf(4).

    kdc1 # pfedit /etc/krb5/krb5.conf
    [libdefaults]
    default_realm = EXAMPLE.COM
    
    [realms]
    EXAMPLE.COM = {
    kdc = kdc1.example.com
    admin_server = kdc1.example.com
    }
    
    [domain_realm]
    .example.com = EXAMPLE.COM
    #
    # if the domain name and realm name are equivalent,
    # this entry is not needed
    #
    [logging]
    default = FILE:/var/krb5/kdc.log
    kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
    gkadmin = {
    help_url = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
    }

    Remarque -  Ajuster l'URL de sorte qu'il pointe vers l'emplacement de l'aide en ligne, comme décrit dans Interface graphique gkadmin.

    Dans cet exemple, les lignes pour default_realm, kdc, admin_server et toutes les entrées domain_realm ont été modifiées. En outre, l'aide en ligne URL a été modifié.


    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.
  9. Editez le fichier de configuration KDC, kdc.conf.

    Vous devez attribuer un nom au domaine. Pour plus d'informations sur ce fichier, reportez-vous à la page de manuel kdc.conf(4).

    Dans cet exemple, en plus de la définition du nom de domaine, l'administrateur modifie la propagation incrémentielle et erreurs de journalisation.

    kdc1 # pfedit /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
    }

    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.
  10. Editer le fichier de la liste de contrôle d'accès Kerberos, kadm5.acl.

    Une fois renseigné, le fichier /etc/krb5/kadm5.acl doit contenir tous les noms de principaux autorisés à administrer le KDC.

    kws/admin@EXAMPLE.COM   *

    L'entrée précédente donne au principal kws/admin du domaine EXAMPLE.COM la possibilité de modifier les principaux et les stratégies dans le KDC. La valeur par défaut de l'entrée du principal est un astérisque (*), qui renvoie à tous les principaux admin. Cette entrée peut se présenter un risque en matière de sécurité. Modifiez le fichier de façon explicite afin de pouvoir répertorier chaque principal admin ainsi que leurs droits. Pour plus d'informations, reportez-vous à la page de manuel kadm5.acl(4).

  11. Lancez la commande kadmin.local et créez les principaux admin.
    kdc1 # /usr/sbin/kadmin.local
    kadmin.local: 
    1. Ajoutez des principaux d'administration à la base de données.

      Vous pouvez ajouter autant de principaux admin que nécessaire. Vous devez créer au moins un principal admin pour terminer le processus de configuration du KDC. Pour cet exemple, vous créez le principal kws/admin. Vous pouvez remplacer "kws" par le nom de principal approprié.

      kadmin.local: addprinc kws/admin
      Enter password for principal kws/admin@EXAMPLE.COM:/** Type strong password **/
      Re-enter password for principal kws/admin@EXAMPLE.COM: xxxxxxxx
      Principal "kws/admin@EXAMPLE.COM" created.
      kadmin.local:
    2. Quittez kadmin.local.
      kadmin.local: quit
  12. (Facultatif) Configurez les dépendances LDAP pour les services Kerberos.

    Si les serveurs LDAP et KDC sont en cours d'exécution sur le même hôte et si le service LDAP est configuré avec SMF, ajoutez une dépendance au service LDAP pour les démons Kerberos. Cette dépendance redémarre le service KDC si le service LDAP est redémarré.

    1. Ajoutez la dépendance au service krb5kdc.
      # svccfg -s security/krb5kdc
      svc:/network/security/krb5kdc> addpg dsins1 dependency
      svc:/network/security/krb5kdc> setprop dsins1/entities = \
      fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1"
      svc:/network/security/krb5kdc> setprop dsins1/grouping = astring: "require_all"
      svc:/network/security/krb5kdc> setprop dsins1/restart_on = astring: "restart"
      svc:/network/security/krb5kdc> setprop dsins1/type = astring: "service"
      svc:/network/security/krb5kdc> exit
    2. Ajoutez la dépendance au service kadmin.
      # svccfg -s security/kadmin
      svc:/network/security/kadmin> addpg dsins1 dependency
      svc:/network/security/kadmin> setprop dsins1/entities =\
      fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1"
      svc:/network/security/kadmin> setprop dsins1/grouping = astring: "require_all"
      svc:/network/security/kadmin> setprop dsins1/restart_on = astring: "restart"
      svc:/network/security/kadmin> setprop dsins1/type = astring: "service"
      svc:/network/security/kadmin> exit
  13. Terminez la configuration Kerberos dans LDAP en effectuant l'Step 7 à Step 9 dans Configuration manuelle d'un KDC maître.
  14. Configurez les KDC esclaves.

    Pour assurer la redondance, veillez à installer au moins un KDC esclave. Pour obtenir des instructions, reportez-vous à la section Configuration manuelle d'un KDC esclave.