Sun Guía de Sun Enterprise Authentication Mechanism

Administración de la base de datos de Kerberos

La base de datos de Kerberos es el nodo central del sistema y debe mantenerse adecuadamente. Este apartado presenta algunos de los procedimientos sobre cómo administrar la base de datos de Kerberos, por ejemplo, realizar una copia de seguridad y restaurar la base de datos, configurar la propagación paralela y la administración del archivo de reserva. En "Configuración de un KDC maestro" se pueden encontrar los pasos para configurar inicialmente la base de datos.

Copia de seguridad y propagación de la base de datos de Kerberos

La propagación de la base de datos de Kerberos desde el KDC maestro a los esclavos es una de las tareas de configuración más importantes. Si no se produce suficientemente a menudo, el KDC maestro y los esclavos no estarán sincronizados, de forma que si se desactiva el KDC maestro, los KDC esclavos no tendrán la información de base de datos más reciente. Además, si se ha configurado un KDC esclavo como un maestro para el equilibrio de cargas, los clientes que utilicen ese esclavo como un KDC maestro no tendrán la información más reciente. Por tanto, es importante asegurarse de que la propagación se produzca suficientemente a menudo, según la frecuencia de cambio de la base de datos de Kerberos.

Al tiempo que configura el KDC maestro, configura también kprop_script en un trabajo de cron para realizar una copia de seguridad automática de la base de datos de Kerberos en el archivo de volcado /var/krb5/slave_datatrans y para propagarlo a los KDC esclavos. Sin embargo, al igual que cualquier archivo, la base de datos de Kerberos puede corromperse. Si esto sucede en uno de los KDC esclavos, quizás nunca lo advierta, ya que la siguiente propagación automática de la base de datos instalará una copia reciente. Sin embargo, si sucede en el KDC maestro, se propagará la base de datos corrompida a todos los esclavos durante la propagación siguiente. Además, la base de datos corrompida sobrescribe el archivo de copia de seguridad anterior no corrompido del KDC maestro.

Como en esta situación no hay ninguna copia de seguridad "segura", también debería configurar periódicamente un trabajo de cron para copiar el archivo de volcado slave_datatrans a otra posición o para crear otra copia de seguridad independiente mediante el comando dump de kdb5_util. Así, si se corrompe su base de datos, puede restaurar la copia de seguridad más reciente en el KDC maestro mediante el comando load de kdb5_util.

Otro aspecto importante es que, como el archivo de volcado de la base de datos contiene las claves de principal, debe protegerlo contra su acceso por usuarios no autorizados (de forma predeterminada, el archivo de volcado de la base de datos únicamente tiene permiso de lectura/escritura para root). Esto incluye utilizar solamente el comando kprop para propagar el archivo de volcado de la base de datos, que encripta los datos que se están transfiriendo. Además, kprop únicamente propaga los datos a los KDC esclavos, lo que minimiza la posibilidad de enviar accidentalmente el volcado de la base de datos a sistemas no autorizados.


Precaución - Precaución -

Si se actualiza la base de datos de Kerberos después de que se haya propagado y, si resulta corrompida a continuación antes de la siguiente propagación, los esclavos no contendrán las actualizaciones: éstas se perderán. Debido a esta situación, si agrega actualizaciones importantes a la base de datos antes de una propagación planificada regularmente, debería propagar la base de datos manualmente para evitar la pérdida de datos.


Archivo kpropd.acl

El archivo kpropd.acl de un KDC proporciona una lista de los nombres de principal de sistema, uno por línea, que especifica los sistemas desde los que el KDC puede recibir una base de datos actualizada a través del mecanismo de propagación. Si se utiliza el KDC maestro para propagar todos los KDC esclavos, el archivo kpropd.acl de cada esclavo únicamente necesita contener el nombre de principal de sistema del maestro.

Sin embargo, la instalación de SEAM y los pasos de configuración siguientes de esta guía le indican que agregue el mismo archivo kpropd.acl a los KDC maestros y esclavos. Este archivo contiene todos los nombres de principal de KDC. Tal configuración permite realizar la propagación desde cualquier KDC, en caso de que el KDC de propagación no esté disponible temporalmente. Además, conservar una copia idéntica en todos los KDC hace que sea fácil de mantener.

Comando kprop_script

