Situación:
Estoy tratando de hacer que 802.1X funcione para mí. Quiero que el servidor RADIUS asigne dinámicamente VLAN a los puertos según el atributo de respuesta RADIUS para un usuario en particular. Tengo un conmutador HP E2620 y un servidor FreeRADIUS. El solicitante es una máquina con Windows 8.1
Me referí a este documento en el sitio web de freeradius.
Lo que he hecho hasta ahora:
En FreeRADIUS creé un usuario con tales parámetros:
dot1xtest User-Password := "secret"
Tunnel-Type = "VLAN",
Tunnel-Medium-Type = "IEEE-802",
Tunnel-Private-Group-ID = "100"
También lo intenté Tunnel-Pvt-Group-ID
, pero no funciona en FreeRADIUS, solo me ladra (vi esto en los recursos para configurar en Microsoft NPS, uno de estos ). También probé los valores "802", 802, 6 para el tipo de túnel medio.
También intenté usar el nombre real de VLAN en lugar de VLAN-ID como valor de ID de grupo. De todos modos, su tipo de datos es una cadena.
Configuré el conmutador HP para usar este servidor RADIUS para AAA y configuré esto para el puerto 10:
aaa port-access gvrp-vlans
aaa authentication port-access eap-radius
aaa port-access authenticator 10
aaa port-access authenticator 10 auth-vid 150
aaa port-access authenticator 10 unauth-vid 200
aaa port-access authenticator active
VLAN:
VLAN 100 - VLAN which I want to get after authentication.
VLAN 150 - VLAN which I get now, because my config is not working
VLAN 200 - Unauthorized VLAN which is used on auth. failure
Notas:
Puerto 10 también tiene VLAN sin etiqueta 150 asignado:
vlan 150 untagged 10
. Y no puedo deshacerme de la asignación estáticaTodas las VLAN enumeradas anteriormente están presentes en la base de datos de VLAN del conmutador.
Cada vez que me conecto a este puerto me pide credenciales; después de tener éxito con la autenticación, solo me envía a VLAN150 y si intento fallar, llego a VLAN200.
Habilité la autenticación 802.1X en la conexión de Windows tal como se describe aquí .
Intenté habilitar GVRP, no cambia nada
Salida de comando de diagnóstico / show:
Asignación de VLAN estática para el puerto 10. VLAN 150 sin etiquetar
SW # show vlans ports 10 detail
Status and Counters - VLAN Information - for ports 10
VLAN ID Name | Status Voice Jumbo Mode
------- -------------------------------- + ---------- ----- ----- --------
150 VLAN150 | Port-based No No Untagged
En show logging
veo esto:
I 08/28/14 08:29:24 00077 ports: port 10 is now off-line
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by AAA
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by STP
I 08/28/14 08:29:29 00076 ports: port 10 is now on-line
I 08/28/14 08:29:29 00001 vlan: VLAN200 virtual LAN enabled
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by AAA
I 08/28/14 08:29:29 00002 vlan: UNUSED virtual LAN disabled
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by STP
I 08/28/14 08:29:29 00076 ports: port 10 is now on-line
I 08/28/14 08:29:29 00001 vlan: UNUSED virtual LAN enabled
I 08/28/14 08:29:47 00002 vlan: UNUSED virtual LAN disabled
show port-access authenticator
salida:
SW # show port-access authenticator
Port Access Authenticator Status
Port-access authenticator activated [No] : Yes
Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : Yes
Auths/ Unauth Untagged Tagged % In RADIUS Cntrl
Port Guests Clients VLAN VLANs Port COS Limit ACL Dir
---- ------- ------- -------- ------ --------- ----- ------ -----
10 1/0 0 150 No No No No both
Prueba de usuario RADIUS:
Linux-server # radtest dot1xtest secret localhost 0 secretkey
Sending Access-Request of id 158 to 127.0.0.1 port 1812
User-Name = "dot1xtest"
User-Password = "secret"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=158, length=37
Tunnel-Type:0 = VLAN
Tunnel-Medium-Type:0 = 802
Tunnel-Private-Group-Id:0 = "100"
Esto es lo que vi en TCPdump en el servidor RADIUS. Estaba capturando el tráfico UDP saliente con el puerto de origen 1812. Es lo que obtiene mi conmutador (si es así, no estoy seguro de cómo verificar eso ...)
Tunnel Type Attribute (64), length: 6, Value: Tag[Unused]#13
0x0000: 0000 000d
Tunnel Medium Attribute (65), length: 6, Value: Tag[Unused]802
0x0000: 0000 0006
Tunnel Private Group Attribute (81), length: 5, Value: 100
0x0000: 3130 30
Depurar:
debug security radius-server
debug security port-access authenticator
debug destination buffer
Después de eso, desconecté y enchufé el cable y lo hice, show debug buffer
y aquí está el copiar y pegar . Es extraño, no se dice nada sobre ningún atributo relacionado con la VLAN.
Preguntas:
¿Qué estoy haciendo mal?
He leído en un montón de recursos que si el RADIUS asigna un interruptor de ID de VLAN, lo usa en primer lugar. Luego recurre a la VLAN autorizada configurada para el Autenticador de acceso a puerto si la autenticación se realiza correctamente. Si eso no está presente, asigna la VLAN sin etiquetar configurada en el puerto. ¿Por qué no tengo ese comportamiento?
Comienzo a pensar que el atributo Tunnel-Private-Group-Id
no es compatible con estos conmutadores. Parece que cada recurso se refiere en su Tunnel-Pvt-Group-Id
lugar (configuración en Microsoft). Lástima que no tengo Windows Server para verificar.
Tal vez está relacionado con el firmware? No intenté actualizar aún, uso RA_15_06_0009.swi y ya hay RA_15_14_0007.swi por ahí
Actualizar
Acabo de probar un 3500yl-24G-PWR
modelo y todavía no funciona. Entonces ... supongo que los conmutadores simplemente no obtienen la configuración del servidor RADIUS (¿o utilicé atributos u operadores incorrectos?). ¿Cómo puedo solucionar eso?
fuente
aaa port-access authenticator 10 auth-vid 150
declaración. IIRC, esto le indicaría al conmutador que use 150 para dispositivos autenticados a menos que obtenga un valor diferente de RADIUS. Sin esto, sospecho que solo usará el valor de puerto configurado. No publico como respuesta porque estoy trabajando fuera de la memoria y a menudo falla hoy en día. Si funciona, avíseme y lo publicaré como respuesta.Respuestas:
Alex, hola!
He creado un entorno de prueba para usted, así que estoy usando freeradius 2.1.12 + dfsg-1.2 (en debian), y cambio hp 2650. Acabo de repetir su configuración y no tengo problemas con esto. Mi prueba procurve ip 10.0.10.29, prueba freeradius ip 192.168.2.60.
configuración de procurve:
/ etc / freeradius / users:
/etc/freeradius/radiusd.conf:
Y he usado este manual, para habilitar 8021x en Windows:
Pero, he deshabilitado el uso de créditos de usuario registrados.
Entonces, si las credenciales de los usuarios son correctas, tengo este mensaje en /var/log/freeradius/radius.log
y en mi interruptor tengo:
Si los créditos son incorrectos:
tal vez no has habilitado 8021x en windows? Espero que esto te ayude, hombre.
fuente
Wow, nunca hubiera pensado en este. Fue solo una solución aleatoria.
Entonces, el problema era con la
authorize
sección en ladefault
configuración de mi sitio en/etc/raddb/sites-enabled/default
, era algo predeterminado. Realmente no sé qué pasa con eso (si ustedes, chicos, saben, comentan sobre eso, por favor), investigarán un poco sobre eso; aquí está:Comenté esto y lo reemplacé con solo:
Ya no esperaba volver a hacerlo funcionar y luego me reconecté y ... sucedió, ¡al azar y ahora estoy tan emocionado! Me asignaron una VLAN dinámicamente:
Depurar:
SW # show port-access authenticator 10 vlan
- todavía muestra VLAN 200 no autorizada y VLAN 150 autorizadaSW # show vlans ports 10 detail
- Y la VLAN sin etiquetar en el puerto 10 se configuró enVLAN 100
SW # show port-access authenticator
Además, si desea que funcione, debe crear todas las VLAN requeridas en el conmutador, de lo contrario obtendrá este tipo de cosas:
y Windows solo dirá: lo
Authentication failed
cual es un poco confuso también.No conseguí que funcionara con VLAN desconocidas a pesar del hecho de que GVRP estaba habilitado,
aaa port-access gvrp-vlans
estaba configurado y también lo hice explícitamenteunknown-vlans learn
en la interfaz 10, pero bueno ... nvm.fuente
Necesita agregar el siguiente comando:
aaa port-access authenticator 10 auth-vid 150
Esto le indicaría al conmutador que el puerto 10 usará la VLAN asignada de autenticación para dispositivos autenticados a menos que obtenga un valor diferente de RADIUS. Sin esto, solo usará el valor de puerto configurado e ignorará cualquier asignación de VLAN proporcionada por RADIUS.
Investigué un poco y encontré este dato en uno de mis documentos HP guardados:
fuente
show logging
oshow port-access authenticator
por ejemplo)? ¿Has combinado esto con algunos de los otros cambios que has probado anteriormente? Quizás se necesitaba uno que descartó, pero le faltaba otra pieza antes de trabajar.