
Vamos a practicar el uso de Windows Active Directory + NPS (2 servidores para garantizar la alta disponibilidad) + el estándar 802.1x para el control de acceso y la autenticación de usuarios: computadoras de dominio y dispositivos. Puedes encontrar la teoría sobre el estándar en Wikipedia, en el siguiente enlace:
Dado que mi "laboratorio" tiene recursos limitados, combinamos las funciones de NPS y controlador de dominio, pero te recomiendo que dividas estos servicios críticos.
No conozco formas estándar de sincronización de configuraciones (políticas) de Windows NPS, por lo que utilizaremos scripts de PowerShell, ejecutados por el programador de tareas (el autor es un antiguo colega mío). Para la autenticación de las computadoras del dominio y para dispositivos que no son compatibles con 802.1x (teléfonos, impresoras, etc.), se configurará una política de grupo y se crearán grupos de seguridad.
Al final del artículo, hablaré sobre algunos matices del funcionamiento de 802.1x: cómo se pueden usar switches no gestionados, ACL dinámicos, etc. Compartiré información sobre los "errores" que encontré...
Comencemos con la instalación y configuración de NPS de failover en Windows Server 2012R2 (en 2016 es similar): a través del Administrador del Servidor -> Asistente para Agregar Roles y Características, seleccionamos solo el Servidor de Políticas de Red.

o mediante PowerShell:
Install-WindowsFeature NPAS -IncludeManagementToolsUna pequeña aclaración: dado que para Protected EAP (PEAP) necesitarás un certificado que valide la autenticidad del servidor (con los derechos correspondientes para su uso), el cual debe estar en los equipos clientes de confianza, por lo que probablemente también necesitarás instalar el rol Certification Authority. Pero consideremos que CA ya está instalado...
Haremos lo mismo en el segundo servidor. Crearemos una carpeta para el script C:Scripts en ambos servidores y una carpeta de red en el segundo servidor SRV2NPS-config$
En el primer servidor, crearemos el script de PowerShell C:ScriptsExport-NPS-config.ps1 con el siguiente contenido:
Export-NpsConfiguration -Path "SRV2NPS-config$NPS.xml"Después de esto, configuraremos la tarea en el Programador de tareas: “Export-NpsConfiguration”
powershell -executionpolicy unrestricted -f "C:ScriptsExport-NPS-config.ps1" Ejecutar para todos los usuarios — Ejecutar con los más altos privilegios
Diariamente — Repetir la tarea cada 10 minutos durante 8 horas.
En el NPS de reserva, configuraremos la importación de la configuración (políticas):
crearemos el script de PowerShell:
echo Import-NpsConfiguration -Path "c:NPS-configNPS.xml" >> C:ScriptsImport-NPS-config.ps1y la tarea para ejecutarlo cada 10 minutos:
powershell -executionpolicy unrestricted -f "C:ScriptsImport-NPS-config.ps1" Ejecutar para todos los usuarios — Ejecutar con los más altos privilegios
Diariamente — Repetir la tarea cada 10 minutos durante 8 horas.
Ahora, para la verificación, añadiremos en NPS en uno de los servidores (!) un par de interruptores a los clientes RADIUS (IP y Shared Secret), dos políticas de solicitudes de conexión: WIRED-Connect (Condición: “Tipo de puerto NAS – Ethernet”) y WiFi-Enterprise (Condición: “Tipo de puerto NAS – IEEE 802.11”), así como la política de red Access Cisco Network Devices (Administradores de red):
Condiciones:
Grupos de Windows - domainsg-network-admins
Restricciones:
Métodos de autenticación - Autenticación en texto sin formato (PAP, SPAP)
Parámetros:
Atributos RADIUS: Estándar - Service-Type - Login
Dependientes del proveedor - Cisco-AV-Pair - Cisco - shell:priv-lvl=15Desde el lado de los interruptores, las siguientes configuraciones:
aaa new-model
aaa local authentication attempts max-fail 5
!
!
aaa group server radius NPS
server-private 192.168.38.151 auth-port 1812 acct-port 1813 key %shared_secret%
server-private 192.168.10.151 auth-port 1812 acct-port 1813 key %shared_secret%
!
aaa authentication login default group NPS local
aaa authentication dot1x default group NPS
aaa authorization console
aaa authorization exec default group NPS local if-authenticated
aaa authorization network default group NPS
!
aaa session-id common
!
identity profile default
!
dot1x system-auth-control
!
!
line vty 0 4
exec-timeout 5 0
transport input ssh
escape-character 99
line vty 5 15
exec-timeout 5 0
logging synchronous
transport input ssh
escape-character 99Después de la configuración, después de 10 minutos, todas las políticas de parámetros de clientes deben aparecer también en el NPS de respaldo y podremos autenticarnos en los interruptores usando una cuenta de Active Directory, miembro del grupo domainsg-network-admins (que creamos previamente).
Pasemos a la configuración de Active Directory: crearemos políticas de grupo y de contraseñas, y crearemos los grupos necesarios.
Política de grupo Computers-8021x-Settings:
Configuración del equipo (Habilitada)
Políticas
Configuración de Windows
Configuración de seguridad
Servicios del sistema
Wired AutoConfig (Modo de inicio: Automático)
Políticas de red cableada (802.3)
NPS-802-1x
Nombre NPS-802-1x
Descripción 802.1x
Configuraciones globales
CONFIGURACIÓN VALOR
Usar servicios de red LAN por cable de Windows para clientes Habilitado
Credenciales de usuario compartidas para autenticación de red Habilitado
Perfil de red
Configuraciones de seguridad
Habilitar uso de autenticación IEEE 802.1X para acceso a la red Habilitado
Imponer uso de autenticación IEEE 802.1X para acceso a la red Deshabilitado
Configuraciones IEEE 802.1X
Autenticación del ordenador Solo ordenador
Máximas fallas de autenticación 10
Máximos mensajes EAPOL-Start enviados
Periodo de retención (segundos)
Periodo de inicio (segundos)
Periodo de autenticación (segundos)
Propiedades del método de autenticación de la red
Método de autenticación EAP protegido (PEAP)
Validar certificado del servidor Habilitado
Conectarse a estos servidores
No solicitar al usuario que autorice nuevos servidores o autoridades de certificación de confianza Deshabilitado
Habilitar reconexión rápida Habilitado
Desconectar si el servidor no presenta TLV de enlace criptográfico Deshabilitado
Imponer protección de acceso a la red Deshabilitado
Configuración del método de autenticación
Método de autenticación Contraseña asegurada (EAP-MSCHAP v2)
Usar automáticamente mi nombre de inicio de sesión y contraseña de Windows (y dominio, si los hay) Habilitado
Crearemos un grupo de seguridad sg-computers-8021x-vl100, donde añadiremos las computadoras que deseamos distribuir en el VLAN 100 y configuraremos la filtración para la política de grupo creada anteriormente para este grupo:

