Sei sulla pagina 1di 9

UNIVERSIDAD ICESI

DIPLOMADO EN SEGURIDAD INFORMÁTICA


ASEGURAMIENTO DE PLATAFORMAS
KERBEROS – TALLER #5

Los objetivos de esta práctica de laboratorio son:


• Comprender el funcionamiento del sistema de autenticación y single sign-on Kerberos
• Configurar Kerberos y comprobar su funcionamiento en una red pequeña.

Se necesitarán 3 equipos (o máquinas virtuales) con Linux Ubuntu 10.04 (Lucid) instalado, que se
configurarán de la siguiente manera:
• Se conformará un dominio llamado kn.org por cada grupo de tres equipos.
• Uno de los equipos, kservidor.kn.org, funcionará como el servidor DNS y el KDC de la
solución.
• El segundo equipo, kcliente1.kn.org, se comportará como cliente de uso general y
servidor Telnet.
• El tercer equipo, kcliente2.kn.org, se comportará como cliente de uso general y servidor
FTP.

CONFIGURACIÓN BÁSICA DE LOS EQUIPOS

Como primera medida, deberá configurarse la interfaz de red de todos los equipos involucrados, a
travás del menú System → Preferences → Network Connections. Configure los datos de las
interfaces de red, según el plan de direcciones que el profesor consignará en el tablero. En el
nombre de dominio (search domains) poner kn.org, donde n es el número de su grupo.

Luego, edite los siguientes archivos de configuración:


• En el archivo /etc/hostname, cambiar el nombre del equipo por el nombre que le vayan a
dar a cada equipo (kservidor, kcliente1, kcliente2).
• En el archivo /etc/hosts, cambiar el nombre (o nombres) que aparecen al frente de la
dirección 127.0.1.1 por el mismo nombre que se empleó en el paso anterior.
• Reiniciar el equipo para que los cambios surtan efecto.
• Una vez reiniciados los equipos, se probará conectividad básica con ping.
• Finalizar esta fase sincronizando los relojes de todos los computadores que harán parte del
dominio.

Lo siguiente que se debe hacer es configurar, en todos los equipos, el sistema administrador de
paquetes de Ubuntu (APT), para que efectúe todas las actualizaciones desde un servidor caché
que está en el laboratorio. De esta manera, todo el software a actualizar se podrá bajar muchísimo
más rápido. Esto se hace creando un archivo de configuración, de la siguiente manera:

• Ejecute el comando sudo vi /etc/apt/apt.conf.d/01proxy


• El sistema abrirá el editor de texto con un archivo nuevo (en blanco). Incluya lo siguiente
como primera línea del archivo:
Acquire::http::Proxy "http://[dir_serv_caché]:3142";
Reemplace [dir_serv_caché] por la dirección IP suministrada por el profesor.
• Grabe el archivo y salga del editor.

NOTA: Si está realizando la práctica en un computador por fuera del laboratorio, por favor omita la
creación del archivo de configuración antes citado.

Aseguramiento de plataformas – Taller #4


Página 1 de 9
Una vez actualizado el archivo, se actualiza la base de datos de APT, el instalador de paquetes de
Ubuntu:

sudo apt-get update

Cree ahora, en kcliente1 y kcliente2, usuarios para los miembros de su grupo. Para ello,
emplee la herramienta System → Administration → Users and Groups.

INSTALACIÓN DE WEBMIN PARA CONFIGURACIÓN DE DNS


A continuación, se configurará el programa WEBMIN en kservidor. Este programa permitirá
configurar fácilmente el servidor DNS, mediante una interfaz web amigable. El procedimiento es el
siguiente:

• Empleando el browser de Internet, bajar el archivo webmin_1.570_all.deb desde el


servidor del curso a su directorio home.
• Dar el comando:

sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl


libpam-runtime libio-pty-perl libapt-pkg-perl apt-show-versions

Con esto, quedarán instalados varios módulos de soporte de PERL y de SSL, necesarios para la
operación de Webmin.

• Dar el comando:

sudo dpkg –i webmin_1.570_all.deb

Esto iniciará la instalación de Webmin. Al final, el sistema dará el siguiente mensaje:

