Las redes WiFi habitualmente utilizan un tipo de cifrado WPA2 o WPA3 Personal, o también conocido como PSK (Pre-Shared Key), donde tendremos una contraseña para acceder a la red inalámbrica, y todos los clientes WiFi deberán usar esta clave para acceder y para cifrar/descifrar la información que viaja a través del aire. FreeRADIUS es el software por excelencia para montar un servidor RADIUS y autenticar a los clientes con nombre de usuario, contraseña y un certificado digital, con el objetivo de configurar redes WiFi con WPA2 o WPA3-Enterprise, haciendo uso de diferentes protocolos como PEAP, TLS, TTLS y MSCHAPv2 entre otros.
Hoy en RedesZone os vamos a explicar cómo podemos configurar un servidor RADIUS con FreeRADIUS en un pfSense para autenticar a los clientes inalámbricos, así como las ventajas y desventajas del uso de este protocolo.
¿Qué es un servidor RADIUS?
RADIUS viene del acrónimo en inglés Remote Authentication Dial-In User Service, es un protocolo de autenticación y autorización para el acceso a la red, por defecto, hace uso del protocolo 1812 UDP para establecer las conexiones entre los equipos para autenticarse. Los servidores RADIUS permiten tanto autenticar a usuarios de conexiones a Internet, haciendo uso del PPPoE, pero también permite autenticar a usuarios cableados, a usuarios que se quieren autenticar contra un servidor NAS o un servicio, e incluso permite autenticar a los clientes inalámbricos WiFi, haciendo uso de WPA2/WPA3 Enterprise.
Los servidores RADIUS normalmente hacen uso de diferentes protocolos de autenticación, PAP, CHAP y EAP son algunos de ellos. Una de las características más interesantes, es que nos permite controlar las sesiones, cuándo comienza la autenticación, cuando acaba la conexión y muchos otros parámetros. Dependiendo del uso del servidor RADIUS, este estará configurado orientado a proporcionar un servicio u otro.
¿Qué es FreeRADIUS?
FreeRADIUS es el software por excelencia para montar un servidor RADIUS, es modular, gratuito y proporciona un alto rendimiento y una gran seguridad. FreeRADIUS es compatible con todos los protocolos de autenticación habituales, de hecho, es la base de muchos productos y servicios comerciales de RADIUS, además, tenemos una gran cantidad de módulos incluidos y otros que se pueden incorporar. Por ejemplo, los módulos incluidos permiten LDAP, MySQL, PostgreSQL e incluso Oracle y otras bases de datos, respecto a los tipos de autenticación, soporta EAP, incluyendo PEAP, EAP-TTLS y también EAP-TLS.
FreeRADIUS permite ser administrado a través de herramientas adicionales, para no tener que configurarlo de manera manual a través de editar complejos archivos de texto y posteriormente cargar la configuración. pfSense dispone de una completa interfaz gráfica de usuario que nos permitirá configurar todos los parámetros en detalle, además, tendremos la posibilidad de ver los archivos de texto de configuración en bruto, por si tenemos que realizar alguna modificación por nosotros mismos.
¿Con qué podemos combinar un FreeRADIUS?
Como puedes ver, los servidores FreeRADIUS son muy útiles. Pero estos tienen muchas más funcionalidades, e incluso se pueden combinar con otros servicios para hacerlos más versátiles, eficientes y útiles. Algunos de ellos son:
- Servidor VPN: Los FreeRADIUS se pueden implementar junto con servidores VPN como pueden ser OpenVPN, Cisco VPN, entre otros. Una de las funcionalidades más comunes, es aplicar sistemas de autenticación de usuarios. Por lo cual los accesos, estarán mucho más controlados si se trata de una empresa u otra organización.
- Servicios Wi-Fi: Las redes Wi-Fi se pueden beneficiar de estos servidores RADIUS. Comúnmente es para poder autenticar usuarios, al igual que en las VPN. Pero en este caso podemos añadir otras funcionalidades como los estándares WPA-2 o 3 Enterprise. Los cuales aumentan la seguridad de forma considerable.
- Servidores DHCP: Si los combinamos con servidores DHCP, se pueden proporcionar unas políticas dinámicas de asignación de direcciones IP. Estas pueden estar basadas en la autenticación de usuarios, o incluso de dispositivos mediante el uso de otros métodos.
- Sistemas NAC: Se trata de sistemas de Control de Acceso a Red. Uno de los más conocidos es PacketFence, el cual nos ayuda a mantener ciertos puntos de control sobre la red. Y poder ver cómo es su rendimiento con los usuarios. Entre otras cosas.
- Servidores SQL: Si bien la autenticación de usuarios es una constante en estos casos, con los servidores SQL tenemos alguna peculiaridad. La más conocida es la capacidad de registrar datos de contabilidad en una base de datos. Obviamente, es con respecto a los accesos que se pueden producir. De este modo, no tendremos que buscar por toda la información. Sino que bastará con buscar el momento concreto según tengamos configurada la base de datos y la búsqueda de contenido.
- Autenticación por tokens: Los servidores FreeRADIUS pueden funcionar con sistemas de autenticación de dos factores. Algunos de los más conocidos son Google Authenticator, u otras soluciones similares que se puedan encontrar actualmente.
- Servicios VoIP: Los servicios VoIP son muy comunes hoy en día, pero en las empresas de nuevo se pueden necesitar sistemas de autenticación. Como puede ser por extensión de teléfono.
Qué desventajas tiene un servidor RADIUS
Pese a que este tipo de servidor cuenta con múltiples ventajas y funciones que hemos visto, también tiene una serie de contras que deberemos tener en cuenta antes de configurar uno, que son, a modo resumen, las siguientes:
- Complejidad en su instalación: Configurar un servidor RADIUS requiere un conocimiento avanzado sobre redes, seguridad, y administración de sistemas. Si no tienes ningún tipo de experiencia, puede que te lleve más tiempo de lo normal, y necesites tutoriales como el de hoy para dejarlo en funcionamiento.
- Coste: Aunque existen implementaciones gratuitas de RADIUS (como la que estamos viendo hoy) los costos asociados al hardware, licencias de software (en versiones comerciales), y la gestión pueden llevar consigo un gasto, que hay que tener en cuenta, pese a que FreeRADIUS sea gratis en sí mismo.
- Dependencia de un servidor centralizado: El servidor RADIUS actúa como un punto central para la autenticación. Si el servidor se desconecta o falla, los usuarios no podrán autenticarse y acceder a la red. Si además usamos versiones gratuitas, esto puede pasar con mayor frecuencia y no podremos protestar por ello, ya que no es un servicio de pago.
- Latencia en redes grandes o remotas: En redes extensas, sobre todo si están alojadas en países o ubicaciones muy distantes, la latencia en la autentificación de cada usuario puede ser considerable, y en ocasiones, tediosa.
- Requiere mantenimiento continuo: Si queremos garantizar su seguridad y rendimiento, deberemos estar constantemente actualizándolo y vigilando posibles brechas y parches, lo que nos conllevará tiempo, y en ocasiones dinero.
Existen otras desventajas, sin embargo, a nivel general, estas son las más importantes a considerar. No tienen por qué serlo si sabemos lo que necesitamos, pero en caso de que sí lo sean, ya las conoceremos y podremos mitigarlas en la medida de lo posible.
¿Para qué me sirve montar un servidor RADIUS para el WiFi?
Cuando hablamos de redes WiFi, habitualmente hacemos uso de WPA2 o WPA3-Personal, donde utilizamos una misma contraseña para todos y cada uno de los dispositivos. Esta clave es precompartida, es decir, todos los clientes WiFi que se quieran conectar, deben conocerla. Este tipo de redes se suelen atacar por fuerza bruta o por diccionario, aunque lógicamente las redes WPA3 son más seguras y resisten mejor los diferentes ataques. Si montamos un servidor RADIUS, podremos configurar nuestro router WiFi o punto de acceso WiFi para usar autenticación WPA2/WPA3-Enterprise, donde no tendremos una clave precompartida para todos los usuarios, sino que cada usuario tendrá su propio nombre de usuario y contraseña para acceder a la red WiFi.
Un servidor RADIUS hace uso de una autoridad de certificación (CA), porque hay algunos protocolos de autenticación que hacen uso de una infraestructura de clave pública para la autenticación de los clientes, además, esto es muy importante porque todos los clientes deberían tener siempre el certificado de la CA para comprobar que efectivamente nos estamos conectando a una red WiFi legítima. Algunos ataques a las redes WiFi consisten en hacerse pasar por el punto de acceso legítimo, de esta forma, la víctima podría estar enviando sus credenciales a un ciberdelincuente. Por este motivo, es muy recomendable que no solo tengamos el usuario y clave de la red WiFi, sino que deberíamos usar este certificado de la CA para comprobar que la red WiFi a la que nos estamos conectando es legítima.
El esquema de funcionamiento de un servidor RADIUS, ubicado en un servidor NAS de QNAP o cualquier otro fabricante, sería el siguiente:
En nuestro caso, hemos instalado FreeRADIUS en el propio sistema operativo pfSense, y autenticaremos a los clientes inalámbricos que se conecten al AP directamente desde aquí. La configuración de los puntos de acceso es diferente con cada fabricante, pero lo único que deberemos tener en cuenta son tres parámetros:
- IP del servidor RADIUS, en este caso, el propio pfSense
- Puerto de escucha del servidor RADIUS, configurable, pero por defecto es el 1812.
- Clave de autenticación del punto de acceso con el servidor RADIUS.
El proceso de autenticación de un cliente WiFi con WPA2 o WPA3-Enterprise es el siguiente:
- Un cliente WiFi se conecta a la red WiFi a través de un punto de acceso. Se le pedirá que introduzca unas credenciales de usuario (usuario y clave), y también que cargue el certificado de la CA, para proteger frente a posibles ataques MitM.
- El punto de acceso WiFi enviará las credenciales al servidor RADIUS en pfSense, el cual hemos configurado previamente. Si las credenciales son válidas, se le permite conexión a Internet, si las credenciales no son válidas la autenticación fallará y nos dará un error en el cliente WiFi.
Por supuesto, en cuanto se le permita entrar a la red porque las credenciales son válidas, se le proporcionará una dirección IP por DHCP y accederá a todos los recursos de la red WiFi.
Una vez que ya conocemos un poco qué es un servidor RADIUS, y qué nos permite hacer FreeRADIUS, vamos a empezar con la configuración del servidor FreeRADIUS en pfSense.
Instalación de FreeRADIUS en pfSense
El software FreeRADIUS no se encuentra instalado por defecto en pfSense, para instalarlo deberemos irnos a la sección de «System / Package Manager», y buscar el software freeradius3 que tenemos en el listado de paquetes disponibles. Pinchamos en «Install» y confirmamos la acción, una vez que lo tengamos instalado y listo para empezar a funcionar, nos saldrá la típica barra en verde, indicando que todo ha funcionado correctamente.
En cuanto lo hayamos instalado, podremos ver que en la sección de «Services» lo tenemos disponible, para empezar a configurarlo:
Ahora llega la hora de configurarlo, para dar de alta a los usuarios y también a los diferentes puntos de acceso WiFi para que se autentiquen con el servidor RADIUS.
Opciones de configuración disponibles en pfSense
Si entramos en la configuración de «FreeRADIUS» en la sección de «Services», podremos ver la interfaz gráfica de usuario para configurar el servidor RADIUS en detalle. En este menú encontraremos diferentes pestañas para configurar diferentes aspectos:
- Users: configuraremos los usuarios que se autenticarán vía WiFi, podremos definir usuario/clave y muchos otros parámetros avanzados.
- MACs: podremos definir el comportamiento del RADIUS si encuentra una MAC en concreto, proporcionando la misma dirección IP, una determinada VLAN ID, limitar el ancho de banda, tiempo de expiración y otras configuraciones avanzadas.
- NAS/Clients: aquí es donde tendremos que configurar uno o varios puntos de acceso que se van a autenticar frente al servidor RADIUS. Si tenemos un total de 4 puntos de acceso WiFi profesionales que permiten WPA2/WPA3-Enterprise, aquí es donde tendremos que introducir su dirección IP y también la clave PSK.
- Interfaces: podremos definir la interfaz física o lógica donde el servidor RADIUS escuchará, y también definir el puerto de escucha, siempre usará protocolo UDP.
- Settings: podremos configurar opciones globales del servidor, incluyendo el registro de los diferentes usuarios y los logs completos del servidor.
- EAP: parámetros globales del protocolo de autenticación EAP, es recomendable deshabilitar los tipos EAP débiles que son susceptibles a ataques. Aquí es donde tendremos que cargar la CA para el TTLS y TLS.
- SQL y LDAP: permite la integración del software en una base de datos y también en el LDAP de la organización.
En la sección de «View config» podremos ver los diferentes archivos de texto con la configuración en bruto del servidor FreeRADIUS, si estás acostumbrado a configurarlo a través de editar el archivo de texto, entonces esto te permitirá revisar que la configuración está correcta. Por último, también podremos ver la configuración XMLRPC Sync, por si hacemos uso de esto.
Una vez que hemos visto las configuraciones que nos permite la interfaz gráfica de usuario, vamos a configurarlo en detalle.
Configuración del servidor FreeRADIUS en pfSense
Para configurar correctamente el servidor FreeRADIUS necesitaremos dar de alta los AP, dar de alta a los diferentes usuarios, configurar la interfaz de escucha del servidor, y, finalmente, configurar la autenticación EAP.
Configurar NAS/Clients
Lo primero que debemos hacer es dar de alta los diferentes AP para que se autentiquen correctamente con el servidor. Nos tenemos que ir a la sección de «NAS / Clients», para dar de alta los diferentes APs que van a usar el servidor RADIUS para autenticar a los usuarios inalámbricos. En la siguiente galería podéis ver todas las opciones disponibles que tenemos:
Tendremos que introducir la siguiente información:
- IP address: la dirección IP que tiene el propio punto de acceso profesional en la red, lo normal es que tengamos una subred de gestión donde estén todos estos equipos.
- Client IP version: IPv4 normalmente, pero también permite IPv6.
- Client Shortname: un identificador del punto de acceso que hemos dado de alta
- Client Shared Secret: la contraseña compartida, tanto el AP como este «NAS/Clients» debe tener exactamente la misma contraseña de autenticación. Permite hasta 31 caracteres.
Si estás en una organización donde tienes un controlador WiFi, y gestionas, por ejemplo, 4 puntos de acceso WiFi, deberás configurarlo de la siguiente forma:
- Dar de alta todos los APs con sus correspondientes IP privadas
- Poner en todos los APs dados de alta aquí, exactamente la misma contraseña.
- Poner en el controlador WiFi esta misma contraseña, y todos los APs se autenticarán frente al servidor RADIUS con esta contraseña.
El resto de opciones las podemos dejar por defecto:
En nuestro caso, hemos configurado un total de 4 puntos de acceso WiFi, todos ellos controlados por el controlador Nuclias Connect.
Una vez dados de alta, vamos a configurar la sección de «Interfaces» que es donde escuchará.
Configurar «Interfaces» donde va a escuchar
En la sección de Interfaces es donde podremos configurar la dirección IP de escucha del servidor, si ponemos * significa que escuchará en todas las interfaces. También deberemos indicar el puerto de escucha, el tipo de interfaz (autenticación, autorización etc), la versión IPv4 y una breve descripción.
En nuestro caso, nos interesa que únicamente escuche en la dirección IP de la red de gestión, en el resto de interfaces no nos interesa tener escuchando el servidor RADIUS.
Podremos añadir varias interfaces de manera manual, y no solamente una de ellas. En el menú principal de «Interfaces» podremos ver el resumen de la configuración.
Una vez que ya hemos definido esto, procedemos a configurar los usuarios para autenticarse.
Dar de alta a los diferentes usuarios para autenticarse
Para dar de alta a los diferentes usuarios, deberemos irnos a la sección de «Users». En este menú tendremos muchas opciones de configuración, pero si queremos realizar únicamente autenticación vía WiFi con WPA2/WPA3-Enterprise, deberemos rellenar esto:
- Username: el nombre de usuario, no es recomendable poner espacios.
- Password: la contraseña de acceso que tendrá este usuario.
- Password-Encryption: ponemos cleartext-password.
Otras opciones de configuración son la posibilidad de habilitar autenticación multifactor, definir una dirección URL de redirección después de autenticarse, proporcionarle una IP siempre, un VLAN ID en concreto, configurarle el ancho de banda máximo y el tráfico, y el tiempo de expiración de la sesión y otros parámetros avanzados.
Para las redes WiFi empresariales, basta con poner nombre de usuario y contraseña:
A continuación, en la sección de «Users» los veremos todos dados de alta, en cualquier momento podremos modificarles la configuración.
Crear una CA para asignárselo al servidor
Llegados a este punto, como vamos a autenticar a los clientes WiFi vía EAP-TTLS o PEAP, es necesario crear una nueva CA para el FreeRADIUS, para crearlo, simplemente tenemos que irnos a la sección de «System / Certificate Manager«, y crear una nueva CA interna, con RSA de 2048 o 4096 bits, con SHA256 y un tiempo de vida que nosotros queramos:
Una vez creado, nos aparecerá en el listado de CA, tal y como podéis ver aquí:
Hay algunos tipos de autenticación que necesitan hacer uso de certificados para el cliente, vamos a crear un certificado SSL adicional para el servidor FreeRADIUS, y otro para el cliente. Para hacerlo, deberemos irnos a la sección de «Certificates», y crear uno nuevo, tomando la autoridad de certificación creada anteriormente como CA, de esta forma, crearemos y firmaremos un certificado para servidor.
Una vez que tengamos creada la CA y el certificado del servidor (el del cliente sería opcional, hay algunos tipos de autenticación que no necesitan certificado SSL de cliente), procedemos a irnos a «Services / FreeRADIUS / EAP«, y modificaremos las siguientes opciones:
- Disable Weak EAP Type: habilitamos la opción para deshabilitar los protocolos no seguros.
- Default EAP Type: elegimos cualquiera de los seguros, recomendable hacer uso de TTLS o PEAP.
- Minimum TLS version: 1.2
En la sección de «Certificates for TLS«, tendremos que poner:
- SSL CA Certificate: la CA creada en la sección de gestión de certificados.
- SSL Server Certificate: el certificado del servidor que hemos creado a partir de la CA.
En la sección de «EAP-TLS» podemos dejarlo por defecto, nosotros no usaremos este tipo de autenticación, pero si la usas, tendrás que poner:
- Check Cert Issuer: habilitado
- CA Subject: ponemos la información del certificado CA creado, se tiene que corresponder.
- Check Client Certificate CN
En la sección de «EAP-TTLS» definimos las siguientes configuraciones:
- Default EAP Type: MSCHAPv2
En la sección de «EAP-PEAP» definimos las siguientes configuraciones:
- Default EAP Type: MSCHAPv2
En la siguiente galería podéis ver nuestra configuración actual:
Una vez terminado, pinchamos en «Save» y ya lo tendremos listo. Ahora nos iremos al punto de acceso o al controlador WiFi, y configuramos:
- SSID: nombre de red WiFi
- Seguridad: WPA2-Enterprise
- Encriptación: AES
- Primary RADIUS Server Settings: la IP del servidor RADIUS, la clave PSK configurada en los puntos de acceso en la sección de NAS/Clients, y el puerto utilizado.
Guardamos cambios, propagamos todos los cambios realizados en el controlador WiFi a todos los puntos de acceso WiFi, y ya tendremos configurado todo el sistema para empezar a autenticar a los clientes WiFi.
Conectar Windows 10 a la red WiFi con WPA2 o WPA3-Enterprise
Lo primero que tenemos que hacer para conectarnos con Windows 10, es exportar la clave pública de la CA en el pfSense, para hacer esto, simplemente nos tenemos que ir a la sección de «System / Certificate Manager» y pinchamos en «Export CA», no tenemos que exportar la «key», solamente «Export CA». Una vez exportada y que esté en nuestro PC, hacemos doble click en el certificado para instalarlo en nuestro sistema operativo Windows, en el almacén de certificados.
A continuación, buscamos la red WiFi a la que conectarnos, Windows 10 reconocerá automáticamente que nos intentamos conectar a una red WiFi empresarial, ponemos el nombre de usuario y contraseña, y Windows 10 nos preguntará si seguir conectado a la red, porque no tenemos en uso el certificado de la CA. Si pinchamos en «Mostrar detalles del certificado» podremos ver la huella digital de dicho certificado.
En estado de la red WiFi, podremos pinchar en «Propiedades inalámbricas», nos vamos a la sección de «Configuración» donde pone PEAP, y ponemos la siguiente cofniguración:
- Validar la identidad del servidor validando el certificado.
- Elegimos el certificado FreeRADIUS-CA que hemos exportado
También podremos configurar la política de notificación antes de conectar, e incluso el método de autenticación, que seleccionamos EAP-MSCHAPv2, como podéis ver aquí:
El resto de opciones de configuración podemos dejarlas por defecto.
Pinchamos en aceptar y nos saldremos, ahora ya podremos autenticarnos en la red WiFi WPA2-Enterprise con seguridad, ya que hemos cargado la CA correctamente para validar que efectivamente nos estamos conectando a un AP legítimo.
Conectar Android a la red WiFi con WPA2 o WPA3-Enterprise
En el caso de Android, también tendremos que instalar el certificado de la CA en el dispositivo móvil, pasamos este certificado al móvil por cualquier método (vía cable, WiFi, vía FTP etc), y con cualquier explorador de archivos lo instalamos en el sistema operativo como CA para WiFi.
Elegimos la red WiFi con WPA2-Enteprise a la que conectarnos, y configuramos todo de la siguiente forma:
- Método EAP: TTLS
- Autenticación fase 2: MSCHAPv2
- Certificado de CA: elegimos el certificado que hemos instalado
- Identidad: el nombre de usuario dado de alta en «Users»
- Contraseña: la contraseña asociada al nombre de usuario que hemos dado de alta en «Users».
Una vez hecho, el móvil se autenticará correctamente con el servidor RADIUS configurado, y tendremos conexión a Internet sin problemas.
Tal y como habéis visto, configurar un servidor RADIUS para la autenticación de clientes inalámbricos WiFi vía WPA2 o WPA3-Enterprise es mucho más complejo que poner la típica contraseña de acceso, pero también es mucho más seguro. Este tipo de autenticación es ampliamente utilizado en redes empresariales, universidades e incluso en ciertos hoteles.
Esperamos que este tutorial os haya servido de ayuda para configurar el FreeRADIUS en el sistema operativo pfSense para autenticar a los diferentes usuarios.