Para asegurarnos de que la política se ha aplicado correctamente, podemos abrir el “Centro de control de redes y recursos compartidos (Configuraciones de red e Internet) – Cambiar la configuración del adaptador (Configuración de las propiedades del adaptador) – Propiedades del adaptador”, donde podremos ver la pestaña “Autenticación”:

Cuando hayamos confirmado que la política se aplica correctamente, podemos proceder a la configuración de la política de red en NPS y los puertos del conmutador de acceso.
Crearemos una política de red neag-computers-8021x-vl100:
Condiciones:
Grupos de Windows - sg-computers-8021x-vl100
Tipo de puerto NAS - Ethernet
Restricciones:
Métodos de autenticación - Microsoft: Protected EAP (PEAP) - Autenticación no encriptada (PAP, SPAP)
Tipo de puerto NAS - Ethernet
Ajustes:
Estándar:
Framed-MTU 1344
TunnelMediumType 802 (incluye todos los medios 802 más formato canónico Ethernet)
TunnelPrivateGroupId 100
TunnelType Redes de área local virtual (VLAN) 
Configuraciones típicas para el puerto del conmutador (destaco que se utiliza el tipo de autenticación “multi-dominio” – Data & Voice, y también existe la posibilidad de autenticación por dirección MAC. Durante el “periodo de transición” tiene sentido usar los siguientes parámetros:
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
el VLAN id no es “de cuarentena”, sino el mismo al que la computadora del usuario debe acceder, tras una autorización exitosa – hasta que confirmemos que todo funciona correctamente. Estos mismos parámetros pueden ser utilizados en otros escenarios, por ejemplo, cuando este puerto se conecta a un conmutador no gestionado y deseas que todos los dispositivos conectados a él y que no han pasado la autenticación caigan en un VLAN específico (“de cuarentena”).
configuraciones del puerto del conmutador en modo 802.1x host-mode multi-domain
default int range Gi1/0/39-41
int range Gi1/0/39-41
shu
des PC-IPhone_802.1x
switchport mode access
switchport nonegotiate
switchport voice vlan 55
switchport port-security maximum 2
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
authentication host-mode multi-domain
authentication port-control auto
authentication violation restrict
mab
dot1x pae authenticator
dot1x timeout quiet-period 15
dot1x timeout tx-period 3
storm-control broadcast level pps 100
storm-control multicast level pps 110
no vtp
lldp receive
lldp transmit
spanning-tree portfast
no shu
exitPara asegurarte de que la computadora/teléfono ha pasado la autenticación con éxito, puedes usar el comando:
sh authentication sessions int Gi1/0/39 detAhora crearemos un grupo (por ejemplo, sg-fgpp-mab ) en Active Directory para teléfonos y agregaremos un dispositivo para pruebas (en mi caso es Grandstream GXP2160 con la dirección MAC 000b.82ba.a7b1 y la correspondiente cuenta domain 00b82baa7b1).
Para el grupo creado, bajaremos los requisitos de la política de contraseñas (usando a través de Active Directory Administrative Center -> domain -> System -> Password Settings Container) con los siguientes parámetros Password-Settings-for-MAB:

de esta manera, permitiremos utilizar la dirección MAC de los dispositivos como contraseñas. Después de esto, podremos crear una política de red para la autenticación 802.1x method mab, que se llamará neag-devices-8021x-voice. Los parámetros son los siguientes:
- Tipo de puerto NAS – Ethernet
- Grupos de Windows – sg-fgpp-mab
- Tipos de EAP: Autenticación no cifrada (PAP, SPAP)
- Atributos RADIUS – Específico del vendedor: Cisco – Cisco-AV-Pair – Valor del atributo: device-traffic-class=voice
después de una autenticación exitosa (no olvidemos configurar el puerto del switch), consultaremos la información del puerto:
sh authentication se int Gi1/0/34
----------------------------------------
Interfaz: GigabitEthernet1/0/34
Dirección MAC: 000b.82ba.a7b1
Dirección IP: 172.29.31.89
Nombre de usuario: 000b82baa7b1
Estado: Authz Success
Dominio: VOICE
Modo de host operativo: multi-domain
Direccionalidad de control operativo: both
Autorizado por: Server de autenticación
Tiempo de sesión: N/A
Tiempo de inactividad: N/A
ID de sesión común: 0000000000000EB2000B8C5E
ID de sesión de cuenta: 0x00000134
Manejar: 0xCE000EB3
Lista de métodos ejecutables:
Método Estado
dot1x Fallido
mab Éxito de autenticaciónAhora, como prometí, revisaremos un par de situaciones no tan obvias. Por ejemplo, necesitamos conectar computadoras/dispositivos de usuarios a través de un switch no administrado. En este caso, la configuración del puerto se verá de la siguiente manera:
configuración del puerto del switch en modo 802.1x host-mode multi-auth
interface GigabitEthernet1/0/1
descripción *SW – 802.1x – 8 mac*
shu
switchport mode access
switchport nonegotiate
switchport voice vlan 55
switchport port-security maximum 8 ! aumentamos el número de direcciones MAC permitidas
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
authentication host-mode multi-auth ! – modo de autenticación
authentication port-control auto
authentication violation restrict
mab
dot1x pae authenticator
dot1x timeout quiet-period 15
dot1x timeout tx-period 3
storm-control broadcast level pps 100
storm-control multicast level pps 110
no vtp
spanning-tree portfast
no shuP.S. he notado un error bastante extraño: si un dispositivo se conectó a través de un switch así y luego se conectó a un switch administrado, NO funcionará hasta que reiniciemos(!) el switch. No he encontrado otros métodos para resolver este problema.
Otro tema relacionado con DHCP (si se utiliza ip dhcp snooping) – sin tales opciones:
ip dhcp snooping vlan 1-100
no ip dhcp snooping information optionpor alguna razón, no se puede obtener correctamente la dirección IP... aunque puede que sea una peculiaridad de nuestro servidor DHCP
Además, Mac OS y Linux (que tienen soporte nativo para 802.1x) intentan pasar la autenticación del usuario, incluso si se ha configurado la autenticación por dirección MAC.
En la siguiente parte del artículo, analizaremos la aplicación de 802.1x para Wireless (dependiendo del grupo al que pertenezca la cuenta de usuario, los 'enviamos' a la red correspondiente (vlan), aunque se conecten a un solo SSID).
Fuente: habr.com
