FreeIPA es una solución de identidad y autenticación integrada para entornos Linux. Reúne LDAP, Kerberos, DNS, una CA y gestión de políticas en una sola plataforma, con una interfaz web bastante decente para administrarla. Si vienes de Active Directory, la analogía más cercana es esta: FreeIPA es “AD para Linux”, pero con piezas open source y bien integradas.
En esta guía instalaremos FreeIPA Server en un contenedor LXC dentro de Proxmox, que es la forma más ligera de tenerlo en producción casera o en un homelab.
Requisitos previos
Configuración del LXC
La distribución recomendada es AlmaLinux 10 o Rocky Linux 9 (RPM). Los requisitos mínimos:
- RAM: 2 GB mínimo, 4-8 GB si vas a usarlo en serio.
- CPU: 1 vCPU mínimo, 4 vCPU si vas a tener varios usuarios.
- Disco: 8 GB mínimo, 30 GB recomendado.
- Red: IP estática. FreeIPA necesita una IP fija porque publica registros DNS y Kerberos contra ella.
Configuración de red
Lo más limpio es asignar la IP desde la propia interfaz de Proxmox al crear el contenedor. Si tienes que hacerlo por consola, usa nmcli:
sudo nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.100/24
sudo nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
sudo nmcli con mod "Wired connection 1" ipv4.dns 192.168.1.1
sudo nmcli con mod "Wired connection 1" ipv4.method manual
sudo nmcli con up "Wired connection 1"
Ajusta los valores a tu red. Lo crítico es que la IP sea estática y que el gateway apunte a tu router.
Hostname
Configura el hostname como un FQDN válido antes de instalar FreeIPA. Kerberos es especialmente sensible con esto:
sudo hostnamectl set-hostname ipa.altobits.com
Tras cambiar el hostname, edita /etc/hosts para que el FQDN resuelva a la IP del propio contenedor, porque hasta que no instales el servidor DNS interno, no hay nada más que lo resuelva:
192.168.1.100 ipa.altobits.com ipa
Instalación de FreeIPA Server
Actualiza el sistema
Como en cualquier instalación seria, empieza por aquí:
dnf update -y
Instala el paquete
dnf install freeipa-server -y
Lanza el instalador
Este comando configura el servidor de forma desatendida con los parámetros mínimos. Ajusta las contraseñas a algo serio antes de ejecutarlo en producción:
ipa-server-install --no-ntp --no-dns-sshfp --mkhomedir -r ALTOBITS.COM -n altobits.com -p Password123 -a Password123
Qué hace cada flag
--no-ntp: desactiva la configuración de NTP interna. Útil si ya tienes un servidor de tiempo en la red, pero ojo: Kerberos es estricto con el desfase horario. Si el reloj de este LXC se desvía más de 5 minutos, los tickets Kerberos empiezan a fallar. Lo compenso con un chrony externo.--no-dns-sshfp: no genera registros SSHFP en DNS. Lo dejo así porque ya tengo un DNS autoritativo en la infraestructura.--mkhomedir: crea el directorio home del usuario automáticamente al primer login. Imprescindible si no quieres crear homes a mano.-r ALTOBITS.COM: el realm Kerberos. Convención: en mayúsculas.-n altobits.com: el dominio DNS. Convención: en minúsculas, igual que tu zona DNS.-p: contraseña del Directory Manager (LDAP).-a: contraseña del admin de FreeIPA.
Verificación de la instalación
Comprueba el estado general del servidor:
ipa-server-install --status
Y los servicios de forma individual, que es lo que realmente te dice si algo está roto:
# Kerberos
kinit admin
klist
# LDAP
ldapsearch -x -h localhost -b "dc=altobits,dc=com"
# Interfaz web
curl -k https://ipa.altobits.com/ipa/ui/
Si las tres responden sin errores, FreeIPA está operativo.
Acceso a la interfaz web
Abre un navegador y ve a:
https://ipa.altobits.com/ipa/ui/
El navegador se quejará del certificado autofirmado. Acepta la excepción y entra con admin y la contraseña que pasaste a -a.
Configuración posterior
Los servicios deberían iniciarse solos al terminar la instalación. Si por alguna razón no es así:
systemctl enable ipa
systemctl start ipa
Resolución de problemas comunes
El hostname no resuelve
Si al lanzar el instalador te dice que el FQDN no resuelve, edita /etc/hosts y añade la entrada manualmente:
echo "192.168.1.100 ipa.altobits.com ipa" >> /etc/hosts
Un servicio no arranca
Lo primero es mirar los logs:
journalctl -u dirsrv@ALTOBITS.COM -n 50
journalctl -u krb5kdc -n 50
Ahí verás el error exacto. Los dos problemas más habituales son permisos sobre /var/lib/ipa y conflictos de puerto (otra cosa escuchando en el 88 o el 464).
Siguientes pasos
Con FreeIPA Server levantado, ya puedes:
- Crear usuarios y grupos desde la web o la CLI (
ipa user-add). - Definir políticas de contraseña (longitud, complejidad, expiración).
- Integrar máquinas cliente al dominio.
- Configurar reglas de sudo centralizadas.
- Emitir certificados para servicios internos.