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 manualmente un cliente Kerberos

    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

  • KDC esclavo = kdc2.example.com

  • Servidor NFS = denver.example.com

  • Cliente = client.example.com

  • Principal admin = kws/admin

  • Principal de usuario = mre

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

Antes de empezar

Debe asumir el rol root. 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. Edite el archivo de configuración de Kerberos, krb5.conf.

    Cambie los nombres del dominio y los nombres del servidor en el archivo de configuración de Kerberos. También puede especificar la ruta de acceso a los archivos de ayuda para 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

    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.
  2. (Opcional) Cambie el proceso utilizado para ubicar los KDC.

      De manera predeterminada, el dominio de Kerberos para la asignación KDC se determina en el siguiente orden:

    • La definición en la sección realms, en krb5.conf.

    • Búsqueda de registros SRV en DNS

    Puede cambiar este comportamiento agregando dns_lookup_kdc o dns_fallback a la sección libdefaults del archivo krb5.conf. Para obtener más información, consulte krb5.conf(4). Tenga en cuenta que las referencias siempre se intentan en primer lugar.

  3. (Opcional) Cambie el proceso que se utiliza para determinar el dominio para un host.

      De manera predeterminada, el host para la asignación de dominio se determina en el siguiente orden:

    • Si el KDC admite referencias, el KDC puede informar al cliente a qué dominio pertenece el host.

    • La definición de domain_realm en el archivo krb5.conf.

    • El nombre de dominio DNS del host.

    • El dominio predeterminado.

    Puede cambiar este comportamiento agregando dns_lookup_kdc o dns_fallback a la sección libdefaults del archivo krb5.conf. Para obtener más información, consulte la página del comando man krb5.conf(4). Tenga en cuenta que las referencias siempre se intentan en primer lugar.

  4. Sincronice el reloj del cliente con el reloj del KDC maestro mediante NTP u otro mecanismo de sincronización de relojes.

    Para que la autenticación se realice correctamente, cada reloj debe estar sincronizado con la hora en el servidor KDC dentro de una diferencia máxima definida por la relación clockskew en el archivo krb5.conf. Para obtener más información, consulte la página del comando man krb5.conf(4). Para obtener información sobre el protocolo de hora de red (NTP), consulte Sincronización de relojes entre clientes Kerberos y KDC.

  5. Cree principales de Kerberos.
    denver # /usr/sbin/kadmin -p kws/admin
    Enter password: xxxxxxxx
    kadmin: 

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

    1. (Opcional) Cree un principal de usuario si aún no existe ningún principal de usuario.

      Necesita crear un principal de usuario sólo si el usuario asociado con este host no tiene un principal asignado a él.

      kadmin: addprinc mre
      Enter password for principal mre@EXAMPLE.COM:/** Type strong password **/
      Re-enter password for principal mre@EXAMPLE.COM: xxxxxxxx
      kadmin: 
    2. (Opcional) Cree un principal root y agregue el principal al archivo keytab del servidor.

      Notas -  Si el cliente no requiere acceso root a un sistema de archivos montados en NFS remoto, puede omitir este paso.

      Si se necesita acceso root no interactivo, como la ejecución de trabajos cron como root, realice este paso.

      El principal de root debe ser un principal de dos componentes. El segundo componente debe ser el nombre de host del sistema cliente Kerberos para evitar la creación de un principal root de todo el dominio. Cuando la instancia de principal es un nombre de host, el FQDN se debe especificar en letras minúsculas, independientemente de si el nombre de dominio está en mayúsculas o minúsculas en el servicio de nombres.

      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. Cree un principal host y agregue el principal al archivo keytab del servidor.

      El principal host es utilizado por servicios de acceso remoto para proporcionar autenticación. El principal permite que root adquiera una credencial si ya no hay una en el archivo 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. (Opcional) Agregue el principal de servicio NFS del servidor al archivo keytab del servidor.

      Este paso sólo es necesario si el cliente necesita acceder a sistemas de archivos NFS utilizando la autenticación 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. Salga de kadmin.
      kadmin: quit
  6. (Opcional) Active Kerberos con NFS.
    1. Active los modos de seguridad de Kerberos en el archivo /etc/nfssec.conf.

      En el archivo /etc/nfssec.conf, elimine el símbolo “#” que comenta los modos de seguridad de 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. Active el DNS.

      Si el servicio svc:/network/dns/client:default no está activado, debe activarlo. Para obtener más información, consulte la página del comando man resolv.conf(4).

      # svcadm enable network/dns/client:default
    3. Reinicie el servicio gss.
      # svcadm restart network/rpc/gss
  7. (Opcional) Si desea que el cliente renueve automáticamente el TGT o advierta a los usuarios acerca de la caducidad del ticket Kerberos, cree una entrada en el archivo /etc/krb5/warn.conf.

    Para obtener más información, consulte la página del comando man warn.conf(4) y Renovación automática de todos los tickets de otorgamiento de tickets.

Ejemplo 4-4  Configuración de un cliente Oracle Solaris para que funcione con varios KDC maestros

El servicio Kerberos de Active Directory (AD) de Microsoft, proporciona un KDC que se ejecuta en varios servidores maestros. Para que un cliente Oracle Solaris actualice información, la declaración admin_server o kpasswd_server en el archivo /etc/krb5/krb5.conf debe enumerar todos los servidores. En este ejemplo, se muestra cómo permitir al cliente actualizar información sobre el KDC que kdc1 y kdc2 comparten.

[realms]
EXAMPLE.COM = {
kdc = kdc1.example.com
kdc = kdc2.example.com
admin_server = kdc1.example.com
admin_server = kdc2.example.com
}
Ejemplo 4-5  Configuración de un cliente Kerberos para un KDC que no es Oracle Solaris

Es posible configurar un cliente Kerberos para que funcione con un KDC no Oracle Solaris, mediante la agregación de una línea en el archivo /etc/krb5/krb5.conf en la sección realms. Esta línea cambia el protocolo que se utiliza cuando el cliente se comunica con el servidor de cambio de contraseña de Kerberos. En el fragmento siguiente, se muestra el formato de esta línea.

[realms]
EXAMPLE.COM = {
kdc = kdc1.example.com
kdc = kdc2.example.com
admin_server = kdc1.example.com
kpasswd_protocol = SET_CHANGE
}
Ejemplo 4-6  Registros TXT de DNS para la asignación de nombre de host y dominio al dominio 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"
Ejemplo 4-7  Registros SRV de DNS para ubicaciones del servidor Kerberos

En este ejemplo, se definen los registros para la ubicación de los KDC, el servidor admin y el servidor kpasswd, respectivamente.

@ 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