Heimdal-0.6.3

Introducción a Heimdal

Heimdal es una implementación libre de Kerberos 5, que dice ser compatible con MIT krb5 y krb4. Kerberos es un protocolo de autenticación de red. Básicamente, mantiene la integridad de las contraseñas en redes sin confianza (como Internet). Las apicaciones kerberizadas trabajan mano a mano con sitios que soportan Kerberos para asegurar que las contraseñas no sean dañadas. Una instalación Kerberos hará cambios en los mecanismos de autenticación de tu red y sobreescribirá varios programas y demonios de los paquetes Coreutils, Inetutils, Qpopper y Shadow.

Información sobre el paquete

Dependencias de Heimdal

Opcionales

Linux-PAM-0.78, OpenLDAP-2.2.20, X (X.org-6.8.2 o XFree86-4.4.0), cracklib-2.7 y krb4

[Nota]

Nota

Se necesita algún tipo de sincronización de la hora en tu sistema (como NTP-4.2.0) pues Kerberos no autenticará si la diferencia de tiempo entre el cliente kerberizado y el servidor KDC es mayor de 5 minutos.

Instalación de Heimdal

Antes de instalar el paquete, puede que quieras guardar el programa ftp del paquete Inetutils. Esto es debido a que la utilización del programa ftp de Heimdal para conectar con servidores ftp no kerberizados puede que no funcione correctamente. Te permitirá conectar (indicandote que la contraseña se envia en texto plano) pero tendrá problemas con los envios y recepciones.

mv /usr/bin/ftp /usr/bin/ftpn

Si deseas que el paquete Heimdal se enlace contra la librería cracklib, debes aplicar un parche:

patch -Np1 -i ../heimdal-0.6.3-cracklib-1.patch

Instala Heimdal ejecutando los siguientes comandos:

patch -Np1 -i ../heimdal-0.6.3-fhs_compliance-1.patch &&
./configure --prefix=/usr --sysconfdir=/etc/heimdal \
    --datadir=/var/lib/heimdal --localstatedir=/var/lib/heimdal \
    --libexecdir=/usr/sbin --enable-shared \
    --with-openssl=/usr --with-readline=/usr &&
make

Ahora, como usuario root:

make install &&
mv /bin/login /bin/login.shadow &&
mv /bin/su /bin/su.shadow &&
mv /usr/bin/{login,su} /bin &&
ln -sf ../../bin/login /usr/bin &&
mv /usr/lib/lib{otp.so.0*,kafs.so.0*,krb5.so.17*,asn1.so.6*} \
   /usr/lib/lib{roken.so.16*,crypto.so.0*,db-4.3.so} /lib &&
ln -sf ../../lib/lib{otp.so.0{,.1.4},kafs.so.0{,.4.0},db-4.3.so} \
    /usr/lib &&
ln -sf ../../lib/lib{krb5.so.17{,.3.0},asn1.so.6{,.0.2}} \
    /usr/lib &&
ln -sf ../../lib/lib{roken.so.16{,.0.3},crypto.so.0{,.9.7}} \
    /usr/lib &&
ldconfig

Explicación de los comandos

--libexecdir=/usr/sbin: Esta opción pone los programas demonio en /usr/sbin.

[Nota]

Nota

Si quieres mantener tu demonios existentes del paquete Inetutils, instala los demonios de Heimdal en /usr/sbin/heimdal (o donde prefieras). Puesto que estos programas son invocados desde (x)inetd o guiones rc, en realidad no importa donde residan mientras que se especifiquen correctamente en el fichero /etc/(x)inetd.conf y en los guiones rc Si eliges algo diferente a /usr/sbin, puede que quieras mover algunos de los programas de usuario (como kadmin) a /usr/sbin manuamente.

