tutoriales.com

Configura un Servidor RADIUS para Autenticación WiFi Empresarial (WPA2/WPA3-Enterprise)

Este tutorial te guiará paso a paso en la configuración de un servidor RADIUS para implementar autenticación WPA2/WPA3-Enterprise en tu red WiFi. Descubre cómo mejorar la seguridad, centralizar la gestión de usuarios y proteger tus datos sensibles.

Intermedio20 min de lectura5 views
Reportar error

Introducción: Elevando la Seguridad de Tu Red WiFi 🛡️

En el mundo actual, la seguridad de las redes WiFi es primordial, especialmente en entornos empresariales. Las redes domésticas suelen utilizar WPA2-Personal (o WPA3-Personal) con una contraseña precompartida (PSK), lo cual es suficiente para un número limitado de usuarios. Sin embargo, en un entorno empresarial, esta aproximación es insuficiente.

Aquí es donde entra en juego la autenticación empresarial, específicamente WPA2-Enterprise o WPA3-Enterprise. A diferencia de la versión Personal, que utiliza una única contraseña para todos, Enterprise emplea un servidor de autenticación para verificar las credenciales de cada usuario. Este servidor es típicamente un servidor RADIUS (Remote Authentication Dial-In User Service).

Un servidor RADIUS no solo mejora drásticamente la seguridad al requerir credenciales únicas para cada usuario, sino que también ofrece una gestión centralizada, mayor flexibilidad y la capacidad de aplicar políticas de acceso basadas en roles. Este tutorial te guiará a través de los pasos para configurar un servidor RADIUS usando FreeRADIUS en un sistema Linux, y cómo integrarlo con tu infraestructura WiFi existente.

🔥 Importante: Aunque este tutorial se centra en FreeRADIUS en Linux, los principios de configuración de RADIUS y WPA2/WPA3-Enterprise son aplicables a otros sistemas operativos y soluciones RADIUS.

¿Por qué WPA2/WPA3-Enterprise con RADIUS? 🤔

Aquí te presentamos las principales ventajas:

  • Seguridad Mejorada: Cada usuario se autentica con sus propias credenciales (nombre de usuario y contraseña), no con una clave compartida. Esto significa que si un empleado se va, simplemente se desactiva su cuenta, sin necesidad de cambiar la contraseña de toda la red.
  • Autenticación Centralizada: Todas las solicitudes de acceso pasan por un servidor centralizado, simplificando la gestión de usuarios y políticas.
  • Encriptación Individual: WPA2/WPA3-Enterprise utiliza 802.1X y EAP (Extensible Authentication Protocol) para establecer una clave de cifrado única para cada sesión de usuario, lo que aumenta la privacidad y seguridad.
  • Auditoría y Rendición de Cuentas: Es más fácil rastrear quién se conectó a la red y cuándo, lo que es crucial para el cumplimiento y la seguridad.
  • Escalabilidad: Ideal para redes con muchos usuarios, como oficinas, universidades u hoteles.

Requisitos Previos 🛠️

Antes de sumergirnos en la configuración, asegúrate de tener lo siguiente:

  • Servidor Linux: Una máquina virtual o física con una distribución Linux (preferiblemente Debian/Ubuntu o CentOS/RHEL) para instalar FreeRADIUS.
  • Dirección IP Estática: El servidor RADIUS debe tener una dirección IP estática en tu red local.
  • Puntos de Acceso (APs) Compatibles: Tus APs deben ser compatibles con WPA2/WPA3-Enterprise y la autenticación 802.1X. La mayoría de los APs empresariales lo son.
  • Acceso de Administrador: Privilegios de administrador (sudo) en el servidor Linux y acceso a la configuración de tus APs.
  • Conocimientos Básicos de Redes: Familiaridad con conceptos como direcciones IP, subredes y cómo funcionan los APs.
¡Listo para empezar!

Paso 1: Configurar el Servidor Linux y FreeRADIUS 🐧

