MIT krb5-1.4

Introducción a MIT krb5

MIT krb5 es una implementación libre de Kerberos 5. Kerberos es un protocolo de autenticación de red. Centraliza la base de datos de autenticación y usa aplicaciones kerberizadas para trabajar con servidores o servicios que soporten Kerberos, permitiendo ingresos simples y comunicaciones encriptadas sobre redes internas o Internet.

Información sobre el paquete

Dependencias de MIT krb5

Opcionales

xinetd-2.3.13 (solo servicios servidores), Linux-PAM-0.78 (para ingresos basados en xdm) y OpenLDAP-2.2.24 (alternativa para la base de datos de contraseñas krb5kdc)

[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 existe una diferencia de tiempo entre el cliente kerberizado y el servidor KDC.

Instalación de MIT krb5

MIT krb5 se distribuye en un fichero TAR que contiene un paquete TAR y un fichero ASC de firma PGP.

Si tienes instalado GnuPG-1.4.1, puedes autentificar el paquete con el siguiente comando:

gpg --verify krb5-1.4.tar.gz.asc

Construye MIT krb5 ejecutando los siguientes comandos

cd src &&
./configure --prefix=/usr --sysconfdir=/etc \
    --localstatedir=/var/lib --enable-dns \
    --enable-static --mandir=/usr/share/man &&
make

Instala MIT krb5 ejecutando los siguientes comandos como root

make install &&
mv /bin/login /bin/login.shadow &&
cp /usr/sbin/login.krb5 /bin/login &&
mv /usr/bin/ksu /bin &&
mv /usr/lib/libkrb5.so.3* /lib &&
mv /usr/lib/libkrb4.so.2* /lib &&
mv /usr/lib/libdes425.so.3* /lib &&
mv /usr/lib/libk5crypto.so.3* /lib &&
mv /usr/lib/libcom_err.so.3* /lib &&
ln -sf ../../lib/libkrb5.so.3 /usr/lib/libkrb5.so &&
ln -sf ../../lib/libkrb4.so.2 /usr/lib/libkrb4.so &&
ln -sf ../../lib/libdes425.so.3 /usr/lib/libdes425.so &&
ln -sf ../../lib/libk5crypto.so.3 /usr/lib/libk5crypto.so &&
ln -sf ../../lib/libcom_err.so.3 /usr/lib/libcom_err.so &&
ldconfig

Explicación de los comandos

--enable-dns: Esta opción permite resolver reinos usando el servidor DNS.

--enable-static: Esta opción contruye las librerías estáticas además de las librerías compartidas

mv /bin/login /bin/login.shadow
cp /usr/sbin/login.krb5 /bin/login
mv /usr/bin/ksu /bin

Preserva el comando login de Shadow, mueve ksu y login al directorio /bin.

mv /usr/lib/libkrb5.so.3* /lib
mv /usr/lib/libkrb4.so.2* /lib
mv /usr/lib/libdes425.so.3* /lib
mv /usr/lib/libk5crypto.so.3* /lib
mv /usr/lib/libcom_err.so.3* /lib
ln -sf ../../lib/libkrb5.so /usr/lib
ln -sf ../../lib/libkrb4.so /usr/lib
ln -sf ../../lib/libdes425.so /usr/lib
ln -sf ../../lib/libk5crypto.so /usr/lib
ln -sf ../../lib/libcom_err.so /usr/lib

Los programas login y ksu se enlazan cotra estas librerías, por tanto las movemos a /lib para permitir ingresos sin /usr montado.

Configuración de MIT krb5

Ficheros de configuración

/etc/krb5.conf y /var/lib/krb5kdc/kdc.conf

Información sobre la configuración

Configuración de Kerberos

Crea el fichero de configuración de Kerberos con los siguientes comandos

cat > /etc/krb5.conf << "EOF"
# Inicio de /etc/krb5.conf

[libdefaults]
    default_realm = [LFS.ORG]
    encrypt = true

[realms]
    [LFS.ORG] = {
        kdc = [belgarath.lfs.org]
        admin_server = [belgarath.lfs.org]
    }

[domain_realm]
    .[lfs.org] = [LFS.ORG]

[logging]
    kdc = SYSLOG[:INFO[:AUTH]]
    admin_server = SYSLOG[INFO[:AUTH]]
    default = SYSLOG[[:SYS]]

# Fin de /etc/krb5.conf
EOF

Deberás sustituir [belgarath] y [lfs.org] por los nombres de tu dominio y tu máquina.

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.

Crea la base de datos KDC:

kdb5_util create -r [LFS.ORG] -s 

Ahora deberíamos poblar la base de datos con príncipes (usuarios). Por ahora, utiliza simplemente tu nombre de ingreso normal o root.

kadmin.local
kadmin:addprinc [loginname]

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

kadmin:addprinc -randkey host/[belgarath.lfs.org]

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

kadmin:ktadd host/[belgarath.lfs.org]

Esto debería crear un fichero en /etc de nombre krb5.keytab (Kerberos 5). Este fichero debe 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:

kadmin:addprinc -randkey ftp/[belgarath.lfs.org]
kadmin:ktadd ftp/[belgarath.lfs.org]

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/krb5kdc &

Intenta conseguir una entrada con el siguiente comando:

kinit [loginname]

Se te preguntará la contraseña que creaste. Tras conseguir tu entrada, puedes 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
ktutil:rkt /etc/krb5.keytab
ktutil:l

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

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

Instala el guión de inicio /etc/rc.d/init.d/kerberos incluido en el paquete blfs-bootscripts-20050313.

make install-kerberos
Utilización de programas cliente kerberizados

Para usar los programas cliente kerberizados (telnet, ftp, rsh, rcp, xnlock), primero debes obtener una entrada de autenticación. 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.

Utilización de programas servidores kerberizados

El uso de programas servidores kerberizados (telnetd, kpropd, klogind y kshd) requiere dos pasos adicionales de configuración. Primero, el fichero /etc/services debe actualizarse para incluir eklogin y krb5_prop. Segundo, inetd.conf o xinetd.conf debe modificarse para cada servidor que será activado, normalmente reemplazando al procedente de Inetutils-1.4.2.

Información adicional

Para información adicional, consulta la Documentación para krb-1.4, en la cual están basadas estas instrucciones.

Contenido

Programas instalados: compile-et, ftp, ftpd, gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kadmind4, kdb5_util, kdestroy, kinit, klist, klogind, kpasswd, kprop, kpropd, krb5-send-pr, krb5-config, krb524d, krb524init, krb5kdc, kshd, ksu, ktutil, kvno, login.krb5, rcp, rlogin, rsh, sclient, sim_client, sim_server, sserver, telnet, telnetd, uuclient, uuserver, v5passwd y v5passwdd
Librerías instaladas: libcom_err.[so,a], libdes425.[so,a], libgssapi.[so,a], libgssrpc.[so,a], libkadm5clnt.[so,a], libkadm5srv.[so,a], libkdb5.[so,a], libkrb5.[so,a] y libkrb4.[so,a]
Directorios instalados: /usr/include/kerberosIV y /var/lib/krb5kdc

Descripciones cortas

compile_et

Convierte la tabla con la lista de nombres de código de error a un fichero fuente C.

ftp

Un cliente FTP kerberizado.

ftpd

Un demonio FTP kerberizado.

k5srvutil

Una utilidad para majar tablas de claves del anfitrión.

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.

kdb5_util

La utilidad de bases de datos KDC.

kdestroy

Elimina el grupo actual de entradas.

kinit

Se usa para autentificar el servidor Kerberos como principal y adquirir una entrada de garantía que puede usarse más tarde para obtener entradas de otros servicios.

klist

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

klogind

El servidor que responde a peticiones rlogin.

kpasswd

Un servidor de cambio de contraseñas Kerberos 5.

kprop

Toma una base de datos principal en un formato especificado y la convierte a un flujo de registros de base de datos de Kerberos.

kpropd

Recive una base de datos enviada por kprop y la escribe como base de datos local.

krb5-config

Muestra información sobre cómo enlazar programas contra las librerías.

krb5kdc

Un servidor Kerberos 5.

kshd

El servidor que responde a las peticiones rsh.

ksu

El programa de seperusuario usando el protocolo Kerberos. Requiere una configuración adecuada de /etc/shells y ~/.k5login conteniendo los príncipes autorizados a convertirse en superusuarios.

ktutil

Un programa para manejar tablas de claves Kerberos.

kvno

Imprime los números de versión de clave de príncipes Kerberos.

login.krb5

Un programa de ingreso al sistema kerberizado.

rcp

Un programa cliente rcp kerberizado.

rlogin

Un programa cliente rlogin kerberizado.

rsh

Un programa cliente rsh kerberizado.

telnet

Un programa cliente telnet kerberizado.

telnetd

Un servidor telnet kerberizado.

libcom_err.[so,a]

Implementa la librería de códigos de error de Kerberos.

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.

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.

libkdb5.[so,a]

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

libkrb5.[so,a]

Una librería Kerberos 5 de proposito general.

Last updated on 2005-04-09 16:21:16 +0200