mv ... .shadow; mv ... /bin; ln -sf ../../bin...: Los programas login y su instalados por Heimdal pertenecen al directorio /bin. El programa login es enlazado porque Heimdal espera encontralo en /usr/bin. Guardamos los atiguos ejecutables antes de moverlos para asegurarnos en caso de que ocurra algún fallo.

mv ... /lib; ln -sf ../../lib/lib... /usr/lib: Los programas login y su instalados por Heimdal se enlazan contra las librerías de Heimdal así como contra las librerías proporcionadas por los paquetes OpenSSL y Berkeley DB. Movemos estas librerías a /lib para cumplir el FHS y en caso de que /usr se encuentre en otra partición que no siempre esté montada.

Configuración de Heimdal

Ficheros de configuración

/etc/heimdal/*

Información sobre la configuración

Configuración del servidor KDC maestro

Crea el fichero de configuración de Kerberos con el siguiente comando:

install -d /etc/heimdal &&
cat > /etc/heimdal/krb5.conf << "EOF"
# Inicio de /etc/heimdal/krb5.conf

[libdefaults]
    default_realm = [EXAMPLE.COM]
    encrypt = true

[realms]
    [EXAMPLE.COM] = {
        kdc = [hostname.example.com]
        admin_server = [hostname.example.com]
        kpasswd_server = [hostname.example.com]
    }

[domain_realm]
    .[example.com] = [EXAMPLE.COM]

[logging]
    kdc = FILE:/var/log/kdc.log
    admin_server = FILE:/var/log/kadmin.log
    default = FILE:/var/log/krb.log

# Fin de /etc/heimdal/krb5.conf
EOF

Debes cambiar por tu dominio y por el hostname correcto cada aparición de [hostname] y [EXAMPLE.COM].

default_realm debe ser el nombre de tu dominio en MAYUSCULAS. Esto no es imprescindible, pero tanto Heimdal como MIT lo recomiendan.

encrypt = true proporciona encriptación de todo el tráfico entre clientes y servidores kerberizados. No es necesario y puede descartarse. Si lo descartas, puedes encriptar el trafico del cliente al servidor usando en su lugar una opción del programa cliente.

Los parámetros [realms] le indica al cliente donde buscar los servicios de autenticación KDC.

La sección [domain_realm] mapea un dominio a un reino.

Almacena la contraseña maestra en un fichero clave usando los siguientes comandos:

install -d -m 755 /var/lib/heimdal &&
kstash

Crea la base de datos KDC:

kadmin -l

Elige por ahora las opciones por defecto. Puedes volver más tarde para cambiarlas, deberías sentir la necesidad. En el indicador kadmin>, ejecuta la siguiente sentencia:

init [EXAMPLE.COM]

Ahora deberíamos poblar la base de datos con príncipes (usuarios). Por ahora, utiliza simplemente tu nombre de ingreso normal o root. Puesdes crear unos pocos o tantos príncipes como desees utilizando la sifgguiente sentencia:

add [loginname]

El servidor KDC y cualquier máquina que esté ejecutando demonios servidor kerberizados debe tener instalada una clave de anfitrión:

add --random-key host/[hostname.example.com]

Tras elegir las opciones por defecto cuando se te pregunte, tendrás que exportar los datos a un fichero de tabla de claves:

ext host/[hostname.example.com]

Esto debería crear dos ficheros en /etc/heimdal; krb5.keytab (Kerberos 5) y srvtab (Kerberos 4). Ambos ficheros deben tener permiso 600 (lectura y escritura solo por root). Proteger los ficheros de tabla de claves del acceso público es crucial parapreservar la seguridad de la instalación de Kerberos.

Eventualmente, querrás añadir príncipes del demonio servidor a la base de datos y extraerlos al fichero de tabla de claves. Harás esto de la misma forma que creaste los príncipes del anfitrión. A continuación un ejemplo:

add --random-key ftp/[hostname.example.com]

(elige las opciones por defecto)

ext ftp/[hostname.example.com]

Sal del programa kadmin (utiliza quit o exit) y regresa al indicador del intérprete de comandos. Inicia manualmente el demonio KDC, sólo para comprobar la instalación:

/usr/sbin/kdc &

Intenta conseguir un TGT (entrada de garantía de entrada) con el siguiente comando:

kinit [nombre de ingreso]

Se te preguntará la contraseña que creaste. Tras conseguir tu entrada, deberías listarla con el siguiente comando:

klist

En pantalla se montrará la información sobre la entrada.

Para comprobar el funcionamiento del fichero de tabla de claves, ejecuta el siguiente comando:

ktutil list

Esto debería volcar un listado de los príncipes del anfitrión, junto con los métodos de encriptación usados para acceder al príncipe.

En este punto, si todo a ido bien, puedes sentirte bastante seguro de la instalación y configuración del paquete.

Instala el gión de inicio /etc/rc.d/init.d/heimdal incluido en el paquete blfs-bootscripts-6.0.

make install-heimdal
Utilización de programas cliente kerberizados

Para usar los programas cliente kerberizados (telnet, ftp, rsh, rxterm, rxtelnet, rcp, xnlock), primero debes obtener un TGT. Utiliza el programa kinit para obtener la entrada. Una vez que la hayas adquirido, puedes utilizar los programas kerberizados para conectarte a cualquier servidor kerberizado de la red. No se te preguntará la contraseña hasta que tu entrada expire (un día por defecto). a no ser que tu le especifiques un usuario diferente como argumento en la línea de comandos del programa.

Los programas kerberizados conectarán con demonios no kerberizados, advirtiendote que la autenticación no está encriptada. Como se mencionó antes. sólo el programa ftp tiene problemas conectandose con demonios no keberizados.

Para usar los programas X de Heimdal, necesitarás añadir uns entrada de puerto de servicio en el fichero /etc/services para el servidor kxd. No hay un "número de puerto estandar" para el servicio "kx" en la base de datos de IANA, por lo que tendrás que elegir un puerto libre. Añade una entrada en el fichero services similar a la siguiente (sustituye [49150] por tu puerto elegido):

kx              [49150]/tcp   # Heimdal kerberos X
kx              [49150]/udp   # Heimdal kerberos X

Para información adicional, consulta la receta de Heimdal, en la cual están basadas estas instrucciones.

Contenido

Programas instalados: afslog, dump_log, ftp, ftpd, hprop, hpropd, ipropd-master, ipropd-slave, kadmin, kadmind, kauth, kdc, kdestroy, kf, kfd, kgetcred, kinit, klist, kpasswd, kpasswdd, krb5-config, kstash, ktutil, kx, kxd, login, mk_cmds, otp, otpprint, pagsh, pfrom, popper, push, rcp, replay_log, rsh, rshd, rxtelnet, rxterm, string2key, su, telnet, telnetd, tenletxr, truncate-log, verify_krb5_conf y xnlock
Librerías instaladas: libasn1.[so,a], libeditline.a, libgssapi.[so,a], libhdb.[so,a], libkadm5clnt.[so,a], libkadm5srv.[so,a], libkafs.[so,a], libkrb5.[so,a], libotp.[so,a], libroken.[so,a], libsl.[so,a] y libss.[so,a]
Directorios instalados: /etc/heimdal, /usr/include/kadm5, /usr/include/ss y /var/lib/heimdal

Descripciones cortas

afslog

Obtiene marcas AFS para un número de celdas.

ftp

Cliente FTP kerberizado.

ftpd

Demonio FTP kerberizado.

hprop

Toma una base de datos principal en un formato especificado y lo convierte a un flujo de entradas de base de datos de Heimdal.

hpropd

Un servidor que recive una base de datos enviada por hprop y la escribe como base de datos local.

ipropd-master

Demonio que corre en el servidor KDC con propagación de cambios incrementales de la base de datos KDC al servidor esclavo KDC.

ipropd-slave

Demonio que crre en el servidor KDC con propagación de cambios incrementales hacia la base de datos KDC procedentes de servidor KDC maestro.

kadmin

Una utilidad para hacer modificaciones en la base de datos de Kerberos.

kadmind

Un servidor para acceso administrativo a la base de datos de Kerberos.

kauth

Enlace simbólico al programa kinit.

kdc

Un servidor Kerberos 5.

kdestroy

Elimina el grupo actual de entradas.

kf

Un programa que reenvia entradas a servidores remotos a través de un flujo autenticado y encriptado.

kfd

Recive entradas reenviadas.

kgetcred

Obtiene una entrada para un servicio.

kinit

Se usa para autentificar al servidor Kerberos como principal y adquirir un ticket de entrada garantizada que puede usarse posteriormente para obtener entradas a otros servicios.

klist

Lee y muentra las entradas actuales en la caché de credenciales.

kpasswd

Un programa para cambiar contraseñas Kerberos 5.

kpasswdd

Un servidor de cambio de contraseñas Kerberos 5.

krb5-config

Muestra información sobre cómo enlazar programas con las librerías de Heimdal.

kstash

Almacena la contraseña maestra KDC en un fichero.

ktutil

Un programa para administrar tablas de claves Kerberos.

kx

Un programa que renvia conexiones X de forma segura.

kxd

El demonio para kx.

login

Programa de ingreso al sistema kerberizado.

otp

Administra contraseña de un sólo uso.

otpprint

Imprime listas de contraseñas de un sólo uso.

pfrom

Guión que lanza push --from.

popper

Un Servidor POP-3 kerberizado.

push

Un cliente de recigida de correo POP kerberizado.

rcp

Un programa clinte rcp kerberizado.

rsh

Un programa clinte rsh kerberizado.

rshd

Un servidor rsh kerberizado.

rxtelnet

Inicia una ventana xterm con un telnet al anfitrión indicado y reenvia conexiones X.

rxterm

Inicia una xterm remota de forma segura.

string2key

Mapea una contraseña a una clave.

su

Un programa cliente su kerberizado.

telnet

Un programa cliente telnet kerberizado

telnetd

Un servidor telnet kerberizado.

tenletxr

Retorna reenvios de conexiones X.

verify_krb5_conf

Compueba errores óbvios en el fichero krb5.conf.

xnlock

Un programa que actúa como salvapantallas seguro en estaciones de trabajo que ejecutan X.

libasn1.[so,a]

Proporciona las funciones ASN.1 y DER para codificar y decodificar los TGT de Kerberos.

libeditline.a

Una librería de edición de línea de comandos con historial.

libgssapi.[so,a]

Contiene las funciones Generic Security Service Application Programming Interface (GSSAPI) que proporcionan servicios de seguridad a los invocadores en una forma genérica, soportando una gama de mecanismos y tecnologías subyacentes y, por tanto, permitiendo la portabilidad a nivel de código de las aplicaciones a diferentes entornos.

libhdb.[so,a]

Una librería de acceso a bases de datos Heimdal Kerberos 5 para autenticación/autorización.

libkadm5clnt.[so,a]

Contiene las funciones administrativas de autenticación y comprobación de contraseñas requeridas por los programas cliente de Kerberos 5.

libkadm5srv.[so,a]

Contiene las funciones administrativas de autenticación y comprobación de contraseñas requeridas por los servidores Kerberos 5.

libkafs.[so,a]

Contiene las funciones necesarias para la autentificación en AFS.

libkrb5.[so,a]

Una librería Kerberos 5 de proposito general.

libotp.[so,a]

Contiene las funciones necesarias para la autentificación de contraseñas de un solo uso.

libroken.[so,a]

Una librería que contiene las funciones de compatibilidad de Kerberos 5.

Last updated on 2005-04-09 00:53:09 +0200