Webmin install complete. You can now login to https://localhost:10000/ as root with your root
password, or as any user who can use sudo to run commands as root.

Por seguridad, cambie la contraseña del usuario root de Webmin con el siguiente comando:

sudo /usr/share/webmin/changepass.pl /etc/webmin root NuevaClave

Por último, ensaye la configuración de Webmin:


• Abrir el browser de Internet y acceder a la dirección https://localhost:10000
• Aceptar el certificado que Webmin ofrece.
• Si aparece una pantalla similar a la siguiente, la configuración de Webmin fue exitosa.

Aseguramiento de plataformas – Taller #4


Página 2 de 9
CONFIGURACIÓN DEL SERVICIO DNS

Un servidor DNS bien configurado es indispensable para que Kerberos funcione sin problemas. El
proceso para configurar el servicio DNS empleando Webmin es el siguiente:

• Ingresar a Webmin con el nombre de usuario root y la contraseña empleada durante la


configuración de Webmin.
• A la izquierda, expanda el menú Un-used Modules.
• Escoger el icono BIND DNS Server.

• El sistema informará que el servidor no está instalado, y ofrecerá instalarlo. Se debe hacer clic
entonces en el enlace que permite la instalación. Una vez instalado, hacer clic sobre el enlace
Return to BIND DNS Server (al final de la pantalla que describe todos los paquetes
instalados).
• En la parte de la ventana donde dice "Existing DNS zones", hacer clic en "Create Master Zone"

• Diligenciar el formato de la siguiente manera, empleando su número correcto de grupo:

• Tras presionar Create, hacer clic en el enlace Return to zone list.


• Crear una nueva zona maestra, llenando el formato de la siguiente manera (note que, en este
caso, el tipo de zona es Reverse):

Aseguramiento de plataformas – Taller #4


Página 3 de 9
• Tras presionar Create, hacer clic en el enlace Return to zone list.
• Haga hacer sobre la zona kn.org que creó
• Luego, hacer clic sobre el icono Address (el primero de todos)

• Ahora, deben crearse registros para los tres equipos de su dominio, especificando las
direcciones IP correctas.

• Una vez creados todos los registros, verificar las direcciones en la lista que aparece en la parte
inferior de la pantalla. Luego, usar el enlace Return to zone list.

Aseguramiento de plataformas – Taller #4


Página 4 de 9
• Por ultimo, haga clic sobre los enlaces Apply Configuration, Stop BIND, Start BIND y salga
de Webmin.

Ahora se puede probar la configuración del servidor DNS, de la siguiente manera:


• Empleando el comando System → Preferences → Network Connections, especificar como
dirección del DNS la de kservidor, y como search domain, kn.org. Borrar la otra dirección
de DNS que se agregó en los primeros pasos del laboratorio. Aplicar los cambios.
• Abrir una consola (Applications → Accesories → Terminal)
• Ejecutar el comando nslookup, y ensayar el servidor digitando los nombres de los tres
equipos. Probar también la resolución inversa de direcciones, digitando las direcciones IP de
los equipos.
• Una vez probado el DNS, salir de nslookup con el comando exit.
• Por ultimo, editar el archivo /etc/nsswitch.conf (sudo vi /etc/nsswitch.conf),
cambiando la línea que dice:

hosts files dns mdns

... por

hosts dns files mdns

... para evitar que Kerberos tenga confictos con el manejo de los nombres de los equipos.

• Repetir esta parte del ensayo del servidor en kcliente1 y en kcliente2.

INSTALACIÓN Y CONFIGURACIÓN DEL KDC

Una vez configurado el DNS, se configura a kservidor como KDC, de la siguiente manera:

• Escriba el comando sudo apt-get install krb5-admin-server para instalar el


software necesario.
• Cuando el instalador pregunte “Default Kerberos version 5 realm”, escriba kn.org.
• Cuando el instalador pregunte "Kerberos servers for your realm", escriba
kservidor.kn.org.
• Responda igual a la pregunta "Administrative server for your Kerberos realm"

Revise ahora el archivo /etc/krb5.conf. Los siguientes parámetros deberían existir; en caso
contrario, agréguelos:

