ForgeNEX

Segmentación Dinámica de Redes Corporativas con 802.1x y RADIUS: Arquitecturas Zero Trust

Descubre cómo implementar segmentación de red dinámica y basada en identidad utilizando el estándar IEEE 802.1x, RADIUS y políticas Zero Trust.

Arquitectura de Control de Acceso Basado en Identidad

La segmentación tradicional de redes corporativas basada puramente en VLANs estáticas o listas de control de acceso (ACLs) por subred IP ha quedado obsoleta en entornos donde la movilidad y la aproximación Zero Trust son imperativas. El estándar IEEE 802.1x, operando en la capa de enlace de datos (Capa 2), en conjunción con servidores RADIUS (Remote Authentication Dial-In User Service), permite una asignación dinámica de red en función de la identidad del usuario, el estado del dispositivo y las políticas corporativas.

Componentes de la Triada 802.1x

El flujo de autenticación 802.1x consta de tres entidades criptográficamente vinculadas:

  1. Supplicant (Cliente): El dispositivo o software en el endpoint que solicita acceso (ej. wpa_supplicant o el cliente nativo de Windows).
  2. Authenticator (Switch/AP): El dispositivo de red que encapsula las tramas EAP (Extensible Authentication Protocol) en RADIUS y actúa como guardián del puerto o SSID.
  3. Authentication Server (RADIUS): El motor de políticas (ej. FreeRADIUS, Cisco ISE, Aruba ClearPass) que valida las credenciales frente a un directorio (LDAP/Active Directory) y devuelve los atributos de autorización.

Nota Importante: La seguridad del canal EAP es crítica. Protocolos como EAP-TLS (basado en certificados mutuos) o PEAP-MSCHAPv2 (túnel TLS protegiendo credenciales) son mandatorios para evitar ataques de intermediario (MitM). El uso de protocolos heredados como EAP-MD5 está estrictamente desaconsejado en entornos de producción B2B.

Implementación de Asignación Dinámica de VLANs

La verdadera potencia de esta arquitectura de red definida por identidad (Identity-Driven Networking) radica en la autorización post-autenticación. Una vez autenticado el Supplicant, el servidor RADIUS inyecta atributos específicos de la IETF en el paquete Access-Accept hacia el Authenticator. Esto permite reconfigurar el puerto de acceso o la sesión inalámbrica en tiempo real.

Configuración del Servidor RADIUS (FreeRADIUS)

Para lograr una asignación dinámica de VLAN, el servidor RADIUS debe enviar tres atributos clave. A continuación, se muestra un fragmento de configuración para FreeRADIUS (/etc/freeradius/3.0/users), donde se asigna a los ingenieros a la VLAN 40, aplicando además un filtro de capa 3:

# /etc/freeradius/3.0/users
"ingeniero_devops" Cleartext-Password := "S3cur3P@ssw0rd!"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = "40",
    Filter-Id = "ACL-DEVOPS-RESTRICTED"

El atributo Tunnel-Private-Group-Id le indica al switch que debe etiquetar el tráfico no etiquetado de ese puerto hacia la VLAN 40, aislando efectivamente al dispositivo en su micro-segmento correspondiente.

Configuración del Switch (Authenticator)

En el lado del acceso, el switch debe estar preparado para procesar EAPoL (EAP over LAN) y aplicar las políticas dictadas por RADIUS. Un ejemplo de configuración para un switch enterprise basado en Cisco IOS-XE sería:

# Configuración global AAA
aaa new-model
aaa authentication dot1x default group radius
aaa authorization network default group radius
radius server ISE-PRIMARY
 address ipv4 10.0.0.10 auth-port 1812 acct-port 1813
 key c1sc0s3cr3t!

# Configuración de puerto de acceso físico
interface GigabitEthernet1/0/1
 switchport mode access
 authentication host-mode multi-auth
 authentication order dot1x mab
 authentication priority dot1x mab
 authentication port-control auto
 dot1x pae authenticator
 spanning-tree portfast edge

Automatización y Pruebas con EAPoL

En operaciones Day 2, validar la correcta segmentación y el flujo EAP es fundamental para los equipos de NetOps y SecOps. Podemos utilizar herramientas CLI como eapol_test (parte del paquete wpa_supplicant en distribuciones Linux) para inyectar tramas de autenticación y evaluar las respuestas RADIUS.

Aquí tienes un script de configuración para eapol_test probando un flujo PEAP-MSCHAPv2:

# peap-test.conf
network={
        ssid="CORP-WIFI"
        key_mgmt=WPA-EAP
        eap=PEAP
        identity="ingeniero_devops"
        password="S3cur3P@ssw0rd!"
        phase2="auth=MSCHAPV2"
        ca_cert="/etc/ssl/certs/corp-ca.pem"
}

Ejecución del test simulando un Supplicant directamente contra el servidor AAA:

# Ejecutar test de autenticación eapol contra el servidor RADIUS
eapol_test -c peap-test.conf -a 10.0.0.10 -s c1sc0s3cr3t!

Si la autenticación es exitosa, el output mostrará el paquete Access-Accept final junto con los atributos RADIUS inyectados (como el Tunnel-Private-Group-Id), validando que la lógica de segmentación basada en identidad y Zero Trust funciona correctamente antes de implementarla a gran escala en la capa de acceso.

Sigue leyendo