Sun Guía de Sun Enterprise Authentication Mechanism

Configuración de servidores KDC

Después de instalar el software de SEAM, debe configurar los servidores KDC. La configuración de un KDC maestro y un KDC esclavo como mínimo proporciona el servicio que genera las credenciales. Éstas son la base de SEAM, por consiguiente deben instalarse los KDC antes de intentar otras tareas.

La diferencia más importante entre un KDC maestro y un esclavo es que sólo aquél puede manejar las solicitudes de administración de la base de datos. Por ejemplo, el cambio una contraseña o la adición de un principal nuevo se deben realizar en el KDC maestro. A continuación, pueden propagarse estos cambios a los KDC esclavos. Tanto éstos como el maestro generan credenciales; esto proporciona redundancia en el caso de que el KDC maestro no pueda responder.

Configuración de un KDC maestro

Para proporcionar un ejemplo completo, asuma que no ha ejecutado el procedimiento de configuración previa. Si lo ha utilizado al instalar el software, no deberá editar muchos de los archivos incluidos en este procedimiento; sin embargo, debería revisar su contenido.

En este procedimiento se utilizan los parámetros de configuración siguientes:

  1. Requisitos previos para configurar un KDC maestro.

    Este procedimiento requiere que esté instalado el software de KDC maestro. Además, DNS debe estar en ejecución. Si el maestro será intercambiable, véase "Intercambio de KDC maestro y esclavo" para obtener instrucciones de asignación de nombres adicionales.

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

  3. Edite el archivo de configuración de Kerberos (krb5.conf).

    Necesita cambiar los nombres de ámbito y los nombres de los servidores. Para obtener una descripción completa de este archivo, véase la página del comando man krb5.conf(4). Si ha instalado el software de SEAM mediante los archivos de configuración, verifique el contenido del archivo en lugar de editarlo.


    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults] 
    default_realm = ACME.COM
    
    [realms]
                    ACME.COM = { 
                    kdc = kdc1.acme.com
                    kdc = kdc2.acme.com
                    admin_server = kdc1.acme.com
            } 
    
    [domain_realm]
            .acme.com = ACME.COM
    # 
    # si el nombre de dominio y el nombre de ámbito son equivalentes, 
    # esta entrada no es necesaria 
    # 
    [logging] 
    default = FILE:/var/krb5/kdc.log 
    kdc = FILE:/var/krb5/kdc.log 
    [appdefaults] 
    gkadmin = 
    { help_url = http://puebla:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
            }

    En este ejemplo, se cambiaron las líneas para default_realm, kdc, admin_server y todas las entradas de domain_realm . Se incluye la línea para default_realm para completar el ejemplo, pero si los nombres del ámbito y del dominio son equivalentes, el programa de instalación no creará esta entrada. Además, se editó la línea que define help_url.

  4. Edite el archivo de configuración del KDC (kdc.conf).

    Necesita cambiar el nombre de ámbito. Para obtener una descripción completa de este archivo, véase la página del comando man kdc.conf(4). Si ha instalado el software de SEAM mediante los archivos de configuración, verifique el contenido del archivo en lugar de editarlo.


    kdc1 # cat /etc/krb5/kdc.conf
    [kdcdefaults] 
    kdc_ports = 88,750 
    
    [realms]
            ACME.COM= { 
    profile = /etc/krb5/krb5.conf 
    database_name = /var/krb5/principal 
    admin_keytab = /var/krb5/kadm5.keytab 
    acl_file = /var/krb5/kadm5.acl 
    kadmind_port = 749 
    max_life = 8h 0m 0s 
    max_renewable_life = 7d 0h 0m 0s 
    }

    En este ejemplo, se ha cambiado la definición del nombre del ámbito del apartado realms.

  5. Cree la base de datos del KDC mediante kdb5_util.

    El comando kdb5_util crea la base de datos del KDC y además, cuando se utiliza con la opción -s, crea un archivo de reserva que se utiliza para autenticar el KDC a sí mismo antes de que se inicien los daemons kadmind y krb5kdc.


    kdc1 # /usr/krb5/sbin/kdb5_util create -r ACME.COM -s
    Inicializando la base de datos '/var/krb5/principal' para el ámbito 'ACME.COM' 
    nombre de clave maestra 'K/M@ACME.COM' 
    Se le solicitará la Contraseña maestra de la base de datos. 
    Es importante que NO OLVIDE esta contraseña. 
    Escriba la clave maestra de la base de datos de KDC: <escriba la clave>
    	Vuelva a escribir la clave maestra de KDC para verificarla: <vuélvala a escribir
    

    Si el nombre del ámbito es equivalente al nombre de dominio del espacio de nombres del servidor, no es necesaria la opción -r seguida de nombre del ámbito.

  6. Edite el archivo de lista de control de acceso de Kerberos (kadm5.acl).

    Cuando esté lleno, /etc/krb5/kadm5.acl debería contener todos los nombres de los principales que tengan permiso para administrar el KDC. La primera entrada agregada puede tener un aspecto similar a:


    kws/admin@ACME.COM   *

    Esta entrada proporciona al principal kws/admin del ámbito ACME.COM la capacidad para modificar los principales o las normas del KDC. La instalación predeterminada incluye un "*" para que concuerde con todos los principales de admin . Esto podría ser un riesgo de seguridad, de forma que es más seguro incluir una lista de todos los principales admin.

  7. Inicie kadmin.local.

    Los sub-pasos siguientes crean los principales que utiliza SEAM.


    kdc1 # /usr/krb5/sbin/kadmin.local
    kadmin.local: 
    1. Puede agregar principales de administración a la base de datos mediante kadmin.local.

      Puede agregar tantos principales admin como necesite. Para terminar el proceso de configuración de KDC, debe agregar un principal admin como mínimo. Para este ejemplo, se agrega un principal kws/admin. Puede sustituir el nombre de un principal apropiado por " kws."


      kadmin.local: addprinc kws/admin
      Escriba la contraseña para el principal kws/admin@ACME.COM:
      <escriba la contraseña>
      Vuelva a escribir la contraseña para el principal kws/admin@ACME.COM: 
      <escríbala de nuevo>
      Principal "kws/admin@ACME.COM" creado. 
      kadmin.local: 
    2. Cree un archivo de tabla de claves para kadmin mediante kadmin.local.

      Esta secuencia de comandos crea un archivo de tabla de claves especial con entradas de principal para kadmin y changepw. Estos principales son necesarios para el servicio kadmind.


      kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.acme.com
      Entrada para el principal kadmin/kdc1.acme.com con kvno 3, tipo de codificación DES-CBC-CRC 
      agregado a la tabla de claves WRFILE:/etc/krb5/kadm5.keytab. 
      kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.acme.com
      Entrada para el principal changepw/kdc1.acme.com con kvno 3, tipo de codificación DES-CBC-CRC 
      agregado a la tabla de claves WRFILE:/etc/krb5/kadm5.keytab.
      kadmin.local: 
    3. Salga de kadmin.local

      Ha agregado todos los principales necesarios para los pasos siguientes.


      kadmin.local: quit
      
  8. Inicie los daemons de Kerberos.


    kdc1 # /etc/init.d/kdc start
    kdc1 # /etc/init.d/kdc.master start
    
  9. Inicie kadmin.

    En este punto, puede agregar los principales mediante la Herramienta de administración SEAM (SEAM Tool). El ejemplo de línea de comandos se muestra por su sencillez. Puede iniciar una sesión con uno de los nombres de principal admin que creó anteriormente en este procedimiento.


    kdc1 # /usr/krb5/sbin/kadmin -p kws/admin
    Escriba la contraseña: <Escriba la contraseña de kws/admin>
    kadmin: 
    1. Cree el principal del sistema KDC maestro mediante kadmin.

      Las aplicaciones adaptadas a Kerberos (como klist y kprop), así como los servicios adaptados a Kerberos (como ftp y telnet) utilizan el principal de sistema.


      kadmin: addprinc -randkey host/kdc1.acme.com
      Principal "host/kdc1.acme.com@ACME.COM" creado. 
      kadmin: 
    2. Opcional: cree el principal root del KDC maestro mediante kadmin.

      Este principal se utiliza para los montajes NFS autenticados y, por tanto, posiblemente no sea necesario en un KDC maestro.


      kadmin: addprinc root/kdc1.acme.com
      Escriba la contraseña para el principal root/kdc1.acme.com@ACME.COM: <escriba la contraseña>
      Vuelva a escribir la contraseña para el principal root/kdc1.acme.com@ACME.COM: <escríbala de nuevo>
      Principal "root/kdc1.acme.com@ACME.COM" creado. 
      kadmin: 
    3. Agregue el principal de sistema del KDC maestro al archivo de tabla de claves del KDC maestro.

      La adición del principal de sistema al archivo de tabla de claves permite que se utilice este principal automáticamente.


      kadmin: ktadd host/kdc1.acme.com
      kadmin: Entrada para el principal host/kdc1.acme.com con 
      kvno 3, tipo de codificación DES-CBC-CRC agregado a la tabla de claves
      WRFILE:/etc/krb5/krb5.keytab. 
      kadmin: quit
      
    4. Salga de kadmin


      kadmin: quit
      
  10. Agregue una entrada para cada KDC en el archivo de configuración de la propagación (kpropd.acl).

    Para obtener una descripción completa de este archivo, véase la página del comando man kprop(1M). Si ha instalado el software de SEAM mediante los archivos de configuración, verifique el contenido del archivo en lugar de editarlo.


    kdc1 # cat /etc/krb5/kpropd.acl
    host/kdc1.acme.com@ACME.COM 
    host/kdc2.acme.com@ACME.COM
  11. Opcional: sincronice el reloj de los KDC maestros mediante NTP u otro mecanismo de sincronización de relojes.

    No es necesario instalar y utilizar NTP, pero, para que sea satisfactoria la autenticación, todos los relojes deben estar dentro del tiempo predeterminado definido en el apartado libdefaults del archivo krb5.conf. Véase "Sincronización de relojes entre los KDC y los clientes SEAM" para obtener información sobre NTP.

