NPS: MAC Authentication Bypass (MAB) sin mensajes RADIUS — solución paso a paso, call flow y diagnóstico

¿Tu AP o switch no envía nada a NPS cuando quieres autenticar por MAC y en Wireshark no ves ni un solo Access-Request? Aquí tienes la guía completa para activar MAC Authentication Bypass (MAB) con NPS, entender el flujo RADIUS y diagnosticar cualquier escollo hasta dejarlo funcionando.

Índice

Qué está pasando y por qué no ves RADIUS

En la autenticación basada en MAC, el cliente no ejecuta 802.1X ni envía usuario/contraseña. Por defecto, muchos NAS (AP/switch) no inician RADIUS si no detectan 802.1X. Por eso, en tu captura entre NAS ↔ NPS no aparecen tramas RADIUS: el NAS ni siquiera las genera.

La solución pasa por dos frentes:

  • Habilitar en el NAS un modo que fuerce la consulta RADIUS usando la MAC del cliente como identidad (MAB, MAC filtering RADIUS, etc.).
  • Configurar NPS para aceptar esa identidad basada en MAC, indicándole qué atributo RADIUS representa al “usuario”. En NPS se habilita con el valor de registro User Identity Attribute = 31 (Calling-Station-Id).

Requisitos previos

  • NPS instalado y agregado a tu dominio (o con conectividad y permisos para consultar AD).
  • El NAS (AP/switch/controladora) registrado como cliente RADIUS en NPS con su secreto compartido.
  • Conectividad UDP entre NAS y NPS en puertos 1812/1813 (o 1645/1646 según el fabricante) permitida en firewalls.
  • Hora sincronizada (NTP) para evitar rechazos por marcas de tiempo y facilitar la correlación de logs.

Pasos para dejarlo funcionando

Cuentas en Active Directory para cada MAC

Crea un usuario por dispositivo. Lo habitual es usar la MAC en formato simple como nombre de cuenta, por ejemplo 001122334455. Para entornos MAB básicos muchos administradores igualan usuario y contraseña a la propia MAC (ver advertencia de seguridad más abajo).

# PowerShell (ejemplo)
OU y grupo opcional para dispositivos MAB
New-ADOrganizationalUnit -Name "OU-MAB" -Path "DC=contoso,DC=com" -ProtectedFromAccidentalDeletion $true

New-ADGroup -Name "MAC Bypass" -GroupScope Global -Path "OU=OU-MAB,DC=contoso,DC=com"

Crear una cuenta por dispositivo

\$mac = "001122334455"
New-ADUser `  -Name $mac`
-SamAccountName \$mac `  -AccountPassword (ConvertTo-SecureString $mac -AsPlainText -Force)`
-Enabled \$true `  -PasswordNeverExpires $true`
-Path "OU=OU-MAB,DC=contoso,DC=com"

Add-ADGroupMember -Identity "MAC Bypass" -Members \$mac 

Sugerencias:

  • Mantén consistencia en el formato de la MAC (sin separadores o con “:”/“-”) y el mismo formato que enviará el NAS.
  • Valora una contraseña distinta a la MAC si tu NAS lo permite (mejora mínima, pero algo suma).

Habilitar el atributo de identidad en NPS

NPS, por defecto, toma el User-Name como identidad del usuario. Para MAB, suele ser preferible que la identidad sea la MAC real del cliente que envía el NAS en Calling-Station-Id. Esto se logra con una clave de registro:

RutaNombreTipoValorSignificado
HKLM\SYSTEM\CurrentControlSet\Services\RemoteAccess\PolicyUser Identity AttributeREG_DWORD31 (decimal)Usar Calling-Station-Id como identidad
rem CMD (administrador)
reg add "HKLM\SYSTEM\CurrentControlSet\Services\RemoteAccess\Policy" ^
  /v "User Identity Attribute" /t REG_DWORD /d 31 /f

rem Reinicia el servicio NPS (nombre de servicio: IAS)
net stop ias && net start ias 

Importante: reinicia NPS tras aplicar el cambio para que tome efecto.

Política en NPS para MAB

Necesitas una Connection Request Policy y una Network Policy que identifiquen el tráfico del NAS y validen a los “usuarios” MAB. Reglas recomendadas:

  • Condiciones: limita por NAS-IP-Address, NAS-Identifier, SSID (en Called-Station-Id) o pertenencia al grupo “MAC Bypass”.
  • Método de autenticación: habilita PAP (sin cifrar) únicamente para esta política. No bastan EAP/MS-CHAP en MAB.
  • Autorización: opcionalmente devuelve VLAN/ACL (RADIUS atributos Tunnel-* o Filter-Id).

Atributos de autorización típicos que NPS puede devolver:

