Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

Diagrama de la red

Escenarios

Número máximo de sesiones por usuario

Configuración

Ejemplo:

Sesión máxima para el grupo

Configurar

Ejemplo:

Estuches de esquina

Número máximo de sesiones para el usuario del grupo

Configurar

Ejemplo:

Sesión máxima para el grupo y Sesión máxima para el usuario de ese grupo

Configurar

Ejemplo:

Límite de tiempo del contador

Configurar

Ejemplo:

Función de sesión máxima y acceso de invitado

Autenticación web central

Autenticación web local

Troubleshoot

Registros activos de Radius

Depuraciones de ISE

Introducción

Este documento describe cómo configurar la función de sesiones máximas introducida en Identity Services Engine (ISE) 2.2.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Protocolo RADIUS

- Configuración 802.1x en controlador de LAN inalámbrica (WLC)

- ISE y sus personalidades (funciones)

Componentes Utilizados

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Cisco Identity Service Engine versión 2.2

- Wireless LAN Controller 8.0.100.0

- Switch Cisco Catalyst 3750 15.2(3)E2

- Máquina Windows 7

- Teléfono Android que ejecuta 6.0.1

- Teléfono Android con 5.0

- Apple iPad iOS 9.1

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Antecedentes

La función Número máximo de sesiones proporciona una forma de controlar y aplicar sesiones en directo por usuario o grupo de identidades. Este documento es para sesiones RADIUS, pero también podría ser utilizado para las sesiones TACACS.

La versión 2.2 de ISE puede detectar y crear políticas de aplicación basadas en la sesión simultánea de:

- Identidad de usuario: limite el número de sesiones por usuario específico

- Grupo de identidad: limite el número de sesiones por grupo específico

- Usuario de un grupo: limite el número de sesiones por usuario que pertenece a un grupo específico

La aplicación y el recuento de una sesión simultánea son únicos y los gestiona cada nodo de servicios de políticas (PSN). No hay sincronización entre los PSN en términos de número de sesiones. La función de sesión simultánea se implementa en el proceso en tiempo de ejecución y los datos se almacenan sólo en la memoria. En caso de reinicio de PSN, se restablecen los contadores de MaxSessions.

El recuento de sesiones de usuario no distingue entre mayúsculas y minúsculas con respecto a los nombres de usuario, e independiente del dispositivo de acceso a la red utilizado (siempre y cuando se utilice el mismo nodo PSN).

Diagrama de la red

Escenarios

Número máximo de sesiones por usuario

Configuración

Vaya a Administration > System > Settings > Max Sessions como se muestra en la imagen:

Para activar la función, desactive la casilla de verificación Sesión ilimitada por usuario, que está activada de forma predeterminada. En el campo Maximum per user Sessions, configure el número de sesiones que un usuario específico puede tener en cada PSN. En este ejemplo, se establece en 2.

Esta configuración también afecta a los usuarios de orígenes de identidad externos (por ejemplo, Active Directory).

Ejemplo:

Bob es el nombre de usuario de una cuenta del dominio de Active Directory que está conectado y unido al servidor ISE. Las sesiones máximas de usuario se configuran con el valor 2, lo que significa que no se permite ninguna sesión para el mismo usuario más allá de este número (por PSN).

Como se muestra en la imagen, el usuario Bob se conecta con el teléfono Android y la máquina Windows con las mismas credenciales:

Ambas sesiones están permitidas porque no se excede el límite máximo de sesiones. Vea el registro detallado de Radius Live, que se muestra en la imagen:

22081 El paso de la política de sesiones máximas superadas proporciona información de que la comprobación de la sesión simultánea máxima se ha realizado correctamente.

Una vez que se inicia la tercera conexión con otro dispositivo y las mismas credenciales, Pablo recibe PermitAccess, pero Access-Reject se envía al autenticador:

La sesión no está permitida, aunque en el registro en vivo de Radius puede ver que llega al perfil de autorización correcto. Para verificar las sesiones en vivo, navegue hasta Operaciones > Radio > Sesiones en vivo:

