Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Administración de Oracle Solaris: servicios de seguridad Oracle Solaris 11 Information Library (Español) |
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. Servicio de análisis de virus (tareas)
5. Control de acceso a dispositivos (tareas)
6. Uso de la herramienta básica de creación de informes de auditoría (tareas)
7. Control de acceso a archivos (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. Atributos de seguridad en Oracle Solaris (referencia)
Parte IV Servicios criptográficos
11. Estructura criptográfica (descripción general)
12. Estructura criptográfica (tareas)
13. Estructura de gestión de claves
Parte V Servicios de autenticación y comunicación segura
14. Autenticación de servicios de red (tareas)
17. Uso de Secure Shell (tareas)
19. Introducción al servicio Kerberos
20. Planificación del servicio Kerberos
21. 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 automáticamente un KDC maestro
Cómo configurar interactivamente un KDC maestro
Cómo configurar manualmente un KDC maestro
Cómo configurar un KDC para utilizar un servidor de datos LDAP
Cómo configurar automáticamente un KDC esclavo
Cómo configurar interactivamente un KDC esclavo
Cómo configurar manualmente un KDC esclavo
Cómo refrescar 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
Cómo utilizar el servicio de seguridad genérico con Kerberos al ejecutar FTP
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 un cliente Kerberos para un servidor de Active Directory
Cómo configurar manualmente un cliente Kerberos
Cómo deshabilitar la verificación del ticket de otorgamiento de tickets
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
Cómo configurar el bloqueo de cuenta
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
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
22. Mensajes de error y resolución de problemas de Kerberos
23. Administración de las políticas y los principales de Kerberos (tareas)
24. Uso de aplicaciones Kerberos (tareas)
25. El servicio Kerberos (referencia)
Parte VII Auditoría en Oracle Solaris
26. Auditoría (descripción general)
27. Planificación de la auditoría
La base de datos de Kerberos es la red principal de Kerberos y se debe mantener correctamente. En esta sección, se proporcionan algunos procedimientos sobre cómo administrar la base de datos de Kerberos, como la copia de seguridad y restauración de la base de datos, la configuración de la propagación incremental o en paralelo, y la administración del archivo intermedio. Los pasos para configurar inicialmente la base de datos se detallan en Cómo configurar manualmente un KDC maestro.
La propagación de la base de datos de Kerberos desde el KDC maestro hasta los KDC esclavos es una de las tareas de configuración más importantes. Si la propagación no ocurre con suficiente frecuencia, el KDC maestro y los KDC esclavos pierden la sincronización. Por lo tanto, si el KDC maestro deja de funcionar, los KDC esclavos no tendrán la información más reciente de la base de datos. Además, si un KDC esclavo se ha configurado como un KDC maestro con fines de equilibrio de carga, los clientes que utilicen ese KDC esclavo como KDC maestro no tendrán la información más reciente. Por lo tanto, debe asegurarse de que la propagación se produzca con suficiente frecuencia o configurar los servidores para la propagación incremental en función de la frecuencia con la que se cambia la base de datos de Kerberos. La propagación incremental se prefiere frente a la propagación manual porque hay más sobrecarga administrativa cuando se propaga manualmente la base de datos. También hay ineficacias cuando se realiza la propagación completa de la base de datos.
Al configurar el KDC maestro, se configura el comando kprop_script en un trabajo cron para realizar automáticamente una copia de seguridad de la base de datos de Kerberos en el archivo de volcado /var/krb5/slave_datatrans y propagarlo a los KDC esclavos. No obstante, como con cualquier archivo, la base de datos de Kerberos puede dañarse. Si se dañan los datos en un KDC esclavo, es posible que nunca lo note, porque la próxima propagación automática de la base de datos instala una copia nueva. Sin embargo, si se dañan los datos en el KDC maestro, la base de datos dañada se propaga a todos los KDC esclavos durante la siguiente propagación. Por lo tanto, la copia de seguridad dañada sobrescribe el archivo de copia de seguridad anterior que no está dañado en el KDC maestro.
Debido a que no hay ninguna copia de seguridad “segura” en este escenario, también debe configurar un trabajo cron para copiar periódicamente el archivo de volcado slave_datatrans en otra ubicación o para crear otra copia de seguridad separada mediante el comando dump de kdb5_util. De este modo, si se daña su base de datos, puede restaurar la copia de seguridad más reciente en el KDC maestro mediante el comando load de kdb5_util.
Otra nota importante: debido a que el archivo de volcado de la base de datos contiene claves de principales, necesita proteger el archivo contra el acceso de usuarios no autorizados. De manera predeterminada, el archivo de volcado de la base de datos tiene permisos de lectura y escritura sólo como root. Para protegerlo contra el acceso no autorizado, utilice sólo el comando kprop para propagar el archivo de volcado de la base de datos, que cifra los datos que se transfieren. Además, kprop propaga los datos sólo a los KDC esclavos, lo cual minimiza la posibilidad de enviar accidentalmente el archivo de volcado de la base de datos a hosts no autorizados.
Precaución - Si la base de datos de Kerberos se actualiza después de ser propagada y si la base se daña posteriormente antes de la siguiente propagación, los KDC esclavos no contendrán las actualizaciones. Las actualizaciones se perderán. Por este motivo, si agrega actualizaciones importantes a la base de datos de Kerberos antes de una propagación programada con regularidad, debe propagar manualmente la base de datos para evitar pérdidas de datos. |
El archivo kpropd.acl en un KDC esclavo proporciona una lista de nombres de principales host, un nombre por línea, que especifica los sistemas desde los cuales el KDC puede recibir una base de datos actualizada mediante la propagación. Si el KDC maestro se utiliza para propagar todos los KDC esclavos, el archivo kpropd.acl de cada esclavo necesita contener sólo el nombre del principal host del KDC maestro.
Sin embargo, la instalación de Kerberos y los pasos de configuración posteriores en este manual le indican que agregue el mismo archivo kpropd.acl al KDC maestro y a los KDC esclavos. Este archivo contiene todos los nombres de principales host del KDC. Esta configuración permite propagar desde cualquier KDC, en caso de que los KDC que se propagan no estén disponibles temporalmente. De este modo, al conservar una copia idéntica en todos los KDC, hace que la configuración sea fácil de mantener.
El comando kprop_script usa el comando kprop para propagar la base de datos de Kerberos a otros KDC. Si el comando kprop_script se ejecuta en un KDC esclavo, propaga la copia del KDC esclavo de la base de datos de Kerberos a otros KDC. El comando kprop_script acepta una lista de nombres de host para argumentos, separados por espacios, que indican los KDC para propagar.
Cuando kprop_script se ejecuta, crea una copia de seguridad de la base de datos de Kerberos en el archivo /var/krb5/slave_datatrans y copia el archivo en los KDC especificados. La base de datos de Kerberos se bloquea hasta que la propagación se termina.
Para obtener más información, consulte Cómo obtener derechos administrativos.
# /usr/sbin/kdb5_util dump [-verbose] [-d dbname] [filename [principals...]]
Imprime el nombre de cada principal y política a los que se está realizando una copia de seguridad.
Define el nombre de la base de datos para realizar copia de seguridad. Tenga en cuenta que puede especificar una ruta absoluta para el archivo. Si la opción -d no está especificada, el nombre de la base de datos predeterminado es /var/krb5/principal.
Define el archivo que se utiliza para realizar la copia de seguridad de la base de datos. Puede especificar una ruta absoluta para el archivo. Si no especifica un archivo, la base de datos se vuelca a una salida estándar.
Define una lista de uno o más principales (separados por un espacio) para realizar copia de seguridad. Debe utilizar nombres completos de principales. Si no especifica ningún principal, se realiza una copia de seguridad de la base de datos completa.
Ejemplo 21-16 Copia de seguridad de la base de datos de Kerberos
En el siguiente ejemplo, se realiza una copia de seguridad de la base de datos de Kerberos en un archivo denominado dumpfile. Debido a que la opción -verbose está especificada, cada principal se imprime a medida que se le realiza una copia de seguridad.
# kdb5_util dump -verbose dumpfile kadmin/kdc1.eng.example.com@ENG.EXAMPLE.COM krbtgt/ENG.EXAMPLE.COM@ENG.EXAMPLE.COM kadmin/history@ENG.EXAMPLE.COM pak/admin@ENG.EXAMPLE.COM pak@ENG.EXAMPLE.COM changepw/kdc1.eng.example.com@ENG.EXAMPLE.COM
En el ejemplo siguiente, se realiza una copia de seguridad de los principales pak y pak/admin de la base de datos de Kerberos.
# kdb5_util dump -verbose dumpfile pak/admin@ENG.EXAMPLE.COM pak@ENG.EXAMPLE.COM pak/admin@ENG.EXAMPLE.COM pak@ENG.EXAMPLE.COM
kdc1 # svcadm disable network/security/krb5kdc kdc1 # svcadm disable network/security/kadmin
# /usr/sbin/kdb5_util load [-verbose] [-d dbname] [-update] [filename]
Imprime el nombre de cada principal y política que se están restaurando.
Define el nombre de la base de datos para restaurar. Tenga en cuenta que puede especificar una ruta absoluta para el archivo. Si la opción -d no está especificada, el nombre de la base de datos predeterminado es /var/krb5/principal.
Actualiza la base de datos existente. De lo contrario, se crea una base de datos nueva o la base de datos existente se sobrescribe.
Define el archivo desde el cual se va a restaurar la base de datos. Puede especificar una ruta absoluta para el archivo.
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
Ejemplo 21-17 Restauración de la base de datos de Kerberos
En el ejemplo siguiente, la base de datos denominada database1 se restaura en el directorio actual del archivo dumpfile. Debido a que la opción -update no está especificada, se crea una base de datos nueva con la restauración.
# kdb5_util load -d database1 dumpfile
Si la base de datos del KDC se ha creado en un servidor que ejecuta la versión Solaris 8 o Solaris 9, la conversión de la base de datos permite aprovechar el formato de base de datos mejorado.
Antes de empezar
Asegúrese de que la base de datos esté utilizando un formato antiguo.
kdc1 # svcadm disable network/security/krb5kdc kdc1 # svcadm disable network/security/kadmin
kdc1 # mkdir /var/krb5/tmp kdc1 # chmod 700 /var/krb5/tmp
kdc1 # kdb5_util dump /var/krb5/tmp/prdb.txt
kdc1 # cd /var/krb5 kdc1 # mv princ* tmp/
kdc1 # kdb5_util load /var/krb5/tmp/prdb.txt
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
Los pasos de este procedimiento se pueden utilizar para volver a configurar un KDC maestro existente a fin de utilizar la propagación incremental. 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
KDC esclavo = kdc2.example.com
Principal admin = kws/admin
Necesita habilitar la propagación incremental y seleccionar el número de actualizaciones que el KDC maestro mantiene en el registro. Consulte la página del comando man kdc.conf(4) para obtener más información.
kdc1 # cat /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 }
El principal kiprop se utiliza para autenticar el servidor KDC maestro y para autorizar las actualizaciones del KDC maestro.
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin: addprinc -randkey kiprop/kdc1.example.com Principal "kiprop/kdc1.example.com@EXAMPLE.COM" created. kadmin: addprinc -randkey kiprop/kdc2.example.com Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created. kadmin:
Esta entrada permite que el KDC maestro reciba solicitudes de propagación incremental del servidor kdc2.
kdc1 # cat /etc/krb5/kadm5.acl */admin@EXAMPLE.COM * kiprop/kdc2.example.com@EXAMPLE.COM p
Este paso impide que el KDC maestro propague su copia de la base de datos del KDC.
kdc1 # crontab -e #ident "@(#)root 1.20 01/11/06 SMI" # # The root crontab should be used to perform accounting data collection. # # The rtc command is run to adjust the real time clock if and when # daylight savings time changes. # 10 3 * * * /usr/sbin/logadm 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean #10 3 * * * /usr/lib/krb5kprop_script kdc2.example.sun.com #SUNWkr5ma
kdc1 # svcadm restart network/security/kadmin
Consulte Cómo reconfigurar un KDC esclavo para utilizar la propagación incremental para obtener instrucciones completas.
La primera nueva entrada permite la propagación progresiva. La segunda nueva entrada establece el tiempo de sondeo en dos minutos.
kdc2 # cat /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_slave_poll = 2m }
kdc2 # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> 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: quit
kdc2 # svcadm restart network/security/krb5_prop
En este procedimiento se muestra cómo reconfigurar un servidor KDC esclavo que ejecuta la versión Solaris 10 para utilizar la propagación completa. Normalmente, el procedimiento sólo se debe utilizar si el servidor KDC maestro ejecuta la versión Solaris 9 o una versión anterior. En este caso, el servidor KDC maestro no puede admitir la propagación incremental, por lo que el esclavo debe estar configurado para que la propagación funcione.
En este procedimiento, se configura un KDC esclavo denominado kdc3. 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 y kdc3.example.com
Principal admin = kws/admin
URL de ayuda en pantalla = http://download.oracle.com/docs/cd/E23824_01/html/821-1456/aadmin-23.html
Nota - Ajuste la dirección URL para que establezca un enlace a la sección, como se describe en URL de ayuda en pantalla en la herramienta gráfica de administración de Kerberos.
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 servicio de nombres.
kadmin: addprinc -randkey host/kdc3.example.com Principal "host/kdc3@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 kdc = kdc3.example.com admin_server = kdc1.example.com }
Consulte la página del comando man kprop(1M) para obtener una descripción completa de este archivo.
kdc1 # cat /etc/krb5/kpropd.acl host/kdc1.example.com@EXAMPLE.COM host/kdc2.example.com@EXAMPLE.COM host/kdc3.example.com@EXAMPLE.COM
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
/etc/krb5/kpropd.acl
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.
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 servicio de nombres.
kadmin: ktadd host/kdc3.example.com Entry for principal host/kdc3.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/kdc3.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/kdc3.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/kdc3.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/kdc3.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
Agregue el nombre de cada servidor KDC esclavo al final de la línea kprop_script.
10 3 * * * /usr/lib/krb5/kprop_script kdc2.example.com kdc3.example.com
Es posible que también desee cambiar la hora de las copias de seguridad. Esta entrada inicia el proceso de copia de seguridad cada día a las 3:10 a. m.
kdc3 # svcadm enable network/security/krb5_prop
Si ya hay disponible una copia de seguridad de la base de datos, no es necesario completar otra copia de seguridad. Consulte Cómo propagar manualmente la base de datos de Kerberos a los KDC esclavos para obtener más instrucciones.
kdc1 # /usr/lib/krb5/kprop_script kdc3.example.com Database propagation to kdc3.example.com: SUCCEEDED
kdc3 # /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>
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.
kdc3 # svcadm enable network/security/krb5kdc
Si la propagación incremental se ha configurado, este procedimiento garantiza que la información en el KDC esclavo se ha actualizado.
kdc1 # /usr/sbin/kproplog -h
kdc2 # /usr/sbin/kproplog -h
Ejemplo 21-18 Verificación de que los servidores KDC estén sincronizados
A continuación, se muestra un ejemplo de resultados de la ejecución del comando kproplog en el servidor KDC maestro.
kdc1 # /usr/sbin/kproplog -h Kerberos update log (/var/krb5/principal.ulog) Update log dump: Log version #: 1 Log state: Stable Entry block size: 2048 Number of entries: 2500 First serial #: 137966 Last serial #: 140465 First time stamp: Fri Nov 28 00:59:27 2004 Last time stamp: Fri Nov 28 01:06:13 2004
A continuación, se muestra un ejemplo de resultados de la ejecución del comando kproplog en un servidor KDC esclavo.
kdc2 # /usr/sbin/kproplog -h Kerberos update log (/var/krb5/principal.ulog) Update log dump: Log version #: 1 Log state: Stable Entry block size: 2048 Number of entries: 0 First serial #: None Last serial #: 140465 First time stamp: None Last time stamp: Fri Nov 28 01:06:13 2004
Tenga en cuenta que los valores para el último número de serie y la última indicación de hora son idénticos, lo que indica que el esclavo está sincronizado con el servidor KDC maestro.
En la salida del servidor KDC esclavo, observe que no existen entradas de actualización en el registro de actualización del servidor KDC esclavo. No existen entradas porque el servidor KDC esclavo no conserva un conjunto de actualizaciones, a diferencia del servidor KDC maestro. Además, el servidor KDC esclavo no incluye información sobre el primer número de serie ni la primera indicación de hora porque no es información relevante.
Este procedimiento muestra cómo propagar la base de datos de Kerberos mediante el comando kprop. Utilice este procedimiento si necesita sincronizar un KDC esclavo con el KDC maestro fuera del trabajo cron periódico. A diferencia de kprop_script, puede utilizar kprop para propagar sólo la copia de seguridad de la base de datos actual sin realizar primero una nueva copia de seguridad de la base de datos de Kerberos.
Nota - No utilice este procedimiento si está usando la propagación incremental.
Para obtener más información, consulte Cómo obtener derechos administrativos.
# /usr/sbin/kdb5_util dump /var/krb5/slave_datatrans
# /usr/lib/krb5/kprop -f /var/krb5/slave_datatrans slave-KDC
Ejemplo 21-19 Propagación manual de la base de datos de Kerberos a los KDC esclavos mediante kprop_script
Si desea realizar una copia de seguridad de la base de datos y propagarla a un KDC esclavo fuera del trabajo cron periódico, también puede utilizar el comando kprop_script, como se indica a continuación:
# /usr/lib/krb5/kprop_script slave-KDC
En la mayoría de los casos, el KDC maestro se utiliza, exclusivamente, para propagar su base de datos de Kerberos a los KDC esclavos. Sin embargo, si su sitio tiene muchos KDC esclavos, es posible que deba considerar el uso compartido de carga del proceso de propagación, conocido como propagación en paralelo.
Nota - No utilice este procedimiento si está usando la propagación incremental.
La propagación en paralelo permite que KDC esclavos específicos compartan las tareas de propagación con el KDC maestro. Este uso compartido de tareas permite que la propagación se realice más rápido y alivie el trabajo para el KDC maestro.
Por ejemplo, suponga que su sitio tiene un KDC maestro y seis KDC esclavos (que se muestran en la Figura 21-2), donde del slave-1 al slave-3 constan de una agrupación lógica y del slave-4 al slave-6 constan de otra agrupación lógica. Para configurar la propagación en paralelo, puede hacer que el KDC maestro propague la base de datos al slave-1 y al slave-4. A su vez, los KDC esclavos pueden propagar la base de datos a los KDC esclavos de su grupo.
Figura 21-2 Ejemplo de configuración de propagación en paralelo
A continuación, no se muestra un procedimiento detallado paso a paso, sino una lista de nivel superior con pasos de configuración para habilitar la propagación en paralelo. Estos pasos implican lo siguiente:
En el KDC maestro, cambie la entrada kprop_script en su trabajo cron a fin de incluir argumentos sólo para los KDC esclavos que realizarán la propagación subsiguiente (los esclavos de propagación).
En cada esclavo de propagación, agregue una entrada kprop_script a su trabajo cron, que debe incluir argumentos para que los esclavos se propaguen. Para propagar en paralelo correctamente, el trabajo cron se debe configurar para que se ejecute después de que el esclavo de propagación se propaga con la nueva base de datos de Kerberos.
Nota - El tiempo que tomará que un esclavo de propagación se propague depende de factores, como el ancho de banda de la red y el tamaño de la base de datos de Kerberos.
En cada KDC esclavo, configure los permisos adecuados que se van a propagar. Este paso se realiza mediante la adición del nombre del principal host del KDC de propagación al archivo kpropd.acl.
Ejemplo 21-20 Configuración de propagación en paralelo
Mediante el ejemplo de la Figura 21-2, la entrada kprop_script de los KDC maestros sería similar a la siguiente:
0 3 * * * /usr/lib/krb5/kprop_script slave-1.example.com slave-4.example.com
La entrada kprop_script de slave-1 sería similar a la siguiente:
0 4 * * * /usr/lib/krb5/kprop_script slave-2.example.com slave-3.example.com
Tenga en cuenta que la propagación en el esclavo comienza una hora después de que es propagado por el maestro.
El archivo kpropd.acl en los esclavos de propagación contendría la siguiente entrada:
host/master.example.com@EXAMPLE.COM
El archivo kpropd.acl en los KDC esclavos que están siendo propagados por slave-1 contendría la siguiente entrada:
host/slave-1.example.com@EXAMPLE.COM
El archivo intermedio contiene la clave maestra para la base de datos de Kerberos, que se crea automáticamente al crear una base de datos de Kerberos. Si el archivo intermedio se daña, puede utilizar el comando stash de la utilidad kdb5_util para sustituir el archivo dañado. La única vez que debe eliminar un archivo intermedio es después de eliminar la base de datos de Kerberos con el comando destroy de kdb5_util. Debido a que el archivo intermedio no se elimina automáticamente con la base de datos, tiene que eliminarlo para finalizar la limpieza.
# rm stash-file
Donde stash-file es la ruta al archivo intermedio. De manera predeterminada, el archivo intermedio se encuentra en /var/krb5/.k5.dominio.
Nota - Si necesita volver a crear el archivo intermedio, puede utilizar la opción -f del comando kdb5_util.
Para obtener más información, consulte Cómo obtener derechos administrativos.
Este comando agrega una nueva clave maestra generada aleatoriamente. La opción -s necesita que la nueva clave maestra se almacene en el archivo keytab predeterminado.
# kdb5_util add_mkey -s Creating new master key for master key principal 'K/M@EXAMPLE.COM' You will be prompted for a new database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: <Type the password> Re-enter KDC database master key to verify: <Type it again>
# kdb5_util list_mkeys Master keys for Principal: K/M@EXAMPLE.COM KNVO: 2, Enctype: AES-128 CTS mode with 96-bit SHA-1 HMAC, No activate time set KNVO: 1, Enctype: DES cbc mode with RSA-MD5, Active on: Wed Dec 31 18:00:00 CST 2001 *
El asterisco en esta salida identifica la clave maestra actualmente activa.
# date Fri Jul 1 17:57:00 CDT 2011 # kdb5_util use_mkey 2 'now+2days' # kdb5_util list_mkeys Master keys for Principal: K/M@EXAMPLE.COM KNVO: 2, Enctype: AES-128 CTS mode with 96-bit SHA-1 HMAC, Active on: Sun Jul 03 17:57:15 CDT 2011 KNVO: 1, Enctype: DES cbc mode with RSA-MD5, Active on: Wed Dec 31 18:00:00 CST 2001 *
En este ejemplo, se define la fecha a dos días antes para darle tiempo a la nueva clave maestra a que se propague a todos los KDC. Ajuste la fecha de manera adecuada para su entorno.
# kadmin.local -q 'getprinc jimf' |egrep 'Principal|MKey' Authenticating as principal root/admin@EXAMPLE.COM with password. Principal: jimf@EXAMPLE.COM MKey: vno 2
En este ejemplo, MKey: vno 2 indica que la clave secreta del principal está protegida por la clave maestra creada recientemente, 2.
Si agregar un argumento de patrón al final del comando, los principales que coincidan con el patrón se actualizarán. Agregue la opción -n a esta sintaxis de comando para identificar qué principales se actualizarán.
# kdb5_util update_princ_encryption -f -v Principals whose keys WOULD BE re-encrypted to master key vno 2: updating: host/kdc1.example.com@EXAMPLE.COM skipping: jimf@EXAMPLE.COM updating: kadmin/changepw@EXAMPLE.COM updating: kadmin/history@EXAMPLE.COM updating: kdc/admin@EXAMPLE.COM updating: host/kdc2.example.com@EXAMPLE.COM 6 principals processed: 5 updated, 1 already current
Después de que una clave maestra ya no se utiliza para proteger ninguna clave secreta de principal, se puede depurar del principal de clave maestra. Este comando no depura la clave si la clave aún está siendo utilizada por algún principal. Agregue la opción -n a este comando para verificar que la clave maestra correcta se depurará.
# kdb5_util purge_mkeys -f -v Purging the follwing master key(s) from K/M@EXAMPLE.COM: KNVO: 1 1 key(s) purged.
# kdb5_util list_mkeys Master keys for Principal: K/M@EXAMPLE.COM KNVO: 2, Enctype: AES-128 CTS mode with 96-bit SHA-1 HMAC, Active on: Sun Jul 03 17:57:15 CDT 2011 *
# kdb5_util stash Using existing stashed keys to update stash file.
# klist -kt /var/krb5/.k5.EXAMPLE.COM Keytab name: FILE:.k5.EXAMPLE.COM KVNO Timestamp Principal ---- ---------------- --------------------------------------------------------- 2 05/07/2011 15:08 K/M@EXAMPLE.COM