El comando kprop_script utiliza kprop para propagar la base de datos de Kerberos a otros KDC (si se ejecuta kprop_script en un KDC esclavo, propaga la copia del esclavo de la base de datos de Kerberos a otros KDC). kprop_script acepta como argumentos una lista de nombres de sistema separados por espacios, que señalan los KDC que deben propagarse.

Cuando se ejecuta kprop_script, crea una copia de seguridad de la base de datos de Kerberos en el archivo /var/krb5/slave_datatrans y copia el archivo a los KDC especificados. La base de datos de Kerberos está bloqueada hasta que termine la propagación.

Realización de una copia de seguridad de la base de datos de Kerberos

  1. Conviértase en superusuario en el KDC maestro.

  2. Puede hacer una copia de seguridad de la base de datos de Kerberos mediante el comando dump de kdb5_util.


    # /usr/krb5/sbin/kdb5_util dump [-verbose] [-d nombre_bd] [nombre_archivo 
    [principales...]]

    -verbose

    Imprime el nombre de cada principal y norma que se está copiando. 

    nombre_bd

    El nombre de la base de datos que se copiará. Tenga en cuenta que se anexará ".db" al nombre de la base de datos que se especifique, y que se puede establecer una ruta completa para el archivo. Si no se especifica la opción -d, el nombre de la base de datos predeterminada es /var/krb5/principal, que en realidad se convierte en /var/krb5/principal.db.

    nombre_archivo

    El archivo donde se copiará la base de datos. Puede especificarse una ruta completa para el archivo. Si no especifica un archivo, se volcará la base de datos en la salida estándar. 

    principal

    Una lista de uno o varios principales (separados por un espacio) que se copiarán. Debe utilizar los nombres de principal completos. Si no especifica los principales, se copiará la base de datos completa. 

Ejemplo: copia de seguridad de la base de datos de Kerberos

El ejemplo siguiente hace una copia de seguridad de la base de datos de Kerberos en un archivo llamado volcado. Como se especifica la opción -verbose, se imprimirá cada principal a medida que se copia.


# kbd5_util dump -verbose volcado 
kadmin/kdc1.ing.acme.com@ING.ACME.COM 
krbtgt/ing.acme.com@ING.ACME.COM 
kadmin/history@ING.ACME.COM 
pak/admin@ING.ACME.COM 
pak@ING.ACME.COM 
changepw/kdc1.ing.acme.com@ING.ACME.COM 
#

El ejemplo siguiente copia los principales pak y pak/admin de la base de datos de Kerberos.


# kdb5_util dump -verbose volcado pak/admin@ING.ACME.COM pak@ING.ACME.COM
pak/admin@ING.ACME.COM 
pak@ING.ACME.COM #

Restauración de la base de datos de Kerberos

  1. Conviértase en superusuario en el KDC maestro.

  2. Puede restablecer la base de datos de Kerberos mediante el comando load de kdb_util.


    # /usr/krb5/sbin/kdb5_util load [-verbose] [-d nombre_bd] [-update] 
    [nombre_archivo] 

    -verbose

    Imprime el nombre de cada principal y norma que se está restaurando. 

    nombre_bd

    El nombre de la base de datos que se restaurará. Tenga en cuenta que se anexará ".db" al nombre de base de datos que se especifique, y que se puede establecer una ruta completa para el archivo. Si no se especifica la opción -d, el nombre de la base de datos predeterminada es /var/krb5/principal, que en realidad se convierte en /var/krb5/principal.db.

    -update

    Actualiza la base de datos; de lo contrario, se crea una base de datos nueva o se sobrescribe la base de datos. 

    nombre_archivo

    El archivo desde el que se restaurará la base de datos. Puede especificarse una ruta completa para el archivo.  

Ejemplo: restauración de la base de datos de Kerberos

El ejemplo siguiente restaura la base de datos llamada basedatos1.db en el directorio actual desde el archivo volcado. Como no se especifica la opción -update, la operación de restauración crea una base de datos nueva.


# kdb5_util load -d basedatos1 volcado

Propagación manual de la base de datos de Kerberos a los KDC esclavos

Este procedimiento muestra cómo propagar la base de datos de Kerberos mediante el comando kprop. Si desea sincronizar un KDC esclavo con el KDC maestro fuera del trabajo cron periódico, puede utilizar esta opción. Además, a diferencia de kprop_script, puede utilizar kprop para propagar la copia de seguridad de la base de datos actual sin hacer primero una nueva copia de seguridad de la base de datos.

  1. Conviértase en superusuario en el KDC maestro.

  2. (Opcional) Haga una copia de seguridad de la base de datos mediante el comando kdb5_util.


    # /usr/krb5/sbin/kdb5_util dump /var/krb5/slave_datatrans
    
  3. Propague la base de datos a un KDC esclavo mediante el comando kprop.


    # /usr/krb5/lib/kprop -f /var/krb5/slave_datatrans KDC_esclavo
    