En este caso, ambas sesiones tienen el estado Started (Iniciado), que indica que la herramienta Accounting Start (Inicio de contabilidad) llegó a ISE para la sesión. Es necesario recibir la Contabilización Radius para que la Sesión Máxima funcione correctamente, el estado Autenticado (Sesión permitida, pero sin contabilización) no se toma en consideración durante el conteo de sesiones:

Sesión máxima para el grupo

Configurar

Vaya a Administration > System > Settings > Max Sessions > Group:

Esta configuración aplica 2 sesiones como máximo para el grupo de identidad interno GroupTest2: puede configurar la aplicación por grupo solo para los grupos internos.

Ejemplo:

Alice, Pablo y Peter son los usuarios de la tienda interna de usuarios de ISE. Todos ellos son miembros del grupo denominado GroupTest2. Según la configuración de este ejemplo, el valor máximo de sesiones se establece en 2 en función de la pertenencia al grupo.

Pablo y Peter se conectan a la red con sus credenciales del grupo interno denominado GroupTest2:

Una vez que Alice intenta conectarse, se aplica el límite de MaxSessions por grupo:

Alice no puede conectarse a la red porque el límite del grupo de sesiones máximas lo utilizan Peter y Pablo:

Estuches de esquina

Si se configura la opción Sesiones máximas de usuario, ambas funciones funcionan de forma independiente. En este ejemplo, User Max Sessions se establece en 1 y Maximum Session for Group se establece en 2.

Peter está autorizado en función de la sesión máxima para el grupo (2 sesiones), pero debido a la configuración del número máximo de sesiones del usuario (una sesión) no puede conectarse a la red:

Si el usuario es miembro de más de un grupo al mismo tiempo y se configura el número máximo de sesiones para el grupo para ellos, una vez conectado, ISE aumenta el contador de sesiones máximas para la caché del grupo para cada grupo al que pertenece el usuario.

En este ejemplo, Alicia y Pablo son miembros de GroupTest1 y GroupTest2. Verónica pertenece solo a GroupTest1 y Peter a GroupTest2

La sesión máxima para el grupo se establece en 2 para GroupTest1 y GroupTest2:

Cuando Alicia y Pablo están conectados a la red, superan los límites de sesión de ambos grupos. Verónica, que pertenece solo a GroupTest1 y Peter, miembro de GroupTest2 no pueden conectarse debido a que la sesión máxima del grupo alcanzó el valor máximo configurado:

Número máximo de sesiones para el usuario del grupo

Configurar

Vaya a Administration > System > Settings > Max Sessions > Group.

Esta configuración impone 2 sesiones como máximo para el grupo de identidad interna GroupTest2.

Ejemplo:

Alice es miembro de GroupTest2:

Esta función funciona de forma similar a Sesión máxima de usuario: ISE limita el número de sesiones simultáneas que puede tener el usuario dentro del grupo interno especificado. Esta configuración afecta únicamente al usuario, que pertenece al grupo configurado.

Alice, como miembro de GroupTest2, puede tener 2 sesiones simultáneas. Una vez conectado con el tercer dispositivo, ISE devuelve PermitAccess y Access-Reject en función de la sesión máxima superada para el usuario del grupo:

Registros detallados de Radius-Live:

Si también está habilitada la opción Sesiones máximas de usuario, ambas funciones funcionan de forma independiente. Si un usuario Alice es miembro del grupo GroupTest2 con Maximum Session for User in Group configurado para 2, y al mismo tiempo User Max Sessions está configurado para permitir solamente una sesión por usuario, User Max Sessions tiene prioridad:

Cuando Alice intenta conectarse con el segundo dispositivo, ISE devuelve Access-Reject basándose en el límite máximo de usuarios de sesión excedido:

El motivo de la denegación se puede comprobar en el registro en directo detallado de Radius. El límite máximo de sesiones por usuario es el motivo del error:

Sesión máxima para el grupo y Sesión máxima para el usuario de ese grupo

Configurar

Vaya a Administration > System > Settings > Max Sessions > Group.

Esta configuración impone una sesión máxima de 3 en el grupo de identidad interno GroupTest2 y una sesión máxima de 2 para el usuario de ese grupo.

