FreeIPA (Identity, Policy, Audit) constituye una solución de código abierto para gestión centralizada de identidad y seguridad, diseñada principalmente para integrar y administrar en entornos Linux/Unix información de usuarios, políticas, permisos, registros de auditoría y otros elementos. Sus funcionalidades principales abarcan:
- Administración unificada de identidades: Gestión centralizada de información relativa a usuarios, grupos, hosts, servicios y entidades.
- Inicio de sesión único (SSO): Implementación de autenticación transparente entre servicios mediante Kerberos.
- Control de acceso: Basado en roles (RBAC) y hosts (HBAC).
- Gestión de certificados: Emisión y administración de certificados X.509 a través de la CA integrada.
- Auditoría y cumplimiento: Registro de operaciones de usuario para satisfacer requisitos de seguridad y cumplimiento.
- DNS y automatización: Servicio DNS integrado que simplifica la detección de hosts y servicios.
Arquitectura Básica
FreeIPA opera bajo un modelo cliente-servidor, con componentes esenciales que incluyen:
- LDAP (OpenLDAP/389 Directory Server): Almacena datos de usuarios, grupos, políticas y otros elementos.
- Kerberos: Proporciona autenticación robusta y gestión de tickets.
- Dogtag PKI: Actúa como autoridad certificadora (CA), gestionando certificados SSL/TLS.
- BIND DNS: Administra registros DNS con soporte para actualizaciones dinámicas.
- SSSD (System Security Services Daemon): Componente cliente para caché y sincronización de información de identidad.
- Interfaz Web y CLI: Herramientas de gestión mediante interfaz gráfica y línea de comandos.
Características de la arquitectura:
- Alta disponibilidad: Soporta réplica multi-máster, garantizando redundancia del servicio.
- Integración: Los componentes interactúan mediante API unificada, simplificando la administración.
- Escalabilidad: Mecanismo de plugins que permite integrar Samba, Active Directory y otros sistemas.
Componentes Esenciales
- Servidor IPA
- Servicio de directorio LDAP: Almacena todos los datos de identidad y políticas.
- KDC de Kerberos: Centro de distribución de claves, gestiona tickets de usuario y servicio.
- Servicio CA: Emite y revoca certificados.
- Servicio DNS: Gestiona registros de resolución de nombres de dominio.
- Interfaz de administración web: Herramienta gráfica accesible mediante HTPS.
- Cliente IPA
- SSSD: Sincroniza datos del servidor localmente, soporta autenticación sin conexión.
- Cliente Kerberos: Obtiene y valida tickets Kerberos.
- Sincronización de reglas sudo: Obtiene configuraciones de permisos sudo del servidor.
- Herramientas de administración
- CLI de ipa: Heramientas de línea de comandos (como
usuario-agregar-ipa). - Interfaz Web: Panel de administración accesible mediante navegador (puerto predeterminado 443).
Mecanismo de Operación
- Flujo de autenticación de usuario:
- Al iniciar sesión, el cliente solicita un ticket (TGT) al KDC mediante Kerberos.
- Tras validar las credenciales del usuario, el KDC emite el TGT, con el cual el usuario obtiene tickets de servicio (ST).
- Al acceder a servicios (SSH, aplicaciones web), estos verifican el ST mediante Kerberos.
- Ejecución de políticas:
- Las reglas HBAC definen qué usuarios/grupos pueden acceder a qué hosts/servicios.
- Las reglas sudo controlan los permisos para ejecutar comandos privilegiados.
- Sincronización de datos:
- Los clientes sincronizan periódicamente mediante SSSD datos de usuarios, grupos y políticas del servidor.
- Los servidores multi-máster mantienen consistencia de datos mediante réplica LDAP.
Ejemplos de Configuración Diaria
1. Instalación del Servdior FreeIPA
# Instalación en CentOS/RHEL 8
sudo dnf install -y servidor-freeipa
sudo instalar-servidor-ipa --dominio=empresa.com --reino=EMPRESA.COM --contraseña-directorio=contraseña_admin --contraseña-admin=contraseña_admin
# Seguir las indicaciones para completar la instalación, configurando automáticamente DNS, Kerberos, CA, etc.
2. Adición de Usuarios y Grupos
# Crear usuario
ipa agregar-usuario maria_garcia --primer-nombre=María --apellido=García --correo=maria@empresa.com
# Crear grupo
ipa agregar-grupo equipo_dev --descripcion="Equipo de Desarrollo"
# Agregar usuario al grupo
ipa agregar-miembro-equipo equipo_dev --usuarios=maria_garcia
3. Configuración de Reglas HBAC (Control de acceso)
# Crear regla: permitir acceso de equipo_dev a todos los hosts
ipa agregar-regla-hbac acceso_dev --descripcion="Acceso de desarrolladores a todos los hosts"
ipa agregar-usuario-regla-hbac acceso_dev --grupos=equipo_dev
ipa agregar-host-regla-hbac acceso_dev --grupos-host=servidores_ipa
4. Gestión de Permisos Sudo
# Crear regla sudo: permitir a equipo_dev ejecutar yum como root
ipa agregar-regla-sudo administrar_yum --descripcion="Permitir yum como root"
ipa agregar-opcion-regla-sudo administrar_yum --opcion-sudo '!autenticar'
ipa agregar-usuario-regla-sudo administrar_yum --grupos=equipo_dev
ipa agregar-comando-regla-sudo administrar_yum --comandos-sudo "/usr/bin/yum"
5. Incorporación de Cliente al Dominio FreeIPA
# Instalar herramientas de cliente
sudo dnf install -y cliente-freeipa
# Unirse al dominio
instalar-cliente-ipa --dominio=empresa.com --servidor=servidor-ipa.empresa.com --principal=admin
6. Gestión de Certificados
# Solicitar certificado para usuario
ipa solicitud-certificado --entidad=maria_garcia --agregar --certificado-salida=/ruta/a/maria_garcia.crt
# Listar certificados existentes
ipa buscar-certificados
Escenarios de Aplicación Típicos
- Autenticación centralizada en servidores empresariales Linux: Administración unificada de accesos SSH para equipos de desarrollo y operaciones.
- Integración con clústeres Kubernetes: Uso de FreeIPA como fuente de identidad en entornos OpenShift.
- SSO para aplicaciones web: Implementación de inicio de sesión único mediante Kerberos o proxy OAuth2.
- Cumplimiento normativo: Registro de operaciones de usuario para generación de informes de auditoría.
Resumen
Mediante la integración de servicios esenciales como LDAP, Kerberos y PKI, FreeIPA proporciona a las empresas un conjunto completo de soluciones para gestión de identidad. Sus ventajas incluyen la integración lista para usar, políticas de control de acceso flexibles y compatibilidad profunda con el ecosistema Linux. Para entornos Linux/Unix que requieren reemplazar o complementar Active Directory, FreeIPA representa la elección ideal.