[libdefaults]
default_realm = Kn.ORG

[realms]
Kn.ORG = {
kdc = kservidor.kn.org:88
admin_server = kservidor.kn.org
default_domain = kn.org
}

Aseguramiento de plataformas – Taller #4


Página 5 de 9
[domain_realm]
.kn.org = Kn.ORG
kn.org = Kn.ORG

Puede revisarse luego el archivo /etc/krb5kdc/kdc.conf. Debería contener lo siguiente:

[kdcdefaults]
kdc_ports = 750,88

[realms]
k1.org = {
database_name = /var/lib/krb5kdc/principal
admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
acl_file = /etc/krb5kdc/kadm5.acl
key_stash_file = /etc/krb5kdc/stash
kdc_ports = 750,88
max_life = 10h 0m 0s
max_renewable_life = 7d 0h 0m 0s
master_key_type = des3-hmac-sha1
supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-
sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm
des:afs3
default_principal_flags = +preauth
}

Ejecutar ahora, como superusuario, el comando krb5_newrealm, para inicializar la base de datos
del dominio Kerberos. En este paso, debe suministrarse la clave que se empleará para cifrar y
descifrar la base de datos de Kerberos. Dicha clave queda almacenada en un archivo denominado
ARCHIVO DE STASH.

De acuerdo con los archivos de configuración, ¿en qué sitio queda almacenado el archivo de
stash?

Editar ahora el archivo /etc/krb5kdc/kadm5.acl, para permitir la administración remota del