En esta sección, prepararemos nuestro servidor Linux e instalaremos FreeRADIUS.

1.1 Actualizar el Sistema Operativo

Siempre es una buena práctica empezar con un sistema actualizado.

Para Debian/Ubuntu:

sudo apt update
sudo apt upgrade -y

Para CentOS/RHEL:

sudo yum update -y

1.2 Instalar FreeRADIUS

La instalación de FreeRADIUS es sencilla y está disponible en los repositorios de la mayoría de las distribuciones.

Para Debian/Ubuntu:

sudo apt install freeradius freeradius-utils -y

Para CentOS/RHEL:

sudo yum install freeradius freeradius-utils -y

Una vez instalado, el servicio FreeRADIUS debería iniciarse automáticamente. Puedes verificar su estado:

systemctl status freeradius

Si no está activo, puedes iniciarlo con:

sudo systemctl start freeradius
sudo systemctl enable freeradius # Para que inicie con el sistema

1.3 Configurar el Firewall 🚧

FreeRADIUS utiliza los puertos UDP 1812 (autenticación) y 1813 (contabilidad). Debemos permitir estas conexiones desde nuestros APs.

Para ufw (Debian/Ubuntu):

sudo ufw allow 1812/udp
sudo ufw allow 1813/udp
sudo ufw enable
sudo ufw status

Para firewalld (CentOS/RHEL):

sudo firewall-cmd --permanent --add-port=1812/udp
sudo firewall-cmd --permanent --add-port=1813/udp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
📌 Nota: Si tu servidor también es un DHCP o DNS, asegúrate de que esos puertos (67, 68, 53) también estén abiertos si es necesario.

Paso 2: Configuración Básica de FreeRADIUS 🎯

Ahora vamos a configurar FreeRADIUS para que acepte conexiones de nuestros APs y autentique a los usuarios.

2.1 Añadir Puntos de Acceso (Clientes RADIUS)

El servidor RADIUS necesita saber qué dispositivos (tus APs) tienen permiso para enviar solicitudes de autenticación. Esto se hace en el archivo clients.conf.

Edita el archivo (ubicación típica: /etc/freeradius/3.0/clients.conf o /etc/freeradius/clients.conf):

sudo nano /etc/freeradius/3.0/clients.conf

Busca la sección client localhost y justo debajo, o al final del archivo, añade una entrada para cada uno de tus APs. Asegúrate de reemplazar your_ap_ip con la IP de tu AP y your_shared_secret con una contraseña secreta fuerte que compartirán el AP y el servidor RADIUS.

client your_ap_ip {
    ipaddr = your_ap_ip
    secret = your_shared_secret
    nastype = other
}

# Ejemplo para un segundo AP
# client 192.168.1.11 {
#     ipaddr = 192.168.1.11
#     secret = MiSecretoSuperSeguro
#     nastype = other
# }
⚠️ Advertencia: El `secret` debe ser idéntico en el servidor RADIUS y en la configuración de cada AP. Una incompatibilidad impedirá la autenticación.

2.2 Configurar Usuarios y Grupos 👤

Para este tutorial, utilizaremos un archivo de texto simple (users) para almacenar las credenciales de los usuarios. En un entorno de producción más grande, es común integrar FreeRADIUS con bases de datos (SQL), LDAP o Active Directory.

Edita el archivo users (ubicación típica: /etc/freeradius/3.0/users o /etc/freeradius/users):

sudo nano /etc/freeradius/3.0/users

Añade las credenciales de tus usuarios. Puedes definir usuarios con diferentes métodos de autenticación. Para WiFi, el más común es Cleartext-Password para pruebas, pero Crypt-Password (usando hashes) o autenticación vía EAP-TTLS/PEAP son más seguros.

# Ejemplo de usuario simple con contraseña en texto plano (solo para pruebas)
# Para producción, considera EAP o bases de datos.

