Gestión de Kerberos y otros servicios de autenticación en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Cómo configurar el KDC maestro para utilizar un servidor de directorios LDAP

    Este procedimiento utiliza los siguientes parámetros de configuración:

  • Nombre de dominio = EXAMPLE.COM

  • Nombre de dominio DNS = example.com

  • KDC maestro = kdc1.example.com

  • Servidor de directorios = dsserver.example.com

  • Principal admin = kws/admin

  • FMRI para el servicio LDAP = svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1

  • URL de ayuda en pantalla = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html


    Notas -  Ajuste la dirección URL para apuntar a la ubicación de la ayuda en pantalla, como se describe en Interfaz gráfica de usuario gkadmin.

Antes de empezar

El host está configurado para usar DNS. Para obtener un mejor rendimiento, instale el KDC y el servicio de directorios LDAP en el mismo servidor. Además, un servidor de directorios debe estar en ejecución. El siguiente procedimiento funciona con servidores con Oracle Directory Server Enterprise Edition. Para obtener más información, consulte Oracle Identity Management - Documentation.

Debe asumir el rol root en el servidor KDC. Para obtener más información, consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .

  1. Configure el KDC maestro para utilizar SSL para alcanzar el servidor de directorios.

    Siga los pasos a continuación para configurar un KDC con el fin de utilizar el certificado autofirmado de Directory Server.

    1. En el servidor de directorios, exporte el certificado autofirmado.
      # /export/sun-ds6.1/ds6/bin/dsadm show-cert -F der /export/sun-ds6.1/directory2 \
      defaultCert > /tmp/defaultCert.cert.der
    2. En el KDC maestro, importe el certificado de servidor de directorios.
      # 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

      Para obtener más información, consulte la página del comando man pktool(1).

    3. En el KDC maestro, compruebe que SSL esté funcionado.

      En este ejemplo se da por sentado que la entrada cn=directory manager tiene privilegios de administración.

      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

      Tenga en cuenta que la entrada CN=dsserver.example.com debe incluir el nombre de host calificado completo, no una versión corta.

  2. Rellene el directorio LDAP si es necesario.
  3. Agregue el esquema Kerberos al esquema existente de LDAP.
    # ldapmodify -h dsserver.example.com -D "cn=directory manager" \
    -f /usr/share/lib/ldif/kerberos.ldif
  4. Cree el contenedor Kerberos en el directorio LDAP.

    Agregue las entradas siguientes al archivo krb5.conf.

    1. Defina el tipo de base de datos.

      Agregue una entrada para definir database_module para la sección realms.

      database_module = LDAP
    2. Defina el módulo de la base de datos.
      [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. Cree el KDC en el directorio LDAP.

      Este comando crea krbcontainer y varios otros objetos. También crea una clave maestra /var/krb5/.k5.EXAMPLE.COM y un archivo intermedio para la clave. Para obtener información sobre las opciones del comando, consulte la página del comando man kdb5_ldap_util(1M).

      # kdb5_ldap_util -D "cn=directory manager" create
         -P master-key -r EXAMPLE.COM -s
  5. Guarde las contraseñas del nombre distintivo del vínculo (DN) del KDC.

    Estas contraseñas son utilizadas por el KDC cuando se enlaza al servidor de directorios. El KDC utiliza diferentes roles según el tipo de acceso que el KDC está utilizando.

    # 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. Agregue roles de servicio KDC.
    1. Cree un archivo kdc_roles.ldif con contenido como el siguiente:
      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. Cree las entradas de rol en el directorio LDAP.
      # ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif
  7. Defina las ACL para los roles relacionados con 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. Edite el archivo de configuración de Kerberos,krb5.conf.

    Debe asignar un nombre a los dominios y los servidores. Para obtener una descripción de este archivo, consulte la página del comando man 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
    }

    Notas -  Ajuste la dirección URL para apuntar a la ubicación de la ayuda en pantalla, como se describe en Interfaz gráfica de usuario gkadmin.

    En este ejemplo, se modificaron las líneas para las entradas default_realm , kdc, admin_server y domain_realm. Además, la dirección URL de ayuda en pantalla se ha cambiado.


    Notas -  Si debe comunicarse con un sistema Kerberos anterior, es posible deba restringir los tipos de cifrado. Para obtener una descripción de los problemas relacionados con la restricción de los tipos de cifrado, consulte Tipos de cifrado Kerberos.
  9. Edite el archivo de configuración de KDC, kdc.conf.

    Necesita designar el nombre del dominio. Para obtener una descripción de este archivo, consulte la página del comando man kdc.conf(4).

    En este ejemplo, además de la definición del nombre del dominio, el administrador cambia la propagación incremental y los valores predeterminados del registro.

    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
    }

    Notas -  Si debe comunicarse con un sistema Kerberos anterior, es posible deba restringir los tipos de cifrado. Para obtener una descripción de los problemas relacionados con la restricción de los tipos de cifrado, consulte Tipos de cifrado Kerberos.
  10. Edite el archivo de la lista de control de acceso de Kerberos, kadm5.acl.

    Una vez que se rellena, el archivo /etc/krb5/kadm5.acl debe contener todos los nombres de principales que tienen permitido administrar el KDC.

    kws/admin@EXAMPLE.COM   *

    La entrada anterior da al principal kws/admin en el dominio EXAMPLE.COM la capacidad de modificar los principales y las políticas en el KDC. La entrada de principal predeterminada es un asterisco (*), lo que coincide con todos los admin de principales. Esta entrada puede representar un riesgo para la seguridad. Modifique el archivo para mostrar explícitamente cada admin de principal y sus derechos. Para obtener más información, consulte la página del comando man kadm5.acl(4).

  11. Inicie el comando kadmin.local y crear los principales admin.
    kdc1 # /usr/sbin/kadmin.local
    kadmin.local: 
    1. Agregue principales de administración a la base de datos.

      Puede agregar tantos principales admin como necesite. Debe crear, al menos, un principal admin para completar el proceso de configuración del KDC. Para este ejemplo, se crea el principal kws/admin. Puede sustituir un nombre de principal adecuado en lugar de “kws”.

      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. Salga de kadmin.local.
      kadmin.local: quit
  12. (Opcional) Configure las dependencias LDAP para servicios Kerberos.

    Si los servidores LDAP y KDC se están ejecutando en el mismo host y si el servicio LDAP está configurado con SMF, agregue una dependencia al servicio LDAP para los daemons Kerberos. Esta dependencia reiniciará el servicio KDC si el servicio LDAP se reinicia.

    1. Agregue la dependencia al servicio 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. Agregue la dependencia al servicio 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. Complete la configuración de Kerberos en LDAP mediante la realización de Step 7 a Step 9 en Cómo configurar manualmente un KDC maestro.
  14. Configure los KDC esclavos.

    Para proporcionar redundancia, asegúrese de instalar, al menos, un KDC esclavo. Para obtener instrucciones, consulte Cómo configurar manualmente un KDC esclavo.