servidor Kerberos. Quitar el símbolo de comentario (#) de la linea que dice:

*/admin *

Esto permitirá a cualquier principal cuyo nombre termine en “/admin” administrar la base de datos
de Kerberos con todos los privilegios.

Ahora, deben reiniciarse los servicios de Kerberos (servidor de administración y KDC) para que los
cambios entren en vigor:

/etc/init.d/krb5-admin-server restart
/etc/init.d/krb5-kdc restart

CREACIÓN DE LOS PRINCIPALES DE KERBEROS

Se crearán a continuación los principales de Kerberos. Los principales designan a los usuarios, y
a los servicios que se prestarán en la red.

Para ello, debe invocarse la interfaz local de administración de Kerberos, en kservidor. Ejecutar
como superusuario el comando:

kadmin.local

Aseguramiento de plataformas – Taller #4


Página 6 de 9
Crear ahora un principal administrativo para cada uno de los miembros del grupo, de la siguiente
manera:

addprinc jmadrid/admin

OJO: Reemplace jmadrid por cada uno de los miembros del equipo de trabajo. Asigne a cada
usuario un password que se pueda recordar fácilmente.

Con el siguiente comando, se pueden listar los principales que hay en la base de datos de
Kerberos hasta ahora:

listprincs

Explicar el propósito de cada uno de ellos.

Ahora, se exportan las claves de los principales kadmin/admin y kadmin/changepw, que se


requieren para administración remota. Estas claves se exportan al keytab administrativo del
servidor, localizado en /etc/krb5kdc/kadm5.keytab:

ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/admin kadmin/changepw

Salir de kadmin.local con el comando quit.

Ahora, se intentará acceder al kadmin empleando uno de los principales administrativos que se
crearon en el paso anterior. Para esto, es necesario autenticarse contra Kerberos.

Dar el comando klist.

¿Cómo interpreta el resultado? ¿Por qué se da este resultado?

Ahora debe ejecutarse el comando kinit jmadrid/admin, cambiando el jmadrid por el


nombre de uno de sus principales administrativos. Digitar el password cuando se solicite.

Volver a ejecutar el comando klist.


¿Cómo interpreta el resultado? ¿Por qué ocurrió esto?

Ahora, iniciar kadmin. Si todo va bien, el sistema solicitará de nuevo el password de Kerberos para
el principal administrativo creado anteriormente, y aparecerá el prompt de kadmin.

Crear ahora un principal no privilegiado para cada usuario del grupo:

addprinc jmadrid

TENER EN CUENTA: ¡CADA PRINCIPAL DEBE TENER EL MISMO NOMBRE QUE EL


USUARIO DEL SISTEMA OPERATIVO! Emplear un password diferente esta vez. Si es necesario,
tomar nota para no olvidarlo.

Crear ahora el principal que habilita el servicio Telnet en kcliente1:

addprinc -randkey host/kcliente1.k1.org

¿Para qué sirve el parámetro -randkey en esta línea de comando?

Crear el principal que habilita el servicio FTP en kcliente2:

Aseguramiento de plataformas – Taller #4


Página 7 de 9
addprinc -randkey ftp/kcliente2.k1.org

Salir de kadmin con el comando quit.

Por último, ejecutar el comando kdestroy, y luego klist.


¿Cuál es la utilidad de kdestroy, de acuerdo con lo que observa?

INSTALACIÓN DEL SERVIDOR TELNET EN CLIENTE1

• Ejectutar el comando sudo apt-get install krb5-user krb5-clients krb5-


telnetd.
• Contestar a las preguntas sobre Kerberos, del mismo modo que se hizo cuando se estaba
instalando el servidor.
• Volverse superusuario, empleando el comando sudo su.
• Autenticarse ante Kerberos como un principal administrativo (por ejemplo, jmadrid/admin).
• Ingresar a kadmin.
• Exportar la clave del principal del servicio Telnet al keytab local. Esta clave se usará para
autenticación entre los clientes Telnet y este servidor:

ktadd host/kcliente1.k1.org

• Si el comando ktadd da un error (informando que no se puede escribir en el archivo


/etc/krb5.keytab), verificar que se esté corriendo el comando kadmin como superusuario.
• Salir de kadmin con el comando quit.
• Destruir el tiquete del principal administrativo.
• Ejecutar el comando exit para salir de la modalidad superusuario.

INSTALACIÓN DEL SERVIDOR FTP EN CLIENTE2

• Ejecutar el comando sudo apt-get install krb5-user krb5-clients krb5-ftpd.


• Contestar a las preguntas sobre Kerberos, del mismo modo que se hizo cuando se estaba
instalando el servidor.
• Volverse superusuario, empleando el comando sudo su.
• Autenticarse ante Kerberos como un principal administrativo (por ejemplo, jmadrid/admin).
• Ingresar a kadmin.
• Exportar la clave del principal del servicio FTP al keytab local. Esta clave se usará para
autenticación entre los clientes FTP y este servidor:

ktadd ftp/kcliente2.k1.org

• Si el comando ktadd da un error (informando que no se puede escribir en el archivo


/etc/krb5.keytab), verificar que se esté corriendo el comando kadmin como superusuario.
• Salir de kadmin con el comando quit.
• Destruir el tiquete del principal administrativo.
• Ejecutar el comando exit para salir de la modalidad superusuario.

Aseguramiento de plataformas – Taller #4


Página 8 de 9
¡FINALMENTE, KERBEROS EN ACCIÓN!

Se puede ensayar ahora el servicio Telnet:


• Ingresar en kcliente2, como uno de los usuarios del grupo.
Dar el comando kinit, sin parámetros. ¿Qué ocurre?
Dar el comando klist. ¿Qué ocurre ahora?
Ahora, digitar: telnet -a kcliente1. El parámetro -a indica a telnet que debe emplear
autenticación Kerberos. ¿Qué ocurre? Observar cuidadosamente los mensajes que salen en
pantalla.
Digitar exit para salir del equipo remoto, y dar un klist de nuevo. ¿Observa alguna
diferencia?

Queda únicamente por ensayar el servicio FTP:


• Ingresar en kcliente1, como uno de los usuarios del grupo.
Dar el comando kinit, sin parámetros. ¿Qué ocurre?
Dar el comando klist. ¿Qué ocurre ahora?
Ahora, digitar: ftp kcliente2. ¿Qué ocurre? Observar cuidadosamente los mensajes que
salen en pantalla.
Digitar exit para salir del equipo remoto, y dar un klist de nuevo. ¿Observa alguna
diferencia?

Por último, antes de finalizar sesión y salir del equipo, ¿qué debería hacer el usuario por
razones de seguridad?

Aseguramiento de plataformas – Taller #4


Página 9 de 9

Potrebbero piacerti anche