AtributoValor de ejemploUso
Tunnel-TypeVLANIndica que se trata de asignación de VLAN
Tunnel-Medium-Type802Medio IEEE 802
Tunnel-Pvt-Group-ID20ID de VLAN a asignar
Filter-IdACL-IoTACL/Perfil (según fabricante NAS)

Habilitar MAB en el equipo de acceso

En el NAS activa la función que fuerza autenticación por MAC cuando el cliente no hace 802.1X. Suele llamarse MAC Authentication Bypass, RADIUS MAC Authentication o simplemente MAC filtering (RADIUS). Ajustes comunes:

  • Formato de la identidad: User-Name igual a la MAC (001122334455, 00:11:22:33:44:55 o 00-11-22-33-44-55).
  • Algunos NAS envían también User-Password con la misma MAC si usas PAP.
  • Confirma secreto compartido, IP del NPS y puertos RADIUS.

Verificación con Wireshark

Reintenta la conexión del cliente. En la captura entre NAS ↔ NPS deberías ver:

  • Access-Request con User-Name y Calling-Station-Id igual a la MAC del cliente.
  • Access-Accept o Access-Reject desde NPS.

Filtros útiles:

ObjetivoFiltro Wireshark
Ver solo RADIUSradius
Puertos estándarudp.port == 1812 or udp.port == 1813
Tráfico con MAC concretaradius.Calling-Station-Id contains 00:11:22:33:44:55

Flujo de llamada de MAC Bypass con NPS

Este es el “call flow” típico cuando el cliente no hace 802.1X y el NAS tiene MAB activo:

  1. Asociación a la red: el cliente se asocia al SSID (o se conecta al puerto físico). No presenta EAP/802.1X.
  2. MAB en el NAS: el NAS envía RADIUS Access-Request (PAP) usando la MAC como identidad. Atributos frecuentes:
    • User-Name = 001122334455 (formato depende del NAS).
    • User-Password = 001122334455 (si el NAS lo envía para PAP).
    • NAS-IP-Address, NAS-Identifier, NAS-Port-Type (Wireless/Ethernet), Called-Station-Id (BSSID:SSID), Calling-Station-Id (MAC del cliente), Service-Type = Framed.
  3. Recepción en NPS: con User Identity Attribute = 31, NPS toma Calling-Station-Id como identidad de la cuenta a consultar en AD.
  4. Validación en AD: NPS busca el usuario correspondiente (o valida por grupo/condiciones).
  5. Respuesta de NPS:
    • Access-Accept: puede incluir VLAN/ACL vía atributos Tunnel-* o Filter-Id.
    • Access-Reject: si la cuenta no existe, está deshabilitada, no coincide formato, etc.
  6. Aplicación en el NAS: el NAS coloca al cliente en la VLAN/ACL recibida o deniega acceso.
  7. Contabilidad (opcional): Accounting-Start/Stop si lo configuraste.

Diagrama de secuencia simplificado

Cliente        NAS/AP/Switch                     NPS                         AD
   |   Asocia SSID/Enlaza puerto  |               |                          |
   |------------------------------>|               |                          |
   |                               | Access-Request (User-Name=MAC,           |
   |                               |  Calling-Station-Id=MAC, PAP) ---------> |
   |                               |               |  Evalúa políticas        |
   |                               |               |  Identidad: Calling-...  |
   |                               |               |  Consulta cuenta ------> |
   |                               |               |                          |
   |                               |               | <------ Respuesta AD     |
   |                               | <----------- Access-Accept/Reject        |
   |    VLAN/ACL aplicada          |               |                          |

Diagnóstico paso a paso

Dónde y cómo capturar

  • Captura en el enlace entre NAS y NPS (por ejemplo, en el NPS con Microsoft Message Analyzer o Wireshark, o en un puerto SPAN del switch).
  • Verifica UDP 1812/1813 abiertos en Windows Firewall del NPS y en cualquier firewall intermedio.

Qué buscar en NPS

  • Visor de eventos de NPS: eventos de autenticación aceptada o rechazada. Úsalos para entender por qué falló (formato de MAC, credenciales inválidas, políticas no coinciden).
  • Comprueba que el NAS esté dado de alta como Cliente RADIUS con la IP correcta y el secreto adecuado.
  • En la Network Policy de MAB, confirma:
    • Constraints: PAP habilitado.
    • Conditions: coincide grupo “MAC Bypass”, SSID, NAS, etc.
    • Settings: atributos de VLAN/ACL si aplican.

Errores comunes y cómo corregirlos