Ejemplo:

Alice y Pablo son miembros de GroupTest2. Según la configuración de este ejemplo, se permite un máximo de 3 sesiones en GroupTest2. ISE garantiza que un único usuario pueda tener un máximo de 2 sesiones en este grupo.

Alice se conecta a través de dos dispositivos. Ambos terminales están conectados a la red:

Cuando Alice intenta conectarse a través de un tercer dispositivo, el acceso se deniega con el límite máximo de sesiones para usuarios en grupo superado:

Si Pablo intenta acceder a la red, puede hacerlo ya que la sesión máxima para el grupo GroupTest2 aún no está llena:

Cuando Pablo intenta acceder a la red desde un segundo dispositivo, falla porque ha superado el límite máximo de sesiones para el grupo (aunque solo tiene 1 sesión):

Al igual que en los ejemplos anteriores, si habilita Sesiones máximas de usuario, funciona de manera independiente.

Límite de tiempo del contador

Configurar

Vaya a Administration > System > Settings > Max Sessions > Counter Time Limit.

Límite de tiempo del contador es la función que especifica el intervalo de tiempo durante el cual se cuenta la sesión en términos de la memoria caché de sesión máxima. Esta función le permite especificar el tiempo después del cual PSN elimina la sesión del contador y permite nuevas sesiones.

Para activar la función, debe desactivar la casilla de verificación Unlimited - no time limit, que está activada de forma predeterminada. En el campo editable, puede establecer el tiempo durante el cual se tiene en cuenta la sesión en los contadores de MaxSession.

Tenga en cuenta que las sesiones posteriores al tiempo configurado no se desconectan ni se quitan de la base de datos de sesiones. No hay ninguna Cadena de finalización de autorización (CoA) después del tiempo configurado.

Ejemplo:

Sesión máxima de usuario se establece para permitir sólo una sesión para el usuario:

Alicia se conecta a la red mediante el IPad a las 11:00:34, la segunda autenticación se realiza a las 11:07 y, aunque se supere el valor de Sesión máxima de usuario, se permite el acceso. Ambas autenticaciones son exitosas debido al límite de tiempo del contador.

Alice intenta conectarse con otro dispositivo antes de que transcurran 5 minutos desde la última conexión correcta. ISE rechaza la autenticación:

Después de 5 minutos de la última autenticación, Alice pudo conectarse a la red con un dispositivo adicional.

En las sesiones en directo, puede ver las tres sesiones en el estado Iniciado:

Función de sesión máxima y acceso de invitado

Autenticación web central

Con una sesión configurada en la función User Maximum Session , aún puede conectarse con la cuenta Guest1 para ambas sesiones:

Para limitar el acceso de invitado, puede especificar el número máximo de inicios de sesión simultáneos en la configuración del tipo de invitado.

Navegue hasta Centros de trabajo > Acceso de invitado > Portal y componentes > Tipos de invitado y cambie la opción Máximo de inicios de sesión simultáneos, como se muestra en la imagen:

Autenticación web local

Con una sesión configurada en Sesión máxima de usuario, no podrá conectarse:

Según los Live-logs de Radius, el Guest1 siempre se autentica correctamente en términos de la autenticación del portal. Una vez que el WLC envía la solicitud RADIUS con la segunda sesión para el Guest1, ISE deniega el acceso debido al límite de usuarios excedido:

Troubleshoot

Registros activos de Radius

El informe de RADIUS detallado es el primer lugar para la resolución de problemas de la función MaxSession.

Este motivo de error indica que se ha superado el límite máximo de sesiones de usuario global para esta sesión/usuario, como se muestra en la imagen:

Este motivo de error indica que se ha superado el límite máximo de sesiones de grupo para esta sesión/usuario, como se muestra en la imagen:

Este motivo de error indica que se ha superado el límite máximo de sesiones de usuario de grupo para esta sesión/usuario.

La comprobación de la caché de MaxSession tiene lugar después de la selección del perfil de autorización:

Éxito:

Falla:

Depuraciones de ISE

