Configuración de 802.1X en switches Cisco utilizando NPS de alta disponibilidad (RADIUS de Windows con AD)

Configuración de 802.1X en switches Cisco utilizando NPS de alta disponibilidad (RADIUS de Windows con AD)
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: IEEE 802.1X

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.

Configuración de 802.1X en switches Cisco utilizando NPS de alta disponibilidad (RADIUS de Windows con AD)

o mediante PowerShell:

Install-WindowsFeature NPAS -IncludeManagementTools

Una 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.ps1

y 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=15

Desde 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 99

Despué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

Configuración de 802.1X en switches Cisco utilizando NPS de alta disponibilidad (RADIUS de Windows con AD)

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:

Configuración de 802.1X en switches Cisco utilizando NPS de alta disponibilidad (RADIUS de Windows con AD)

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”:

Configuración de 802.1X en switches Cisco utilizando NPS de alta disponibilidad (RADIUS de Windows con AD)

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)

Configuración de 802.1X en switches Cisco utilizando NPS de alta disponibilidad (RADIUS de Windows con AD)

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
exit

Para 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 det

Ahora 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 Fine-Grained Password Policies a través de Active Directory Administrative Center -> domain -> System -> Password Settings Container) con los siguientes parámetros Password-Settings-for-MAB:

Configuración de 802.1X en switches Cisco utilizando NPS de alta disponibilidad (RADIUS de Windows con AD)

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ón

Ahora, 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 shu

P.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 option

por 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

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster