Configura un servidor FreeRADIUS para usar WPA2 y WPA3 Enterprise en WiFi

Configura un servidor FreeRADIUS para usar WPA2 y WPA3 Enterprise en WiFi

Sergio De Luz

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.

¿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.

¿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:

  1. 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.
  2. 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.