Configuración de un KDC esclavo

En este procedimiento se configura un nuevo KDC esclavo llamado kdc3. Para proporcionar un ejemplo completo, se asume que no ha utilizado el procedimiento de configuración previa al instalar el software o no ha definido kdc3 como esclavo al ejecutar tal procedimiento. Si ha utilizado el procedimiento y ha identificado kdc3 como un esclavo, no deberá editar muchos de los archivos incluidos en este procedimiento, pero debería revisar su contenido.

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

  1. Requisitos previos para configurar un KDC esclavo.

    Este procedimiento precisa que se haya configurado el KDC maestro y que se haya instalado el software de KDC esclavo de SEAM en kdc3. Si este esclavo será intercambiable, véase "Intercambio de KDC maestro y esclavo" para obtener instrucciones específicas.

  2. En el KDC maestro: conviértase en superusuario.

  3. En el KDC maestro: Inicie kadmin.

    Debe iniciar una sesión con uno de los nombres de principal admin que creó al configurar el KDC maestro.


    kdc1 # /usr/krb5/sbin/kadmin -p kws/admin
    Escriba ls contraseña: <Escriba la contraseña de kws/admin>
    kadmin: 
    1. En el KDC maestro: agregue los principales de sistema esclavos a la base de datos, si todavía no lo ha hecho, mediante kadmin.

      Para que funcione el esclavo, debe tener un principal de sistema.


      kadmin: addprinc -randkey host/kdc3.acme.com
      Principal "host/kdc3@ACME.COM" creado. 
      kadmin: 
    2. Opcional: cree el principal root del KDC esclavo en el KDC maestro mediante kadmin.

      Este principal únicamente es necesario si el esclavo va a montar un sistema de archivos autenticado mediante NFS.


      kadmin: addprinc root/kdc3.acme.com
      Escriba la contraseña para el principal root/kdc3.acme.com@ACME.COM: <escriba la contraseña>
      Vuelva a escribir la contraseña para el principal root/kdc3.acme.com@ACME.COM: <escríbala de nuevo>
      Principal "root/kdc3.acme.com@ACME.COM" creado. 
      kadmin: 
    3. Salga de kadmin


      kadmin: quit
      
  4. En el KDC maestro: edite el archivo de configuración de Kerberos (krb5.conf).

    Debe agregar una entrada para cada esclavo. Para obtener una descripción completa de este archivo, véase la página del comando man krb5.conf(4) . Si ha definido kdc3 como un servidor esclavo al ejecutar el procedimiento de configuración previa, verifique el contenido del archivo en lugar de editarlo.


    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults] 
    default_realm = ACME.COM
    
    [realms]
                    ACME.COM = {
                    kdc = kdc1.acme.com
                    kdc = kdc2.acme.com
                    kdc = kdc3.acme.com
                    admin_server = kdc1.acme.com
            } [domain_realm]
    
            .acme.com = ACME.COM
    # 
    # si el nombre de dominio y el nombre de ámbito son equivalentes, 
    # esta entrada no es necesaria 
    # 
           [logging] 
    default = FILE:/var/krb5/kdc.log 
    kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
     gkadmin = { 
    help_url = 
    http://puebla:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
    
  5. En el KDC maestro: agregue una entrada para cada KDC esclavo en el archivo de configuración de la propagación de bases de datos ( kpropd.acl).

    Para obtener una descripción completa de este archivo, véase la página del comando man kprop(1M). ha definido kdc3 como un servidor esclavo al ejecutar el procedimiento de configuración previa, verifique el contenido del archivo en lugar de editarlo.


    kdc1 # cat /etc/krb5/kpropd.acl
    host/kdc1.acme.com@ACME.COM 
    host/kdc2.acme.com@ACME.COM
    host/kdc3.acme.com@ACME.COM
    
  6. En todos los esclavos: copie los archivos de administración del KDC desde el servidor KDC maestro.

    Este paso se debe seguir en todos los KDC esclavos, ya que el servidor KDC maestro posee información actualizada que necesitan todos los servidores KDC. Si ha definido kdc3 como un servidor esclavo al ejecutar el procedimiento de configuración previa, verifique el contenido del archivo en lugar de editarlo. Para obtener las copias de los archivos siguientes del maestro puede utilizar ftp o un mecanismo de transferencia similar:

    • /etc/krb5/krb5.conf

    • /etc/krb5/kdc.conf

    • /etc/krb5/kpropd.acl

  7. En el esclavo nuevo: agregue el principal de sistema del esclavo a su archivo de tabla de claves mediante kadmin.

    Debe iniciar una sesión con uno de los nombres de principal admin que creó al configurar el KDC maestro. Esta entrada permitirá que funcione kprop y otras aplicaciones adaptadas a Kerberos.


    kdc3 # /usr/krb5/sbin/kadmin -p kws/admin
    Escriba la contraseña: <Escriba la contraseña de kws/admin>
    kadmin: ktadd host/kdc3.acme.com
    kadmin: Entrada para el principal host/kdc3.acme.com 
    con kvno 3, tipo de codificación DES-CBC-CRC agregado a la tabla de claves 
    WRFILE:/etc/krb5/krb5.keytab. 
    kadmin: quit
    
  8. En el KDC maestro: agregue los nombres de los KDC esclavos al trabajo cron, que ejecuta automáticamente las copias de seguridad, ejecutando crontab -e.

    Agregue el nombre de todos los servidores KDC esclavos al final de la línea kprop_script. Si ha definido kdc3 como un servidor esclavo al ejecutar el procedimiento de configuración previa, verifique el contenido del archivo en lugar de editarlo.


    10 3 * * * /usr/krb5/lib/kprop_script kdc2.acme.com kdc3.acme.com
    

    Quizás también desee cambiar la hora de las copias de seguridad. Esta configuración inicia el proceso de copia de seguridad cada día a las 3:10 de la madrugada.

  9. En el KDC maestro: haga una copia de seguridad de la base de datos y propáguela mediante kprop_script.

    Si ya hay disponible una copia de seguridad de la base de datos, no es necesario terminar otra. Véase "Propagación manual de la base de datos de Kerberos a los KDC esclavos" para obtener instrucciones adicionales.


    kdc1 # /usr/krb5/lib/kprop_script kdc3.acme.com
    Propagación de base de datos a kdc3.acme.com: SATISFACTORIA
  10. En el esclavo nuevo: cree un archivo de reserva mediante kdb5_util.


    kdc3 # /usr/krb5/sbin/kdb5_util stash
    kdb5_util: No es posible encontrar/leer la clave maestra almacenada al leer la clave maestra 
    kdb5_util: Advertencia: continuando sin clave maestra 
    
    Escriba la clave maestra de la base de datos KDC: <escriba la clave>
    
  11. En el esclavo nuevo: inicie el daemon de KDC (krb5kdc).


    kdc3 # inicio de/etc/init.d/kdc
    
  12. Opcional: en el esclavo nuevo, sincronice el reloj de los KDC maestros mediante NTP u otro mecanismo de sincronización de relojes.

    No es necesario instalar y utilizar NTP, pero, para que sea satisfactoria la autenticación, todos los relojes deben estar dentro del tiempo predeterminado definido en el apartado libdefaults del archivo krb5.conf. Véase "Sincronización de relojes entre los KDC y los clientes SEAM" para obtener información sobre NTP.