Cerberus: el perro de tres cabezas |
Del punto de vista de seguridad, Kerberos se alinea a los siguientes principios:
- Mantiene la confidencialidad ya que las contraseñas nunca son transportadas en claro en la red.
- Protege la integridad de las transacciones implementando mecanismos que aseguran que los intercambios no son modificados en el tránsito.
- Provee alta disponibilidad (si es propiamente implementado) ya que se puede instalar de manera distribuida.
- Un servicio de resolución de nombres bien configurado y que funcione correctamente (como DNS).
- Hay que tener un servicio de directorio para almacenar los nombres de los actores principales (como un servicio LDAP) y que los atributos estén almacenados correctamente en el mismo.
- Debe haber un servicio de distribución de llaves (KDC abreviado en Inglés)
- El reloj de los participantes no puede tener una diferencia de mas de 5 minutos (o sea que servicios de entronización de tiempo deben ser implementados)
- El software del cliente y el servidor deben ser compilados con compatibilidad con Kerberos.
a) Bob inicia una sesión en su computador Windows en el principio del día.
b) Al ser exitoso, se le otorga un billete especial llamado Ticket Granting Ticket o TGT en Inglés. Este tiene una vigencia de 10 horas.
c) Cuando Bob abre su cliente de correo electrónico (Outlook) este accede a su buzón y puede empezar a trabajar en sus tareas pendientes.
Note que en esta secuencia, con una configuración normal, el cliente no tiene que ingresar su contraseña otra vez para acceder a su buzón, ya que su cliente de correos (Outlook) puede establecer la conexión con el servidor (Microsoft Exchange) y el Directorio Activo se encarga del resto.
Veamos en mas detalles las funciones proporcionadas por el Directorio Activo:
Función
|
Proveedor
|
Resolución de nombres (de hostname a dirección IP)
|
Servicio DNS del AD
|
Emite y valida billetes (tickets)
|
Controladora de Dominio del AD
|
Servicios de cifrado
|
Controladora de Dominio del AD
|
Define y hace cumplir las políticas de Kerberos
|
Directivas de Grupo del AD y el cliente de directivas de grupo del computador cliente.
|
Servicios de Directorio
|
El servicio LDAP proporcionado por el AD
|
Sincronización de tiempo
|
Servicio w32time de la controladora de dominio y los clientes - configurado automáticamente.
|
Alta disponibilidad y configuración uniforme
|
Servicios de replicación del AD
|
Cliente de correos con Kerberos
|
Windows 7, Microsoft Outlook
|
Servidor de correos con Kerberos
|
Microsoft Exchange
|
Ahora, contraste la fragmentación que existe para todos estos servicios en plataformas UNIX/Linux:
Función
|
Proveedor
|
Resolución de nombres (de hostname a dirección IP)
|
Servidor BIND
|
Emite y valida billetes (tickets)
|
Kerberos KDCs (MIT o Heimdal)
|
Servicios de cifrado
|
Para LDAP (SSL o TLS)
Para Kerberos (autenticación)
|
Define y hace cumplir las políticas de Kerberos
|
Archivos de configuración
|
Servicios de Directorio
|
OpenLDAP (u otros paquetes)
|
Sincronización de tiempo
|
Servicio Network Time Service (NTP) configurado manualmente.
|
Alta disponibilidad y configuración uniforme
|
Múltiples proveedores:
- LDAP Sync (para OpenLDAP)
- BIND maestro/esclavo
- Kerberos maestro/esclavo
- Archivadores y carpetas exportadas con archivos de configuración
|
Cliente Kerberos de correos
|
Existen muchos clientes de correos, pero no todos son compatibles con Kerberos
|
Servidor de correos con Kerberos
|
Es válido notar la cantidad diferente de productos y las implicaciones a los procesos, gente y tecnología que se requiere para mantener esta capacidad. Solo imagine que se necesite personal experto para Planear-Ejecutar-Verificar y Mantener la infraestructura, los procesos de operaciones necesitados todo esto con el simple propósito de proporcionar autenticación, esta es la definición del problema de la fragmentación de los servicios de TI.
Por eso es que en la entrada anterior, el Gerente de informática está preocupado por la falta de flexibilidad que exhibe la organización. Con tantos especialistas de soluciones de punta hay estrés en coordinación, cooperación y el nivel de especialización promueve la visión de túnel.
Los nombres de entidad de seguridad de servicio (SPN Service Principal Names en Inglés)
Estos son los nombres asociados con un servicio que se ejecutan en un contexto de seguridad Ejemplos de servicios son servidores web, servidores de archivo, etc.
Su sintaxis es: < tipo de servicio >/< nombre de host >:< puerto TCP o UDP >
De manera práctica, si el servicio web (digamos el servidor Apache o httpd) va a usar Kerberos como autenticación, no solo debe estar compilado con apoyo a Kerberos, sino que el servidor (o host) debe tener un nombre de entidad de seguridad de servicio registrado en el servicio de directorio. Por ejemplo, si el host es web.corp.contoso.com y servidor web está escuchando en el puerto 8080 su SPN es:
Su sintaxis es: < tipo de servicio >/< nombre de host >:< puerto TCP o UDP >
De manera práctica, si el servicio web (digamos el servidor Apache o httpd) va a usar Kerberos como autenticación, no solo debe estar compilado con apoyo a Kerberos, sino que el servidor (o host) debe tener un nombre de entidad de seguridad de servicio registrado en el servicio de directorio. Por ejemplo, si el host es web.corp.contoso.com y servidor web está escuchando en el puerto 8080 su SPN es:
http/web.corp..contoso.com:8080
Si no se especifica un puerto, se asume el puerto por defecto del servidor. En nuestro ejemplo, el servicio web usa el puerto TCP 80 por defecto. Note que por el otro lado el cliente (navegador de Internet) debe también ser compatible con Kerberos.
Diagnóstico y Resolución de Problemas con Kerberos
El diagnostico y resolución de problemas con Kerberos es un tema que requiere de experiencia y destreza. Sin embargo hay una serie de pasos básicos para empezar:- ¿Están los servicios y clientes compilados con compatibilidad a Kerberos?
- ¿Funciona la resolución de nombre? ¿Funciona tanto para el nombre completo (FQDN) como el nombre corto?
- Está el reloj sincronizado entre el cliente, servidor y KDC (el KDC es la controladora de dominio de AD)
- Se registraron correctamente los nombres de entidad de seguridad de servicio en el directorio (nombre completo (FQDN) y/o nombre corto)?
- Finalmente, el hecho de que el cliente se puede autenticar no implica que este esté autorizado para acceder!!!
No hay comentarios:
Publicar un comentario