usuario1 Cleartext-Password := "contrasena123"
    Reply-Message = "Hola, usuario1!"

usuario2 Cleartext-Password := "contrasenaSegura456"

# Ejemplo de usuario para EAP (usando el módulo 'eap')
# eap-test User-Password == "hello"
#   Reply-Message = "Hello eap user!"

Después de guardar los cambios, reinicia FreeRADIUS para que tome la nueva configuración:

sudo systemctl restart freeradius

Paso 3: Configuración de Certificados para EAP-TLS/PEAP (Opcional pero Recomendado) 🔐

Para una seguridad robusta, especialmente en WPA2/WPA3-Enterprise, es altamente recomendable usar EAP-TLS, EAP-TTLS o PEAP. Estos métodos requieren certificados SSL/TLS para cifrar la comunicación entre el cliente y el servidor RADIUS, protegiendo las credenciales de usuario.

FreeRADIUS incluye scripts para generar certificados de prueba. Para entornos de producción, se recomienda usar certificados de una CA de confianza o tu propia PKI empresarial.

3.1 Generar Certificados de Prueba

Navega al directorio de certificados de FreeRADIUS y ejecuta el script de generación:

cd /etc/freeradius/3.0/certs
sudo ./bootstrap

Este script generará una CA raíz, un certificado de servidor y un certificado de cliente de prueba. Durante el proceso, se te pedirán algunos detalles para los certificados (nombre del país, organización, etc.). Puedes dejar la mayoría por defecto o personalizarlos.

📌 Nota: Para entornos de producción, el `Common Name` (CN) del certificado del servidor debe coincidir con el nombre de dominio completamente calificado (FQDN) de tu servidor RADIUS.

3.2 Habilitar Módulos EAP

FreeRADIUS tiene un archivo de configuración para EAP. Asegúrate de que los módulos EAP (especialmente tls y peap) estén configurados para usar los certificados generados.

Edita eap.conf (ubicación típica: /etc/freeradius/3.0/mods-enabled/eap o /etc/freeradius/eap.conf):

sudo nano /etc/freeradius/3.0/mods-enabled/eap

Busca las secciones tls y peap. Asegúrate de que las rutas a los certificados private_key_file, certificate_file y ca_file sean correctas y apunten a los archivos que acabas de generar (ej. server.key, server.pem, ca.pem). Por defecto, bootstrap los configura correctamente.

tls {
    # ... otras configuraciones ...
    private_key_file = ${certdir}/server.key
    certificate_file = ${certdir}/server.pem
    ca_file = ${certdir}/ca.pem
    # ...
}

peap {
    # ... otras configuraciones ...
    private_key_file = ${certdir}/server.key
    certificate_file = ${certdir}/server.pem
    ca_file = ${certdir}/ca.pem
    # ...
}

Después de cualquier cambio, reinicia FreeRADIUS:

sudo systemctl restart freeradius

Paso 4: Configurar los Puntos de Acceso (APs) 📡

Este es un paso crucial donde tus APs se configuran para usar el servidor RADIUS para la autenticación.

Los pasos exactos pueden variar ligeramente dependiendo del fabricante y modelo de tus APs (Ubiquiti, Cisco, TP-Link Omada, etc.), pero los conceptos son los mismos.

4.1 Crear un Nuevo SSID/Red WiFi

Accede a la interfaz de administración de tu AP o controlador WiFi (si usas un sistema gestionado).

  1. Crea una nueva red WiFi (SSID): Dale un nombre distintivo, por ejemplo, MiEmpresa-Segura.
  2. Modo de Seguridad: Selecciona WPA2-Enterprise (o WPA3-Enterprise si tus APs y clientes lo soportan).
  3. Servidor RADIUS: Aquí es donde introduces los detalles de tu servidor FreeRADIUS:
    • Dirección IP del Servidor RADIUS: La IP estática de tu servidor Linux.
    • Puerto de Autenticación (Auth Port): Generalmente 1812.
    • Puerto de Contabilidad (Accounting Port): Generalmente 1813 (opcional, pero recomendado para auditoría).
    • Secreto Compartido (Shared Secret): ¡La clave! Debe ser exactamente el mismo secret que configuraste en el archivo clients.conf de FreeRADIUS para este AP.
