Implementación de Autenticación EAP-PEAP con FreeRADIUS en Ubuntu

Preparación del Sistema Ubuntu

Herramienta de Edición: Vim

Vim es un editor de texto modal potente y ligero, ideal para administración de servidores. Aunque presenta curva de aprendizaje inicial, su eficiencia en entornos remotos lo hace indispensable.

  • Modos de operación claros: normal, inserción y comando
  • Navegación mediante atajos de teclado optimizada
  • Disponible por defecto en la mayoría de distribuciones Linux

Configuración de Red y Seguridad

Para el entorno de pruebas, configure la interfaz de red del hipervisor en modo puente (bridge). Desactive temporalmente el cortafuegos para evitar interferencias:

sudo systemctl stop ufw
sudo systemctl disable ufw

Despliegue del Servidor FreeRADIUS

Instalación de Paquetes

Actualice los repositorios e instale el servidor RADIUS junto con utilidades de diagnóstico:

sudo apt update && sudo apt upgrade -y
sudo apt install freeradius freeradius-utils freeradius-common -y

Definición de Clientes Autorizados

Modifique el archivo de clientes para permitir solicitudes desde la infraestructura de red. Suponiendo que el gateway residencial opera en 10.0.0.0/24:

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

Añada la siguiente definición:

client red_local {
    ipaddr = 10.0.0.0/24
    secret = claveSegura2024
    require_message_authenticator = no
    nas_type = other
}

Creación de Cuentas de Acceso

Establezca credenciales para pruebas en el archivo de autorización:

sudo vim /etc/freeradius/3.0/mods-config/files/authorize

Inserte al final del documento:

demo_acct Cleartext-Password := "DemoPass123!"
    Auth-Type := Local,
    Service-Type = Framed-User,
    Framed-Protocol = PPP,
    Framed-MTU = 1400

Generación de Infraestructura de Claves

Creación de Certificados X.509

Construya la jerarquía de certificados necesaria para el túnel TLS:

# Directorio de trabajo temporal
mkdir ~/radius_certs && cd ~/radius_certs

# Autoridad Certificada raíz
openssl genrsa -out raiz.key 4096
openssl req -x509 -new -nodes -key raiz.key -sha256 -days 3650 \
    -out raiz.crt -subj "/C=ES/ST=Madrid/L=Madrid/O=LabSeguro/OU=Infra/CN=AC-RADIUS"

# Par de claves del servidor
openssl genrsa -out serv_radius.key 2048
openssl req -new -key serv_radius.key -out serv_radius.csr \
    -subj "/C=ES/ST=Madrid/L=Madrid/O=LabSeguro/OU=Sistemas/CN=radius.lab.local"

# Firma del certificado servidor
openssl x509 -req -in serv_radius.csr -CA raiz.crt -CAkey raiz.key \
    -CAcreateserial -out serv_radius.crt -days 1825 -sha256

# Concatenación para uso de FreeRADIUS
cat serv_radius.crt serv_radius.key > serv_radius.bundle.pem
cp raiz.crt cadena_confianza.pem

Despliegue de Certificados

Localice el dircetorio de certificados de su instalación:

sudo find /etc -path "*freeradius*" -name "certs" -type d 2>/dev/null

Copie los archivos generados:

RADIUS_CERT_PATH="/etc/freeradius/3.0/certs"
sudo cp serv_radius.bundle.pem cadena_confianza.pem $RADIUS_CERT_PATH/
sudo chown -R freerad:freerad $RADIUS_CERT_PATH
sudo chmod 640 $RADIUS_CERT_PATH/*.pem

Configuración del Módulo EAP

Activación de PEAP

Edite el módulo de autenticación extensible:

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

Dentro de la sección tls-config tls-common, ajuste:

tls-config tls-common {
    private_key_password = 
    private_key_file = ${certdir}/serv_radius.bundle.pem
    certificate_file = ${certdir}/serv_radius.bundle.pem
    ca_file = ${certdir}/cadena_confianza.pem
    dh_file = ${certdir}/dh
    random_file = /dev/urandom
    
    cipher_list = "DEFAULT"
    ecdh_curve = "prime256v1"
}

Verifique la directiva principal:

default_eap_type = peap

Verificación y Puesta en Marcha

Inicio del Servicio

sudo systemctl enable freeradius
sudo systemctl restart freeradius
sudo systemctl is-active freeradius

Diagnóstico en Tiempo Real

Para depuración, ejecute en terminal independiente:

sudo freeradius -Xxx | tee /tmp/radius_debug.log

Prueba de Autenticación

Desde otra consola, valide las credenciales:

radtest demo_acct DemoPass123! 127.0.0.1 18120 claveSegura2024

Respuesta esperada: Access-Accept con atributos asignados.

Integración con Equipos de Red

Para completar la implementación, configure su punto de acceso inalámbrico:

Parámetro Valor
Modo de seguridad WPA2-Enterprise / WPA3-Enterprise
Método EAP PEAP (MSCHAPv2)
Servidor RADIUS Dirección IP del host Ubuntu
Puerto de autenticación 1812
Secreto compartido claveSegura2024

Aplique los cambios y verifique la conectividad 802.1X desde un cliente inalámbrico.

Etiquetas: FreeRADIUS EAP-PEAP 802.1X WPA2-Enterprise OpenSSL

Publicado el 10-9 23:18