SíntomaCausa probableCorrección
No hay paquetes RADIUSMAB no habilitado en el NAS; firewall bloqueando puertosActiva MAB; abre UDP 1812/1813; confirma IP/secret del NPS
Access-Reject constanteFormato de MAC no coincide con la cuenta AD; cuenta deshabilitadaAlinea formato (sin “:”, con “-”, mayúsculas/minúsculas); habilita la cuenta
NPS no encuentra usuarioIdentidad tomada de User-Name en lugar de Calling-Station-IdAgrega User Identity Attribute = 31 y reinicia NPS
Acceso concedido sin VLAN/ACLFaltan atributos Tunnel-* o NAS no soporta Filter-IdDevuelve Tunnel-Type/Medium/Pvt-Group-ID o usa el atributo que soporte tu NAS
NPS ignora la política de MABOrden de políticas o condiciones demasiado restrictivasSube la prioridad de la política MAB; revisa condiciones

Ejemplos rápidos por fabricante

Los nombres exactos de menús/comandos varían por versión, pero la lógica es idéntica: activar MAB, definir formato de MAC y apuntar a NPS.

Cisco IOS/IOS-XE (puerto con 802.1X y MAB)

aaa new-model
radius server NPS
 address ipv4 10.10.10.10 auth-port 1812 acct-port 1813
 key <secreto>

aaa authentication dot1x default group radius
aaa authorization network default group radius
aaa accounting network default start-stop group radius

interface GigabitEthernet1/0/10
switchport mode access
authentication order mab dot1x
authentication priority mab dot1x
authentication port-control auto
mab
dot1x pae authenticator 

Aruba/HP (ejemplo genérico)

radius-server host 10.10.10.10 key &lt;secreto&gt;
aaa port-access mac-based 1/10
aaa port-access mac-based 1/10 addr-format no-delimiter
aaa port-access mac-based 1/10 auth-vid 20

Ruckus (WLAN con MAC auth vía RADIUS)

# En la WLAN: habilitar MAC Authentication con RADIUS externo,
configurar servidor RADIUS, secreto y formato de MAC (sin separadores).

UniFi / Ubiquiti (nota general)

# En Controlador: habilitar "MAC Authentication" para la WLAN,
apuntar al servidor RADIUS (NPS), secreto, puertos, y definir formato
de MAC tal como espera NPS o como hayas creado las cuentas en AD.

Buenas prácticas de seguridad

  • MAB no es fuerte: la MAC es fácil de suplantar. Úsalo para IoT/legacy y ponlos en VLAN restringida.
  • Desactiva la aleatorización de MAC en SSID corporativos (MDM o políticas de equipo).
  • Segmenta con VLAN/ACL estrictas (DNS/HTTP/NTPS/telemetría mínima) y listas de control por IP/puerto.
  • Registra intentos fallidos y correlación con inventario para detectar MACs no autorizadas.
  • Si puedes, migra a 802.1X (PEAP/EAP-TLS) para endpoints gestionados.

Pruebas recomendadas

  1. Comprueba conectividad NAS ↔ NPS en UDP 1812/1813.
  2. En NPS, exporta las políticas antes del cambio (por si necesitas rollback).
  3. Crea una cuenta AD de prueba con la MAC de un equipo controlado.
  4. Activa MAB en un puerto o SSID de laboratorio.
  5. Inicia captura en el NPS y reproduce la conexión.
  6. Confirma Access-Request con User-Name y Calling-Station-Id correctos.
  7. Revisa el evento de NPS y la VLAN/ACL aplicadas.

Scripts útiles

Crear cuentas MAB desde un CSV

CSV de entrada mab.csv con cabecera mac y filas tipo 001122334455.

