Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Guía de administración del sistema: servicios de seguridad |
Parte I Descripción general de la seguridad
1. Servicios de seguridad (descripción general)
Parte II Seguridad de sistemas, archivos y dispositivos
2. Gestión de seguridad de equipos (descripción general)
3. Control de acceso a sistemas (tareas)
4. Control de acceso a dispositivos (tareas)
5. Uso de la herramienta básica de creación de informes de auditoría (tareas)
6. Control de acceso a archivos (tareas)
7. Uso de la herramienta automatizada de mejora de la seguridad (tareas)
Parte III Roles, perfiles de derechos y privilegios
8. Uso de roles y privilegios (descripción general)
9. Uso del control de acceso basado en roles (tareas)
10. Control de acceso basado en roles (referencia)
Parte IV Servicios criptográficos
13. Estructura criptográfica de Oracle Solaris (descripción general)
14. Estructura criptográfica de Oracle Solaris (tareas)
15. Estructura de gestión de claves de Oracle Solaris
Parte V Servicios de autenticación y comunicación segura
16. Uso de servicios de autenticación (tareas)
19. Uso de Oracle Solaris Secure Shell (tareas)
20. Oracle Solaris Secure Shell (referencia)
21. Introducción al servicio Kerberos
22. Planificación del servicio Kerberos
23. Configuración del servicio Kerberos (tareas)
Configuración del servicio Kerberos (mapa de tareas)
Configuración de servicios Kerberos adicionales (mapa de tareas)
Configuración de servidores KDC
Cómo configurar manualmente un KDC maestro
Cómo configurar un KDC para utilizar un servidor de datos LDAP
Cómo configurar manualmente un KDC esclavo
Cómo actualizar las claves del servicio de otorgamiento de tickets en un servidor maestro
Configuración de autenticación entre dominios
Cómo establecer la autenticación entre dominios jerárquica
Cómo establecer la autenticación entre dominios directa
Configuración de servidores de aplicaciones de red de Kerberos
Cómo configurar un servidor de aplicaciones de red de Kerberos
Configuración de servidores NFS con Kerberos
Cómo configurar servidores NFS con Kerberos
Cómo crear una tabla de credenciales
Cómo agregar una única entrada a la tabla de credenciales
Cómo proporcionar asignación de credenciales entre dominios
Cómo configurar un entorno NFS seguro con varios modos de seguridad de Kerberos
Configuración de clientes Kerberos
Configuración de clientes Kerberos (mapa de tareas)
Cómo crear un perfil de instalación de cliente Kerberos
Cómo configurar automáticamente un cliente Kerberos
Cómo configurar interactivamente un cliente Kerberos
Cómo configurar manualmente un cliente Kerberos
Cómo deshabilitar la verificación del ticket de otorgamiento de tickets (TGT)
Cómo acceder a un sistema de archivos NFS protegido con Kerberos como el usuario root
Cómo configurar la migración automática de usuarios en un dominio Kerberos
Sincronización de relojes entre clientes Kerberos y KDC
Intercambio de un KDC maestro y un KDC esclavo
Cómo configurar un KDC esclavo intercambiable
Cómo intercambiar un KDC maestro y un KDC esclavo
Administración de la base de datos de Kerberos
Copia de seguridad y propagación de la base de datos de Kerberos
Cómo realizar copias de seguridad de la base de datos de Kerberos
Cómo restaurar la base de datos de Kerberos
Cómo convertir una base de datos de Kerberos después de una actualización de servidor
Cómo reconfigurar un KDC maestro para utilizar la propagación incremental
Cómo reconfigurar un KDC esclavo para utilizar la propagación incremental
Cómo configurar un KDC esclavo para utilizar la propagación completa
Cómo verificar que los servidores KDC estén sincronizados
Cómo propagar manualmente la base de datos de Kerberos a los KDC esclavos
Configuración de propagación en paralelo
Pasos de configuración para la propagación en paralelo
Administración del archivo intermedio
Cómo eliminar un archivo intermedio
Gestión de un KDC en un servidor de directorios LDAP
Cómo destruir un dominio en un servidor de directorios LDAP
Aumento de la seguridad en servidores Kerberos
Cómo habilitar sólo aplicaciones Kerberizadas
Cómo restringir el acceso a servidores KDC
Cómo utilizar un archivo de diccionario para aumentar la seguridad de contraseñas
24. Mensajes de error y resolución de problemas de Kerberos
25. Administración de las políticas y los principales de Kerberos (tareas)
26. Uso de aplicaciones Kerberos (tareas)
27. El servicio Kerberos (referencia)
Parte VII Auditoría de Oracle Solaris
28. Auditoría de Oracle Solaris (descripción general)
29. Planificación de la auditoría de Oracle Solaris
30. Gestión de la auditoría de Oracle Solaris (tareas)
Después de instalar el software Kerberos, debe configurar los servidores KDC. La configuración de un servidor KDC maestro y de, al menos, un servidor KDC esclavo proporciona el servicio que emite credenciales. Estas credenciales son la base para el servicio Kerberos, por lo que los KDC se deben instalar antes de intentar otras tareas.
La diferencia más importante entre un KDC maestro y un KDC esclavo es que sólo el KDC maestro puede manejar solicitudes de administración de bases de datos. Por ejemplo, el cambio de una contraseña o la adición de un nuevo principal se deben realizar en el KDC maestro. Estos cambios, luego, se pueden propagar a los KDC esclavos. Tanto el KDC esclavo como el KDC maestro generan credenciales. Esta función proporciona redundancia en el caso de que el KDC maestro no pueda responder.
Tabla 23-1 Configuración de servidores KDC (mapa de tareas)
|
En este procedimiento, se configura la propagación incremental. Además, se utilizan los siguientes parámetros de configuración:
Nombre de dominio = EXAMPLE.COM
Nombre de dominio DNS = example.com
KDC maestro = kdc1.example.com
Principal admin = kws/admin
URL de ayuda en pantalla = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Nota - Ajuste la dirección URL para que enlace a la sección "Herramienta gráfica de administración de Kerberos", como se describe en URL de ayuda en pantalla en la herramienta gráfica de administración de Kerberos.
Antes de empezar
Este procedimiento requiere que el host esté configurado para usar DNS. Para obtener instrucciones específicas de nomenclatura si este maestro se va a intercambiar, consulte Intercambio de un KDC maestro y un KDC esclavo.
Necesita cambiar los nombres de dominio y los nombres de los servidores. Consulte la página del comando man krb5.conf(4) para obtener una descripción completa de este archivo.
kdc1 # cat /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://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956 }
En este ejemplo, se modificaron las líneas para las entradas default_realm, kdc, admin_server y domain_realm. Además, se editó la línea que define help_url.
Nota - Si desea restringir los tipos de cifrado, puede definir las líneas default_tkt_enctypes o default_tgs_enctypes. Consulte Uso de los tipos de cifrado de Kerberos para obtener una descripción de los problemas relacionados con la restricción de los tipos de cifrado.
Necesita cambiar el nombre de dominio. Consulte la página del comando man kdc.conf(4) para obtener una descripción completa de este archivo.
kdc1 # cat /etc/krb5/kdc.conf [kdcdefaults] kdc_ports = 88,750 [realms] EXAMPLE.COM = { profile = /etc/krb5/krb5.conf database_name = /var/krb5/principal admin_keytab = /etc/krb5/kadm5.keytab 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 }
En este ejemplo, se modificó la definición del nombre de dominio en la sección realms. Además, en la sección realms, se agregaron líneas para permitir la propagación incremental y para seleccionar el número de actualizaciones que el KDC maestro mantiene en el registro.
Nota - Si desea restringir los tipos de cifrado, puede definir las líneas permitted_enctypes, supported_enctypes o master_key_type. Consulte Uso de los tipos de cifrado de Kerberos para obtener una descripción de los problemas relacionados con la restricción de los tipos de cifrado.
El comando kdb5_util crea la base de datos KDC. Además, cuando se utiliza con la opción -s, este comando crea un archivo intermedio que se utiliza para autenticar el KDC para él mismo antes de que los daemons kadmind y krb5kdc se inicien.
kdc1 # /usr/sbin/kdb5_util create -s Initializing database '/var/krb5/principal' for realm 'EXAMPLE.COM' master key name 'K/M@EXAMPLE.COM' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: <Type the key> Re-enter KDC database master key to verify: <Type it again>
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 da al principal kws/admin en el dominio EXAMPLE.COM la capacidad de modificar los principales o las políticas en el KDC. La instalación predeterminada incluye un asterisco (*) para que concuerde con todos los principales admin. Este valor predeterminado puede ser un riesgo de seguridad, por lo que es más seguro incluir una lista de todos los principales admin. Consulte la página del comando man kadm5.acl(4) para obtener más información.
Los próximos pasos secundarios crean los principales que son utilizados por el servicio Kerberos.
kdc1 # /usr/sbin/kadmin.local kadmin.local:
Puede agregar tantos principales admin como necesite. Debe agregar, al menos, un principal admin para completar el proceso de configuración del KDC. Para este ejemplo, se agrega un 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 the password> Re-enter password for principal kws/admin@EXAMPLE.COM: <Type it again> Principal "kws/admin@EXAMPLE.COM" created. kadmin.local:
El principal kiprop se utiliza para autorizar actualizaciones del KDC maestro.
kadmin.local: addprinc -randkey kiprop/kdc1.example.com Principal "kiprop/kdc1.example.com@EXAMPLE.COM" created. kadmin.local:
Esta secuencia de comandos crea un archivo keytab especial con entradas de principales para kadmin/<FQDN> y changepw/<FQDN>. Estos principales son necesarios para el servicio kadmind y para las contraseñas que se van a cambiar. Tenga en cuenta que 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 archivo /etc/resolv.conf. El principal kadmin/changepw se utiliza para cambiar contraseñas de clientes que no ejecutan una versión de Solaris.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.example.com Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.example.com Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/changepw Entry for principal kadmin/changepw with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local:
La adición del principal kiprop al archivo kadm5.keytab permite que el comando kadmind se autentique cuando se inicia la propagación incremental.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kiprop/kdc1.example.com Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local:
Ha agregado todos los principales necesarios para los pasos siguientes.
kadmin.local: quit
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
En este punto, puede agregar principales con la herramienta gráfica de administración de Kerberos. Para ello, debe iniciar sesión con uno de los nombres de principales admin creados anteriormente en este procedimiento. Sin embargo, el siguiente ejemplo de línea de comandos se muestra para que resulte más sencillo.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
El principal host es utilizado por aplicaciones Kerberizadas, como kprop, para propagar los cambios a los KDC esclavos. Este principal también se utiliza para proporcionar acceso remoto seguro al servidor KDC mediante aplicaciones, como ssh. Tenga en cuenta que 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 archivo /etc/resolv.conf.
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
Este principal es utilizado por la utilidad kclient durante la instalación de un cliente Kerberos. Si no planea utilizar esta utilidad, no tiene que agregar el principal. Los usuarios de la utilidad kclient necesitan usar esta contraseña.
kadmin: addprinc clntconfig/admin Enter password for principal clntconfig/admin@EXAMPLE.COM:<Type the password> Re-enter password for principal clntconfig/admin@EXAMPLE.COM: <Type it again> Principal "clntconfig/admin@EXAMPLE.COM" created. kadmin:
La adición del principal host al archivo keytab permite que este principal sea utilizado por servidores de aplicaciones, como sshd, automáticamente.
kadmin: ktadd host/kdc1.example.com Entry for principal host/kdc1.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/kdc1.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/kdc1.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/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
No es necesario instalar ni utilizar el protocolo de hora de red (NTP). Sin embargo, cada reloj debe estar dentro de la hora predeterminada que está definida en la sección libdefaults del archivo krb5.conf para que la autenticación se realice con éxito. Consulte Sincronización de relojes entre clientes Kerberos y KDC para obtener información sobre el NTP.
Para proporcionar redundancia, asegúrese de instalar, al menos, un KDC esclavo. Consulte Cómo configurar manualmente un KDC esclavo para obtener instrucciones específicas.
A partir de la versión Solaris 10 5/08, se puede configurar un KDC para utilizar un servidor de datos LDAP mediante el procedimiento siguiente.
En este procedimiento, se utilizan 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://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Nota - Ajuste la dirección URL para que enlace a la sección "Herramienta gráfica de administración de Kerberos", como se describe en URL de ayuda en pantalla en la herramienta gráfica de administración de Kerberos.
Antes de empezar
Este procedimiento también requiere que 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 procedimiento que se indica a continuación funciona con servidores que utilizan la versión Sun Java Directory Server Enterprise Edition.
Siga los siguientes pasos para configurar un KDC S10 con el fin de utilizar el certificado autofirmado de Directory Server 6.1. Si el certificado ha caducado, siga las instrucciones para renovar un certificado en la sección To Manage Self-Signed Certificates de Sun Java System Directory Server Enterprise Edition 6.2 Administration Guide.
# /usr/sfw/bin/certutil -L -n defaultCert -d /export/sun-ds6.1/directory/alias \ -P 'slapd-' -a > /var/tmp/ds_cert.pem
# /usr/sfw/bin/certutil -N -d /var/ldap
# /usr/sfw/bin/certutil -A -n defaultCert -i /var/tmp/ds_cert -a -t CT -d /var/ldap
# pktool setpin keystore=nss dir=/var/ldap # chmod a+r /var/ldap/*.db # pktool import keystore=nss objtype=cert trust="CT" infile=/tmp/defaultCert.certutil.der \ label=defaultCert dir=/var/ldap
# ldapmodify -h dsserver.example.com -D "cn=directory manager" -f /usr/share/lib/ldif/kerberos.ldif
Agregue las entradas siguientes al archivo krb5.conf.
Agregue una entrada para definir database_module para la sección realms.
database_module = LDAP
[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 }
Este comando crea krbcontainer y varios otros objetos. También crea un archivo intermedio de clave maestra /var/krb5/.k5.EXAMPLE.COM.
# kdb5_ldap_util -D "cn=directory manager" create -P abcd1234 -r EXAMPLE.COM -s
Estas contraseñas son utilizadas por el KDC cuando se enlaza al DS. 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"
dn: cn=kdc service,ou=profile,dc=example,dc=com cn: kdc service sn: kdc service objectclass: top objectclass: person userpassword: test123 dn: cn=kadmin service,ou=profile,dc=example,dc=com cn: kadmin service sn: kadmin service objectclass: top objectclass: person userpassword: test123
# ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif
# 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
Necesita cambiar los nombres de dominio y los nombres de los servidores. Consulte la página del comando man krb5.conf(4) para obtener una descripción completa de este archivo.
kdc1 # cat /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://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956 }
En este ejemplo, se modificaron las líneas para las entradas default_realm, kdc, admin_server y domain_realm. Además, se editó la línea que define help_url.
Nota - Si desea restringir los tipos de cifrado, puede definir las líneas default_tkt_enctypes o default_tgs_enctypes. Consulte Uso de los tipos de cifrado de Kerberos para obtener una descripción de los problemas relacionados con la restricción de los tipos de cifrado.
Necesita cambiar el nombre de dominio. Consulte la página del comando man kdc.conf(4) para obtener una descripción completa de este archivo.
kdc1 # cat /etc/krb5/kdc.conf [kdcdefaults] kdc_ports = 88,750 [realms] EXAMPLE.COM = { profile = /etc/krb5/krb5.conf database_name = /var/krb5/principal admin_keytab = /etc/krb5/kadm5.keytab 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 }
En este ejemplo, se modificó la definición del nombre de dominio en la sección realms. Además, en la sección realms, se agregaron líneas para permitir la propagación incremental y para seleccionar el número de actualizaciones que el KDC maestro mantiene en el registro.
Nota - Si desea restringir los tipos de cifrado, puede definir las líneas permitted_enctypes, supported_enctypes o master_key_type. Consulte Uso de los tipos de cifrado de Kerberos para obtener una descripción de los problemas relacionados con la restricción de los tipos de cifrado.
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 da al principal kws/admin en el dominio EXAMPLE.COM la capacidad de modificar los principales o las políticas en el KDC. La instalación predeterminada incluye un asterisco (*) para que concuerde con todos los principales admin. Este valor predeterminado puede ser un riesgo de seguridad, por lo que es más seguro incluir una lista de todos los principales admin. Consulte la página del comando man kadm5.acl(4) para obtener más información.
Los próximos pasos secundarios crean los principales que son utilizados por el servicio Kerberos.
kdc1 # /usr/sbin/kadmin.local kadmin.local:
Puede agregar tantos principales admin como necesite. Debe agregar, al menos, un principal admin para completar el proceso de configuración del KDC. Para este ejemplo, se agrega un 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 the password> Re-enter password for principal kws/admin@EXAMPLE.COM: <Type it again> Principal "kws/admin@EXAMPLE.COM" created. kadmin.local:
Esta secuencia de comandos crea un archivo keytab especial con entradas de principales para kadmin y changepw. Estos principales son necesarios para el servicio kadmind. Tenga en cuenta que 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 archivo /etc/resolv.conf.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.example.com Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.example.com Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal changepw/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/changepw Entry for principal kadmin/changepw with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. Entry for principal kadmin/changepw with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab. kadmin.local:
Ha agregado todos los principales necesarios para los pasos siguientes.
kadmin.local: quit
Si los servidores LDAP y KDC se están ejecutando en el mismo host y si el servicio LDAP está configurado con un FMRI de SMF, agregue una dependencia al servicio LDAP para los daemons Kerberos. Esto reiniciará el servicio KDC si el servicio LDAP se reinicia.
# 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
# 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
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
En este punto, puede agregar principales con la herramienta gráfica de administración de Kerberos. Para ello, debe iniciar sesión con uno de los nombres de principales admin creados anteriormente en este procedimiento. Sin embargo, el siguiente ejemplo de línea de comandos se muestra para que resulte más sencillo.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
El principal host es utilizado por aplicaciones Kerberizadas, como klist y kprop. Los clientes utilizan este principal cuando montan un sistema de archivos NFS autenticado. Tenga en cuenta que 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 archivo /etc/resolv.conf.
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
Este principal es utilizado por la utilidad kclient durante la instalación de un cliente Kerberos. Si no planea utilizar esta utilidad, no tiene que agregar el principal. Los usuarios de la utilidad kclient necesitan usar esta contraseña.
kadmin: addprinc clntconfig/admin Enter password for principal clntconfig/admin@EXAMPLE.COM:<Type the password> Re-enter password for principal clntconfig/admin@EXAMPLE.COM: <Type it again> Principal "clntconfig/admin@EXAMPLE.COM" created. kadmin:
La adición del principal host al archivo keytab permite que este principal se utilice automáticamente.
kadmin: ktadd host/kdc1.example.com Entry for principal host/kdc1.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/kdc1.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/kdc1.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/kdc1.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
No es necesario instalar ni utilizar el protocolo de hora de red (NTP). Sin embargo, cada reloj debe estar dentro de la hora predeterminada que está definida en la sección libdefaults del archivo krb5.conf para que la autenticación se realice con éxito. Consulte Sincronización de relojes entre clientes Kerberos y KDC para obtener información sobre el NTP.
Para proporcionar redundancia, asegúrese de instalar, al menos, un KDC esclavo. Consulte Cómo configurar manualmente un KDC esclavo para obtener instrucciones específicas.
En este procedimiento, se configura un nuevo KDC esclavo denominado kdc2. Además, se configura la propagación incremental. 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
Principal admin = kws/admin
Antes de empezar
El KDC maestro debe estar configurado. Para obtener instrucciones específicas si este esclavo se va a intercambiar, consulte Intercambio de un KDC maestro y un KDC esclavo.
Debe iniciar sesión con uno de los nombres de principales admin que creó cuando configuró el KDC maestro.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Para que el esclavo funcione, debe tener un principal host. Tenga en cuenta que 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 archivo /etc/resolv.conf.
kadmin: addprinc -randkey host/kdc2.example.com Principal "host/kdc2.example.com@EXAMPLE.COM" created. kadmin:
El principal kiprop se utiliza para autorizar la propagación incremental del KDC maestro.
kadmin: addprinc -randkey kiprop/kdc2.example.com Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created. kadmin:
kadmin: quit
Debe agregar una entrada para cada esclavo. Consulte la página del comando man krb5.conf(4) para obtener una descripción completa de este archivo.
kdc1 # cat /etc/krb5/krb5.conf . . [realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com }
Esta entrada permite que el KDC maestro reciba solicitudes de propagación incremental para el servidor kdc2.
kdc1 # cat /etc/krb5/kadm5.acl */admin@EXAMPLE.COM * kiprop/kdc2.example.com@EXAMPLE.COM p
kdc1 # svcadm restart network/security/kadmin
Este paso se debe realizar en todos los KDC esclavos, ya que el servidor KDC maestro ha actualizado información que cada servidor KDC necesita. Puede utilizar ftp o un mecanismo de transferencia similar para capturar copias de los siguientes archivos del KDC maestro:
/etc/krb5/krb5.conf
/etc/krb5/kdc.conf
Esta información se debe actualizar en todos los servidores KDC esclavos.
kdc2 # cat /etc/krb5/kpropd.acl host/kdc1.example.com@EXAMPLE.COM host/kdc2.example.com@EXAMPLE.COM
Un archivo kadm5.acl sin modificaciones sería de la siguiente manera:
kdc2 # cat /etc/krb5/kadm5.acl */admin@___default_realm___ *
Si el archivo tiene entradas kiprop, elimínelas.
Reemplace la entrada sunw_dbprop_master_ulogsize por una entrada que defina sunw_dbprop_slave_poll. La entrada establece el tiempo de sondeo en 2 min.
kdc1 # cat /etc/krb5/kdc.conf [kdcdefaults] kdc_ports = 88,750 [realms] EXAMPLE.COM= { profile = /etc/krb5/krb5.conf database_name = /var/krb5/principal admin_keytab = /etc/krb5/kadm5.keytab 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_slave_poll = 2m }
Debe iniciar sesión con uno de los nombres de principales admin que creó cuando configuró el KDC maestro.
kdc2 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
Esta entrada permite que kprop y otras aplicaciones Kerberizadas funcionen. Tenga en cuenta que 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 archivo /etc/resolv.conf.
kadmin: ktadd host/kdc2.example.com Entry for principal host/kdc2.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/kdc2.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/kdc2.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/kdc2.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc2.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
La adición del principal kiprop al archivo krb5.keytab permite que el comando kpropd se autentique cuando se inicia la propagación incremental.
kadmin: ktadd kiprop/kdc2.example.com Entry for principal kiprop/kdc2.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 kiprop/kdc2.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 kiprop/kdc2.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 kiprop/kdc2.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
kdc2 # /usr/lib/krb5/kpropd
kdc2 # /usr/sbin/kdb5_util stash kdb5_util: Cannot find/read stored master key while reading master key kdb5_util: Warning: proceeding without master key Enter KDC database master key: <Type the key>
kdc2 # pkill kpropd
No es necesario instalar ni utilizar el protocolo de hora de red (NTP). Sin embargo, cada reloj debe estar dentro de la hora predeterminada que está definida en la sección libdefaults del archivo krb5.conf para que la autenticación se realice con éxito. Consulte Sincronización de relojes entre clientes Kerberos y KDC para obtener información sobre el NTP.
Cuando el servicio krb5kdc está habilitado, kpropd también se inicia si el sistema está configurado como esclavo.
kdc2 # svcadm enable network/security/krb5kdc
Cuando el principal Servicio de otorgamiento de tickets (TGS) sólo tiene una clave DES, que es el caso de los servidores KDC creados antes de la versión Solaris 10, la clave restringe el tipo de cifrado de la clave de la sesión Ticket de otorgamiento de tickets (TGT) a DES. Si un KDC se actualiza a una versión que admite otros tipos de cifrado más seguros, el administrador puede esperar que un cifrado más seguro se utilice para todas las claves de sesión generadas por el KDC. Sin embargo, si al principal TGS existente no se le actualizan las claves para incluir los nuevos tipos de cifrado, la clave de la sesión TGT seguirá estando limitada a DES. El siguiente procedimiento actualiza la clave para que se puedan utilizar tipos de cifrado adicionales.
kdc1 % /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin: cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM
Ejemplo 23-1 Actualización de claves de principales de un servidor maestro
Si ha iniciado sesión en el KDC maestro como root, puede actualizar el principal del servicio TGS con el siguiente comando:
kdc1 # kadmin.local -q 'cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM'