17.5. Configurar un servidor Kerberos 5

Antes de configurar un servidor Kerberos tiene que instalarlo. Si necesita instalar servidores esclavos, los detalles para configurar las relaciones entre servidores maestro y esclavo se cubren en Manual de instalación de Kerberos 5 localizado en el directorio /usr/share/doc/krb5-server-<version-number>.

Para configurar un servidor Kerberos básico, siga estos pasos:

  1. Asegúrese de que tanto el reloj como el DNS funcionan correctamente en el servidor antes de configurar el Kerberos 5. Preste especial atención a la sincronización de la hora del servidor Kerberos y de sus diversos clientes. Si la sincronización de los relojes del servidor y de los clientes se diferencia en más de cinco minutos ( la cantidad predeterminada es configurable en el Kerberos 5), los clientes de Kerberos no podrán autentificar el servidor. La sincronización de los relojes es necesaria para evitar que un intruso use un ticket viejo de Kerberos para hacerse pasar como un usuario autorizado.

    Configure el protocolo cliente/servidor Network Time Protocol (NTP) aún si no está usando Kerberos. Red Hat Linux incluye el paquete ntp para una fácil instalación. Vea /usr/share/doc/ntp-<version-number>/index.htm para detalles sobre cómo configurar servidores Network Time Protocol y http://www.eecis.udel.edu/~ntp para información adicional sobre NTP.

  2. Instale los paquetes krb5-libs, krb5-server, y krb5-workstation en una máquina dedicada que ejecutará el KDC. Esta máquina tiene que ser segura — si es posible, no debería ejecutar ningún otro servicio excepto KDC.

    Si desea usar una utilidad de interfaz gráfica para administrar Kerberos, debería instalar el paquete gnome-kerberos. Este contiene krb5, que es una herramienta tipo GUI para manejar tickets.

  3. Modifique los ficheros de configuración /etc/krb5.conf y /var/kerberos/krb5kdc/kdc.conf para que reflejen el nombre de su reino y los mappings de dominio a reino. Se puede construir un reino simple sustituyendo las instancias de EXAMPLE.COM y example.com con el nombre del dominio — siempre y cuando se respete el formato correcto de los nombres escritos en mayúscula y en minúscula — y se cambie el KDC del kerberos.example.com con el nombre de su servidor Kerberos. En general, los nombres de reinos se escriben en mayúscula y todos los nombre DNS de host y nombres de dominio se escriben en minúscula. Para más detalles sobre los formatos de estos archivos, vea las páginas de los manuales respectivas.

  4. Cree la base de datos usando la utilidad kdb5_util desde el intérprete de comandos del shell:

    /usr/kerberos/sbin/kdb5_util create -s

    El comando create crea una base de datos que será usada para almacenar las claves para su reino Kerberos. La opción -s fuerza la creación de un archivo stash en el cual la llave del servidor master es guardada. Si no se presenta un archivo stash desde donde leer la clave, el servidor Kerberos (krb5kdc) le pedirá al usuario que ingrese la contraseña del servidor master (la cual puede ser usada para regenerar la clave) cada vez que arranca.

  5. Modifique el archivo /var/kerberos/krb5kdc/kadm5.acl. Este archivo es usado por kadmind para determinar cuales principales tienen acceso administrativo a la base de datos Kerberos y sus niveles de acceso. La mayoría de las organizaciones pueden acceder con una sola línea:

    */admin@EXAMPLE.COM  *

    La mayoría de los usuarios serán presentados en la base de datos por un principal simple (con una instancia NULL, o vacía, tal como joe@EXAMPLE.COM). Con esta configuración, los usuarios con un segundo principal con una instancia de admin (por ejemplo, joe/admin@EXAMPLE.COM) podrán tener todo el acceso sobre la base de datos del reino Kerberos.

    Una vez que kadmind sea arrancado en el servidor, cualquier usuario tiene acceso a los servicios de este servidor ejecutando los comandos kadmin en cualquiera de los clientes o servidores del reino. Sin embargo, solamente los usuarios que aparecen en la lista del archivo kadm5.acl podrán modificar la base de datos salvo sus contraseñas.

    NotaNota
     

    La utilidad kadmin se comunican con el servidor kadmind por la red y usan Kerberos para llevar a cabo la autentificación. Por supuesto, tiene que ser usuario principal antes de conectarse al servidor con la red para poder administrarla. Puede crear esta primera entrada con el comando kadmin.local, el cual se ha creado específicamente para usarlo en la misma máquina que el KDC y no usa Kerberos para la autenticación.

    Escriba el comando kadmin.local en una terminal KDC para crear la primera entrada como usuario principal:

    /usr/kerberos/sbin/kadmin.local -q "addprinc 
    username/admin"
  6. Arranque Kerberos usando los siguientes comandos:

    /sbin/service krb5kdc start
    /sbin/service kadmin start
    /sbin/service krb524 start
  7. Agregue principals para sus usuarios con el comando addprinc y kadmin. kadmin y kadmin.local son interfaces de línea de comandos para el KDC. Como tales, muchos comandos están disponibles después de lanzar el programa kadmin. Vea la página del manual kadmin para más información.

  8. Verifique que el servidor crea tickets. Primero, ejecute kinit para obtener un ticket y guardarlo en un archivo de credenciales caché. Luego, use klist para ver la lista de credenciales en su caché y use kdestroy para eliminar el caché y los credenciales que contenga.

    NotaNota
     

    Por defecto, kinit intenta autenticar el usuario usando el nombre de conexión (login) de la cuenta que usó cuando se conectó al sistema la primera vez (no al servidor Kerberos). Si ese nombre de usuario de sistema no se corresponde a un principal en la base de datos Kerberos, recibirá un mensaje de error. Si estó ocurre, indique kinit con el nombre de su principal como un argumento en la línea de comandos (kinit principal).

Una vez que haya completado los pasos listados arriba, el servidor Kerberos funcionará correctamente. Luego, se configurará el cliente Kerberos.