Ejemplo de Configuración en un AP Ubiquiti UniFi En la interfaz de UniFi Network, irías a `Settings` > `WiFi` > `Create New WiFi Network`:
  • Name: MiEmpresa-Segura
  • Security Protocol: WPA2 Enterprise (o WPA3 Enterprise)
  • RADIUS Profile: Crear un nuevo perfil RADIUS o editar uno existente.
    • IP Address: 192.168.1.100 (IP de tu servidor RADIUS)
    • Port: 1812
    • Shared Secret: MiSecretoSuperSeguro
    • (Opcional) Accounting RADIUS: Configurar un segundo servidor o el mismo con puerto 1813.

Guarda los cambios y aplica la configuración a tus APs.

CLIENTE ACCESS POINT SERVER RADIUS 1. Solicita Conexión 2. Envía Credenciales 3. Verifica CASO A: VÁLIDO 4a. Accept 5a. Permite Conexión CASO B: NO VÁLIDO 4b. Reject 5b. Deniega Acceso

Paso 5: Probar la Autenticación de Clientes ✅

Con todo configurado, es hora de probar si los clientes pueden autenticarse correctamente.

5.1 Conectar un Dispositivo Cliente

Toma un dispositivo (portátil, smartphone) y busca la red WiFi con el SSID que acabas de configurar (MiEmpresa-Segura).

Cuando intentes conectar, el dispositivo te pedirá:

  • Método EAP: Elige el método que tu servidor RADIUS soporta (generalmente PEAP o TTLS).
  • Certificado de CA: Es posible que tengas que confiar en el certificado de tu CA raíz. Para los certificados de prueba generados por FreeRADIUS, esto puede requerir importar el ca.pem al almacén de certificados del cliente.
  • Identidad/Nombre de Usuario: Introduce uno de los usuarios que creaste en users (ej. usuario1).
  • Contraseña: Introduce la contraseña correspondiente (ej. contrasena123).
  • Dominio/Identidad Anónima: Puede que te pida un dominio (generalmente opcional para PEAP) o una identidad externa. Si tienes problemas, déjalo en blanco o usa anonymous.

5.2 Monitorear FreeRADIUS en Tiempo Real

Mientras intentas conectar un cliente, puedes ver los registros de FreeRADIUS en tiempo real para diagnosticar problemas. Ejecuta FreeRADIUS en modo depuración en una ventana de terminal separada:

sudo freeradius -X

Esto mostrará una salida detallada de cada intento de autenticación. Busca mensajes como Access-Accept (autenticación exitosa) o Access-Reject (fallida) y los motivos de cualquier error.

💡 Consejo: Si la conexión falla, revisa el `secret` compartido en el AP y en `clients.conf`, la IP del AP, el estado del firewall y los logs de FreeRADIUS.

5.3 Solución de Problemas Comunes Troubleshooting

  • radtest Utility: Usa radtest desde el servidor FreeRADIUS para simular una solicitud de autenticación. Reemplaza your_ap_ip, your_shared_secret, username y password.
radtest username password your_ap_ip 0 your_shared_secret
Si `radtest` funciona pero el AP no, el problema está en la configuración del AP o el firewall.
  • Certificados: Si usas EAP-TLS/PEAP y la autenticación falla, asegúrate de que el certificado CA raíz del servidor RADIUS esté instalado y confiado en el dispositivo cliente.
  • Sincronización de Hora: Asegúrate de que las horas de tu servidor RADIUS y APs estén sincronizadas (usando NTP), ya que esto puede afectar la validación de certificados.

Paso 6: Integración con Directorios de Usuarios (LDAP/AD) (Avanzado) 🌐