Import-Csv .\mab.csv | ForEach-Object {
  $mac = $_.mac.Trim()
  if (-not (Get-ADUser -Filter "SamAccountName -eq '$mac'" -ErrorAction SilentlyContinue)) {
    New-ADUser -Name $mac -SamAccountName $mac `
      -AccountPassword (ConvertTo-SecureString $mac -AsPlainText -Force) `
      -Enabled $true -PasswordNeverExpires $true `
      -Path "OU=OU-MAB,DC=contoso,DC=com"
    Add-ADGroupMember -Identity "MAC Bypass" -Members $mac
    Write-Host "Creado $mac"
  } else {
    Write-Host "Existe $mac"
  }
}

Aplicar el registro de identidad y reiniciar NPS

reg add "HKLM\SYSTEM\CurrentControlSet\Services\RemoteAccess\Policy" /v "User Identity Attribute" /t REG_DWORD /d 31 /f
sc stop ias
sc start ias

Formato de MAC y consistencia

El formato debe coincidir a ambos lados. Tres variantes habituales:

FormatoEjemploNotas
Sin separadores001122334455Simple y popular para cuentas AD
Con dos puntos00:11:22:33:44:55Frecuente en WiFi
Con guiones00-11-22-33-44-55Común en switches

Decide un estándar y aplícalo: formato de cuenta AD, formato que envía el NAS (User-Name) y lo que NPS usará como identidad (con Calling-Station-Id o con User-Name si no usas el registro).

Políticas NPS: plantilla sugerida

Connection Request Policy

  • Conditions: NAS-IP-Address = IP del AP/switch o Client Friendly Name = etiqueta del cliente RADIUS.
  • Settings: Authentication = Authenticate requests on this server.

Network Policy para MAB

  • Conditions:
    • Windows Groups: “MAC Bypass”.
    • Opcional: Called-Station-Id contiene “SSID-IoT”.
  • Constraints:
    • Permite Unencrypted authentication (PAP, SPAP).
    • Desactiva EAP/MS-CHAP para esta política si no los necesitas.
  • Settings:
    • Si asignas VLAN: añade Tunnel-Type=VLAN, Tunnel-Medium-Type=802, Tunnel-Pvt-Group-ID=20.
    • Si tu NAS usa Filter-Id: devuelve el nombre del perfil/ACL.

Checklist de puesta en producción

  • El NAS tiene MAB activado y apunta al NPS correcto con secreto válido.
  • Puertos UDP RADIUS abiertos bidireccionalmente.
  • En NPS, registro User Identity Attribute = 31 aplicado y servicio reiniciado.
  • Política MAB con PAP habilitado, condiciones precisas y atributos de autorización configurados.
  • Cuentas AD creadas y, si procede, añadidas al grupo “MAC Bypass”.
  • Formato de MAC consistente entre NAS, AD y NPS.
  • Pruebas de captura verificadas con Access-Request y Access-Accept/Reject.
  • Segmentación y logging habilitados.

FAQ operativas

¿Puedo usar el User-Name en lugar de Calling-Station-Id?
Sí. Si el NAS envía la MAC como User-Name y creas las cuentas con ese mismo formato, podrías omitir el registro. Usar Calling-Station-Id con valor 31 estandariza la identidad a la MAC real del cliente, independientemente de cómo el NAS rellene User-Name.

¿Es obligatorio PAP?
Para MAB con NPS, sí: necesitas permitir PAP en la Network Policy específica de MAB. Mantén EAP u otros métodos en políticas separadas para 802.1X.

¿Qué pasa con la aleatorización de MAC en móviles?
En SSID corporativos, desactívala mediante MDM/perfil WiFi. Si no, el dispositivo puede ir cambiando de “identidad” y tu control basado en MAC se vuelve inútil.

¿Cómo asigno diferentes VLAN por tipo de dispositivo?
Crea varias políticas MAB en NPS con condiciones que distingan por grupo AD, SSID o NAS-Port-Type y devuelve distintos atributos Tunnel-*.

¿Y si quiero bloquear todo salvo DHCP/DNS/HTTP hacia un proxy?
Devuelve Filter-Id con un perfil/ACL en tu NAS (si lo soporta) o usa VLAN aislada con listas de acceso en el switch/controladora.

Resumen de la solución aplicada

El problema de “no veo RADIUS” se debía a que el NAS no iniciaba autenticación al no haber 802.1X. Se habilitó MAB en el equipo de acceso y, en NPS, se configuró User Identity Attribute = 31 para usar Calling-Station-Id como identidad, junto a una política con PAP y, opcionalmente, atributos Tunnel-*/Filter-Id. Tras reiniciar NPS y alinear el formato de MAC, comenzó a verse el Access-RequestAccess-Accept/Reject en Wireshark y la autenticación basada en MAC quedó operativa.

Plantilla de cambio segura

  • Prechequeo: copia de seguridad de políticas NPS; ventana de mantenimiento; línea de vida (consola en un puerto fuera del cambio).
  • Implementación:
    1. Añadir clave de registro y reiniciar servicio NPS.
    2. Crear/ajustar políticas de MAB (PAP, condiciones, atributos).
    3. Registrar NAS como cliente RADIUS (si no existía).
    4. Activar MAB en SSID/puerto de prueba.
  • Validación: capturas RADIUS, evento de NPS, conectividad desde VLAN asignada.
  • Rollback: revertir registro, desactivar MAB o volver a políticas previas (importación de backup).

Glosario mínimo

  • NAS: Network Access Server (AP, switch, controladora).
  • MAB: Autenticación por MAC con consulta RADIUS.
  • NPS: Network Policy Server de Windows.
  • Calling-Station-Id: atributo con la MAC del cliente.
  • Called-Station-Id: BSSID:SSID (WiFi) o identificador del puerto.
  • PAP: método de autenticación sin cifrado en RADIUS (útil para MAB).

Conclusión: Si no ves RADIUS en Wireshark durante una prueba de MAB, el 99% de las veces es porque el NAS no está enviando nada. Activa MAB en el NAS, configura NPS para usar la MAC como identidad con User Identity Attribute = 31, permite PAP en una política específica y devuelve la segmentación adecuada. Con eso, obtendrás el flujo completo Access-Request/Accept en segundos y una base sólida para controlar tus dispositivos IoT/legacy.

Índice