El número máximo de registros de sesión se encuentra en prrt-server.log. Para recolectarlos, establezca el componente runtime-AAA en el nivel DEBUG ( navegue hasta Administration > System > Logging > Debug Log Configuration > PSN), como se muestra en la imagen:

Para obtener File port-server.log, navegue hasta Operaciones > Troubleshooting > Download Logs > PSN > Debug Logs. Los registros de sesión máximos también se recopilan en las depuraciones de terminales (Operaciones > Solucionar problemas > Herramientas de diagnóstico > Herramientas generales > Depuración de terminales).

Comprobación de sesión máxima de usuario correctamente superada:

2017-01-29 08:33:11,310 INFO   [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: current global configuration data: auditSessionTtl=[3600], maxUserSessions=[2],SessionCache.cpp:283

2017-01-29 08:33:11,311 INFO   [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::checkMaxSessions: user=[Bob] not found in cache due to first time authorization,SessionCache.cpp:1025

2017-01-29 08:33:11,311 DEBUG  [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: sessionID=[0a3e944f00000e7d588da8a0]; user=[Bob] - checkMaxSessions passed,SessionCache.cpp:360

2017-01-29 08:33:11,311 INFO   [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: create a new session object sessionID=[0a3e944f00000e7d588da8a0]; user=[Bob],SessionCache.cpp:375

ISE incrementa el SessionCounter solo después de recibir el Inicio de contabilidad para la sesión:

2017-01-29 08:33:11,619 DEBUG  [Thread-90][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- Radius,DEBUG,0x7fe858766700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,RADIUS PACKET:: Code=4(AccountingRequest) Identifier=0 Length=279

[1] User-Name - value: [Bob]

[4] NAS-IP-Address - value: [10.62.148.79]

[5] NAS-Port - value: [1]

[8] Framed-IP-Address - value: [10.62.148.141]

[25] Class - value: [****]

[30] Called-Station-ID - value: [80-e0-1d-8b-72-00]

[31] Calling-Station-ID - value: [c0-4a-00-14-56-f4]

[32] NAS-Identifier - value: [WLC7]

[40] Acct-Status-Type - value: [Start]

[44] Acct-Session-Id - value: [588da8a0/c0:4a:00:14:56:f4/3789]

[45] Acct-Authentic - value: [RADIUS]

[55] Event-Timestamp - value: [1485678753]

[61] NAS-Port-Type - value: [Wireless - IEEE 802.11]

[64] Tunnel-Type - value: [(tag=0) VLAN]

[65] Tunnel-Medium-Type - value: [(tag=0) 802]

[81] Tunnel-Private-Group-ID - value: [(tag=0) 481]

[26] cisco-av-pair - value: [audit-session-id=0a3e944f00000e7d588da8a0]

[26] Airespace-Wlan-Id - value: [4] ,RADIUSHandler.cpp:2003

(...)

2017-01-29 08:33:11,654 DEBUG  [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,SessionCache::onAccountingStart: user=[Bob]; sessionID=[0a3e944f00000e7d588da8a0],SessionCache.cpp:537

2017-01-29 08:33:11,655 DEBUG  [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,SessionCache::incrementSessionCounters: user=[Bob] current user session count=[1],SessionCache.cpp:862

Error de comprobación de sesión máxima de usuario:

2017-01-29 08:37:00,534 INFO   [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::onMaxSessionsAznEvent: current global configuration data: auditSessionTtl=[3600], maxUserSessions=[2],SessionCache.cpp:283

2017-01-29 08:37:00,535 INFO   [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::checkMaxSessions: user=[Bob] is not authorized because current active user sessions=[2] >= max-user-sessions=[2],SessionCache.cpp:1010

2017-01-29 08:37:00,535 DEBUG  [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::onMaxSessionsAznEvent: sessionID=[0a3e944f00000e7f588da966]; user=[Bob] - checkMaxSessions failed,SessionCache.cpp:341

2017-01-29 08:37:00,535 DEBUG  [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- RadiusAuthorization,DEBUG,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,RadiusAuthorization::onResponseMaxSessionsAznEvent return from SessionCache,RadiusAuthorization.cpp:371