Para entornos empresariales reales, la gestión de usuarios a través de un simple archivo de texto no es escalable. La integración con un directorio de usuarios como LDAP (Lightweight Directory Access Protocol) o Active Directory (AD) es la solución estándar.

6.1 Configurar FreeRADIUS para LDAP/AD

FreeRADIUS tiene módulos incorporados para LDAP. Primero, necesitas habilitar y configurar el módulo ldap.

  1. Habilitar el módulo ldap: Crea un enlace simbólico para habilitarlo.
sudo ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/
  1. Editar ldap de configuración: Edita el archivo de configuración del módulo LDAP.
sudo nano /etc/freeradius/3.0/mods-enabled/ldap
Aquí configurarás los detalles de tu servidor LDAP/AD:
*   `server`: Dirección IP o FQDN de tu controlador de dominio/servidor LDAP.
*   `port`: Puerto de LDAP (389 para LDAP, 636 para LDAPS).
*   `identity`: Un usuario con permisos para buscar en el directorio (ej. `cn=radius_bind,ou=Users,dc=example,dc=com`).
*   `password`: Contraseña del usuario de identidad.
*   `base_dn`: La base de búsqueda para los usuarios (ej. `ou=Users,dc=example,dc=com`).
*   `filter`: Filtro para buscar usuarios (ej. `(objectClass=person)` o `(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})`, para AD).

3. Configurar el proceso de autenticación: Necesitarás modificar el archivo default o inner-tunnel (si usas EAP) para que FreeRADIUS consulte el módulo ldap para la autenticación.

sudo nano /etc/freeradius/3.0/sites-enabled/default
# o si usas PEAP/TTLS
sudo nano /etc/freeradius/3.0/sites-enabled/inner-tunnel
Dentro de la sección `authenticate`, busca `Auth-Type PAP` y añade o modifica para incluir `ldap`:
authenticate {
# ... otros métodos de autenticación ...
Auth-Type PAP {
# Si el usuario no se encuentra en 'users' o tiene Cleartext-Password, intentar con LDAP
ldap
}
# Para autenticación EAP, asegúrate de que el módulo LDAP se llame después del EAP
# Si usas PEAP, busca la sección `inner-tunnel` y el `authenticate` de allí.
# inner-tunnel {
#   authorize {
#     # ...
#     ldap
#   }
#   authenticate {
#     # ...
#     Auth-Type PAP {
#         ldap
#     }
#   }
# }
}
  1. Reiniciar FreeRADIUS:
sudo systemctl restart freeradius
CLIENTE PUNTO DE ACCESO (AP) SERVIDOR RADIUS LDAP / ACTIVE DIRECTORY 1. Solicitud de Conexión 2. Envía Credenciales 3. Consulta 4. Respuesta AUTENTICACIÓN EXITOSA 5a. RADIUS envía 'Accept' 6a. AP permite el tráfico AUTENTICACIÓN FALLIDA 5b. RADIUS envía 'Reject' 6b. AP deniega la conexión
🔥 Importante: La configuración de LDAP puede ser compleja. Asegúrate de tener un usuario de servicio LDAP/AD con permisos de solo lectura para buscar usuarios y de probar extensivamente.

Conclusión ✨

Has llegado al final de este tutorial sobre la configuración de un servidor RADIUS para autenticación WiFi empresarial. Al implementar WPA2/WPA3-Enterprise, no solo has mejorado drásticamente la seguridad de tu red, sino que también has sentado las bases para una gestión de usuarios más robusta y escalable.

La seguridad de red es un campo en constante evolución. Mantén tu servidor FreeRADIUS y tus APs actualizados, y considera la implementación de políticas de seguridad adicionales, como VLANs para segregación de tráfico y monitoreo de la red para detectar actividades sospechosas.

Esperamos que este tutorial te haya sido de gran utilidad en tu camino hacia una red WiFi más segura y eficiente. ¡Gracias por seguirlo!

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!