Si desea hacer 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 de la forma siguiente:


# /usr/krb5/lib/kprop_script KDC_esclavo

Configuración de la propagación paralela

En la mayoría de casos, se utiliza exclusivamente el KDC maestro para propagar la base de datos a los KDC esclavos. Sin embargo, si su sede tiene muchos KDC esclavos, quizás piense en compartir la carga del proceso de propagación, conocido como propagación paralela.

La propagación paralela permite a determinados KDC esclavos compartir las tareas de propagación con el KDC maestro. Esto permite que la propagación se lleve a cabo más rápido y aligerar el trabajo del KDC maestro.

Por ejemplo, suponga que su sede tiene un maestro y seis esclavos (como aparece en Figura 3-2), donde esclavo-1 a esclavo-3 componen una agrupación lógica y esclavo-4 a esclavo-6 forman otra. Para configurar la propagación paralela, podría hacer que el KDC maestro propague la base de datos de esclavo-1 a esclavo-4 y éstos, a su vez, podrían propagarla a los de su grupo.

Figura 3-2 Ejemplo de configuración de propagación paralela

Graphic

Configuración de la propagación paralela

Este procedimiento no es detallado ni paso a paso, sino una lista de alto nivel de los pasos de configuración para habilitar la propagación paralela.

  1. En el KDC maestro, cambie la entrada kprop_script en su propio trabajo cron para que incluya argumentos sólo para los esclavos que llevarán a cabo la propagación siguiente (esclavos de propagación).

  2. En cada esclavo de propagación, agregue una entrada kprop_script a su trabajo de cron, que debe incluir argumentos para los esclavos que se propagarán. Para propagar en paralelo satisfactoriamente, debe configurarse el trabajo cron para que se ejecute después de que el esclavo de propagación se actualice con la base de datos nueva.


    Nota -

    Determinar la duración de la propagación de un esclavo de propagación depende de factores como el ancho de banda de red y del tamaño de la base de datos.


  3. Configure los permisos apropiados para propagar en cada KDC esclavo. Esto se lleva a cabo agregando el nombre del principal de sistema de su KDC de propagación a su archivo kpropd.acl.

Ejemplo: configuración de la propagación paralela

Si utiliza el ejemplo de Figura 3-2, la entrada kprop_script del KDC maestro tendría un aspecto similar a:

10 3 * * * /usr/krb5/lib/kprop_script esclavo-1.acme.com esclavo-4.acme.com

La entrada kprop_script de esclavo-1 tendría un aspecto similar al siguiente (tenga en cuenta que la propagación del esclavo comienza una hora más tarde de que esté propagada por el maestro):

10 4 * * * /usr/krb5/lib/kprop_script esclavo-2.acme.com esclavo-3.acme.com

El archivo kpropd.acl de los esclavos de propagación debería contener la entrada siguiente:

host/master.acme.com@ACME.COM

El archivo kpropd.acl de los esclavos que están siendo propagados por esclavo-1 debería contener la entrada siguiente:

host/esclavo-1.acme.com@ACME.COM

Administración del archivo de reserva

El archivo de reserva contiene la clave maestra para la base de datos de Kerberos, que se crea automáticamente al construir una base de datos de Kerberos. Si se corrompe el archivo de reserva, puede utilizar el comando stash de kdb5_util(1M) para sustituirlo. La única vez en que puede ser necesario eliminar un archivo de reserva es después de suprimir la base de datos de Kerberos con el comando destroy de kdb5_util. Como el archivo de reserva no se elimina automáticamente con la base de datos, debe suprimirlo para terminar la reorganización.

Eliminación de un archivo de reserva

  1. Conviértase en superusuario en el KDC que contiene el archivo de reserva.

  2. Elimine el archivo de reserva.


    # rm archivo_reserva
    

    archivo_reserva

    La ruta al archivo de reserva. De forma predeterminada, se encuentra en /var/krb5/.k5.ámbito.

Si necesita volver a crear el archivo de reserva, puede utilizar la opción -f del comando kdb5_util.