Instalar FreeRadius en Debian 11 + AP Ubiquiti

Hola chic@s hoy toca mi primer post de Linux, vamos a montar un servidor Radius en Debian usando FreeRadius y un AP de Ubiquiti como cliente del servidor RADIUS, los clientes finales (mac, pc, movil) se conectarán a la Wi-Fi con un usuario y contraseña.

Explicación de laboratorio

Ya tenemos montado:

  • Debian 11 con IP: 192.168.120.12
  • UAP-AC-PRO con la IP 192.168.120.51
  • La clave compartida es: LabsMac-FreeRadius2022
  • Vamos a usar PEAP para enviar la información (paquetes) entre las tres partes (Servidor, Cliente RADIUS y dispositivos finales). Esto significa que por cómo funciona PEAP, se necesita un certificado en el servidor pero no en los clientes finales! Para ello aprovecharemos el certificado autofirmado que viene instalado por defecto en Debian, dicho certificado se aloloja en:
/etc/ssl/certs/ssl-cert-snakeoil.pem > Clave pública
/etc/ssl/private/ssl-cert-snakeoil.key > Clave privada

Sin más rollos, empezamos!!!

Actualizar repositorios

Actualizamos los repositorios antes de hacer nada.

sudo apt update

Instalar FreeRadius

Instalamos Freeraadius sin ningún paquete adicional.

sudo apt install -y freeradius

Los distintos archivos de configuración de FreeRadius se almacenan en /etc/freeradius/3.0/

Agregar cliente NAS

Primero vamos a agregar nuestro NAS (Network Access Server), en este caso un AP de Unifi. Editamos el archivo clients.conf con el programa de que queramos.

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

Para agregar un cliente NAS, podemos ir al final del fichero e introducir lo siguiente:

client NombreIdentificativoNAS {
ipaddr = IP_Del_NAS
secret = SecretoCompartido
}

En mi caso, lo añado con los siguientes valores.

Agregar usuarios

Ahora nos toca decirle a FreeRadius que usuarios van a a ser autenticados y autorizados. FreeRadius puede usar usuarios de otros «sitios» como Active Directory, MySQL, LDAP, etc pero no quiero complicar este post, por eso vamos a empezar de la forma más simple, crear y utilizar los usuarios del fichero /etc/freeradius/3.0/users.

Editamos el fichero:

sudo nano /etc/freeradius/3.0/users

Agregamos los usuarios al final del archivo con el siguiene patrón. Esto puede variar dependiendo de las opciones que queramos, pero por hacerlo lo más simple posible, creamos los usuarios así:

usuario Cleartext-Password := "contraseña"

En mi caso he creado tres usuarios:

ashtreelane Cleartext-Password := "ashtreelane@2022"
labsmac Cleartext-Password := "labsmac@2022"
macos Cleartext-Password := "macos@2022"

Una vez guardado los cambios, reinciamos el servicio de freeradius de la siguiente manera:

sudo systemctl restart freeradius

Testear FreeRadius en modo depuración y radtest

FreeRadius tiene un modo depuración para resolver problemas y ver todo lo que «pasa por detrás».

¡Ten cuidado!

Ojo!, no puede estar corriendo el servicio de freeradius y el modo de depuración a la vez, por lo que tenemos que realizar los siguientes pasos:

1- Paramos el servicio de freeradius: sudo systemctl stop freeradius

2- Entramos en modo depuración: sudo freeradius -X

En el modo depuración es donde hacemos las pruebas, por ejemplo probar usuarios…

3- Una vez acabado con las pruebas, pulsamos control + C para detener dicho modo. Voy a contar algo que no sé si le pasa a los demás: Si cierro la ventana y no pulso control + C, los procesos de freeradius del modo depuración no se finalizan, por lo que si luego quiero arrancar el servicio de freeradius me arrojará un error.

Tendremos que matar los procesos y luego arrancar el servicio de Freeradius.

sudo kill -9 ProcesosDeFreeRadius
sudo systemctl start freeradius

Esto lo he tenido que comentar porque yo tardé un rato en averiguar esto y así les evito perder el tiempo…

Realizar pruebas

Ahora que ya sabemos como trabajar en modo depuración vamos a pasar a las pruebas. Ejecutamos el modo depuración en una ventana apartada. Abrimos una nueva ventana y ejecutamos el comando radtest para probar los usuarios y que freeradius funciona ok.

radtest NombreUsuario ContraseñaUsuario localhost 0 testing123
  • Donde localhost es el servidor local debian
  • 0 es el puerto del NAS local
  • testing123, es la clavesecreta del NAS local (fijate en el archivo clients.conf, todo esto aparece en dicho fichero)

Ejecutamos el comando dos veces, la primera con la contraseña erronea y la segunda con la verdadera. El resultado es que en la primera nos rechaza la solicitud y en la segunda nos acepta el servidor FreeRadius.

Aquí otra captura donde se ve el test de conexión del usuario y a su vez en la ventana de abajo FreeRadius ejecutado en modo depuración, donde vemos que recibe la solicitud del usuario ashtreelane.

Con esto hemos acabado las pruebas, nuesteo servidor FreeRadius funciona correctamente, ahora que tal si configuramos un NAS real (AP Ubiquiti), la parte del servidor ya está hecha ahora falta configurarlo en la parte de Ubiquiti.

Configurar cliente RADIUS (AP Ubiquiti)

Recordemos los datos:

IP Debian-FreeRadius: 192.168.120.12
IP AP-Ubiquiti: 192.168.120.51
Clave compartida: LabsMac-FreeRadius2022
Puerto Autentication: 1812
Puerto Accounting: 1813

Dentro del controlador de Unifi, vamos a: Ajustes > Perfiles > Radius > Crear nuevo perfil con los datos anteriores y aplicamos los cambios.

Ahora creamos la WIFI WPA2-Enterprise, vamos a Ajustes > Wi-Fi > Crear nueva Wi-Fi, le damos el nombre que queramos y clicamos en Configuración Manual.

En el apartado de seguridad elegimos WPA2-Enterprise o WPA3-Enterprise (si nuestro AP lo soporta), seleccionamos el perfil que creamos antes (FreeRadiusDebian) . Finalizamos clicando en Añadir Wifi

Conexión desde cliente final

Si todo se ha configurado correctamente, vamos a conectarnos desde los dispositivos finales para ver dicha conexión. Da igual desde donde (iOS, Android, Windows, Mac, etc.) nos conectemos que siempre nos va a aparecer la ventana de ¿Estas seguro de querer confiar en este certificado autofirmado? Aceptamos

Ya estamos conectados!

He activado el modo depuración para ver los datos que envia el cliente Radius (AP Ubiquiti) al Servidor Radius.

Otros post relacionados con RADIUS

Espero que les haya gustado!! A mi me ha encantado hacer este post, he aprendido muchas cosas, quiero hacer un post sobre RADIUS y profundizar en FreeRadius haciendo distintos laboratorios pero poco a poco chicos!! Nos vemos en el próximo artículo

2 comentarios en «Instalar FreeRadius en Debian 11 + AP Ubiquiti»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.