본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 ISE(Identity Services Engine) 2.2에 도입된 최대 세션 기능을 구성하는 방법에 대해 설명합니다. 최대 세션 기능은 사용자 또는 ID 그룹별로 라이브 세션을 제어하고 적용하는 방법을 제공합니다. 이 문서는 RADIUS 세션용이지만 TACACS 세션에도 사용할 수 있습니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
ISE 버전 2.2는 다음의 동시 세션을 기반으로 시행 정책을 탐지하고 구축할 수 있습니다.
동시 세션의 시행 및 수는 PSN(Policy Service Node)별로 고유하며 관리됩니다. 세션 수 측면에서 PSN 간에는 동기화가 없습니다. 동시 세션 기능은 런타임 프로세스에서 구현되며 데이터는 메모리에만 저장됩니다. PSN을 다시 시작할 경우 MaxSessions 카운터가 재설정됩니다.
사용자 세션 수는 사용자 이름과 관련하여 대/소문자를 구분하지 않으며, 동일한 PSN 노드를 사용하는 한 사용되는 네트워크 액세스 디바이스와는 독립적입니다.
이미지에 표시된 대로 Administration > System > Settings > Max Sessions로 이동합니다.
이 기능을 활성화하려면 기본적으로 선택되어 있는 사용자당 세션 무제한 확인란의 선택을 취소합니다. Maximum per user Sessions(사용자당 최대 세션 수) 필드에서 각 PSN에서 사용자별 세션 수를 구성합니다. 이 예에서는 2로 설정됩니다.
외부 ID 소스(예: Active Directory)의 사용자도 이 구성의 영향을 받습니다.
Bob은 ISE 서버에 연결 및 연결 된 Active Directory 도메인의 계정 사용자 이름입니다. User Maximum Sessions(사용자 최대 세션)는 값 2로 구성되며, 이는 동일한 사용자에 대해 이 수를 초과하는 세션이 허용되지 않음을 의미합니다(PSN당).
이미지에 표시된 것처럼 사용자 Bob은 동일한 자격 증명을 사용하여 Android Phone 및 Windows 시스템에 연결합니다.
최대 세션 제한이 초과되지 않으므로 두 세션 모두 허용됩니다. 이미지에 표시된 자세한 Radius Live 로그에 따라 다음을 수행합니다.
22081 Max sessions policy passed passed(22081 최대 세션 정책 통과)는 최대 동시 세션 확인이 성공했다는 정보를 제공합니다.
다른 디바이스와 동일한 자격 증명을 세 번째로 연결하면 Bob은 PermitAccess를 수신하지만 Access-Reject는 인증자에게 전송됩니다.
세션이 허용되지 않습니다. Radius 라이브 로그에서 올바른 권한 부여 프로필에 도달했음을 확인할 수 있습니다. 라이브 세션을 확인하려면 Operations(작업) > Radius > Live Sessions(라이브 세션)로 이동합니다.
이 경우 두 세션 모두 Started 상태를 갖고 있습니다. 이는 Accounting Start가 세션에 대해 ISE에 도달했음을 나타냅니다. Max Session(최대 세션)에 대한 Radius Accounting(RADIUS 어카운팅)을 수신하여 제대로 작동해야 합니다. Authenticated(Session permitted, 그러나 No accounting) 상태는 세션 수 중에 고려되지 않습니다.
Administration(관리) > System(시스템)>Settings(설정) > Max Sessions(최대 세션) > Group(그룹)으로 이동합니다.
이 컨피그레이션에서는 내부 ID 그룹 GroupTest2에 대해 최대 2개의 세션을 적용합니다. 내부 그룹에 대해서만 그룹별 시행을 구성할 수 있습니다.
Alice, Pablo 및 Peter는 Internal ISE User Store의 사용자이며 모두 GroupTest2라는 그룹의 멤버입니다. 이 예에서 구성에 따라 최대 세션 값이 그룹 멤버십에 따라 2로 설정됩니다.
Pablo와 Peter는 GroupTest2라는 내부 그룹의 자격 증명을 사용하여 네트워크에 연결합니다.
Alice가 연결을 시도하면 그룹당 MaxSessions 제한이 적용됩니다.
Peter와 Pablo가 최대 세션 그룹 제한을 사용하므로 Alice가 네트워크에 연결할 수 없습니다.
User Maximum Sessions(사용자 최대 세션)가 구성된 경우 두 기능 모두 독립적으로 작동합니다. 이 예에서는 User Max Sessions(사용자 최대 세션)가 1로 설정되고 Maximum Session for Group(그룹에 대한 최대 세션)이 2로 설정됩니다.
Peter는 Maximum Session for Group(2개 세션)에 따라 허용되어야 하지만 User Max Sessions(최대 세션 수) 컨피그레이션(1개 세션) 때문에 네트워크에 연결하지 못합니다.
사용자가 동시에 두 개 이상의 그룹의 멤버이고 그룹에 대한 최대 세션 수가 구성된 경우, 연결된 ISE는 사용자가 속한 모든 그룹에 대해 그룹 캐시에 대한 최대 세션 수의 카운터를 늘립니다.
이 예에서 Alice와 Pablo는 GroupTest1 및 GroupTest2의 멤버입니다. Veronica는 GroupTest1 및 Peter to GroupTest2에만 속합니다.
GroupTest1 및 GroupTest2에 대해 그룹에 대한 최대 세션이 2로 설정됩니다.
Alice와 Pablo가 네트워크에 연결되면 두 그룹의 세션 제한을 초과합니다. GroupTest1 및 Peter에만 속하는 Veronica는 GroupTest2의 멤버로서 GroupTest의 최대 세션 수가 구성된 최대값에 도달했기 때문에 연결할 수 없습니다.
Administration(관리) > System(시스템) > Settings(설정) > Max Sessions(최대 세션) > Group(그룹)으로 이동합니다.
이 구성은 내부 ID 그룹 GroupTest2에 대해 최대 2개의 세션을 적용합니다.
Alice는 GroupTest2의 멤버입니다.
이 기능은 User Maximum Session(사용자 최대 세션) - ISE는 지정된 내부 그룹 내에서 사용자가 가질 수 있는 동시 세션 수를 제한합니다. 이 컨피그레이션은 구성된 그룹에 속한 사용자에게만 영향을 미칩니다.
GroupTest2의 멤버인 Alice는 두 개의 동시 세션을 가질 수 있으며, 세 번째 디바이스와 연결되면 ISE는 그룹 내 사용자에 대한 최대 세션 수를 초과한 것에 따라 PermitAccess 및 Access-Reject를 반환합니다.
자세한 Radius-Live 로그:
User Maximum Sessions(사용자 최대 세션)도 활성화된 경우 두 기능 모두 독립적으로 작동합니다. 사용자 Alice가 그룹의 사용자에 대한 최대 세션이 2로 구성된 그룹 GroupTest2의 멤버이고 동시에 사용자 최대 세션이 사용자당 하나의 세션만 허용하도록 구성된 경우 사용자 최대 세션이 우선 적용됩니다.
Alice가 두 번째 디바이스와 연결을 시도하면 ISE는 Max Session User Limit exceeded를 기반으로 Access-Reject를 반환합니다.
거부 이유는 자세한 Radius Live-Log 아래에서 확인할 수 있습니다. 최대 세션 사용자 제한은 실패 사유입니다.
Administration(관리) > System(시스템) > Settings(설정) > Max Sessions(최대 세션) > Group(그룹)으로 이동합니다.
이 컨피그레이션은 내부 ID 그룹 GroupTest2에서 최대 세션 3과 해당 그룹의 사용자에 대해 최대 세션 2개를 적용합니다.
Alice와 Pablo는 GroupTest2의 멤버입니다. 이 예에서 구성별로 GroupTest2에서 최대 3개의 세션이 허용됩니다. ISE는 단일 사용자가 이 그룹 내에서 최대 2개의 세션을 가질 수 있도록 합니다.
Alice는 두 개의 디바이스를 통해 연결되며, 두 엔드포인트는 모두 네트워크에 연결됩니다.
Alice가 세 번째 디바이스를 통해 연결하려고 할 경우, Maximum Session for User in Group limit exceeded:(그룹의 사용자에 대한 최대 세션 수)가 초과되어 액세스가 거부됩니다.
나Pablo가 네트워크에 액세스하려고 하면 GroupTest2에 대한 Max Session이 아직 꽉 차지 않기 때문에 액세스할 수 있습니다.
Pablo가 두 번째 디바이스에서 네트워크에 액세스하려고 할 때, Group에 대한 최대 세션 제한을 초과했기 때문에(세션이 한 개만 있어도) 실패합니다.
이전 예에서와 같이 User Maximum Sessions(사용자 최대 세션)를 활성화하면 독립적으로 작동합니다.
Administration(관리) > System(시스템) > Settings(설정) > Max Sessions(최대 세션) > Counter Time Limit(카운터 시간 제한)으로 이동합니다.
Counter Time Limit은 세션이 계산되는 시간 간격을 최대 세션 캐시의 관점에서 지정하는 기능입니다. 이 기능을 사용하면 PSN에서 카운터에서 세션을 삭제하고 새 세션을 허용하는 시간을 지정할 수 있습니다.
이 기능을 활성화하려면 기본적으로 선택된 무제한 - 시간 제한 없음 확인란의 선택을 취소해야 합니다. 편집 가능 필드에서 MaxSession 카운터에서 세션이 고려되는 시간을 설정할 수 있습니다.
구성된 시간 이후의 세션은 세션 데이터베이스에서 연결 해제되거나 제거되지 않습니다. 구성된 시간 후에는 CoA(Terminate Changes of Authorization)가 없습니다.
User Max Session(사용자 최대 세션)은 사용자에 대해 하나의 세션만 허용하도록 설정되어 있습니다.
Alice는 11:00:34에 IPad를 사용하여 네트워크에 연결하며, 두 번째 인증은 11:07에 수행되며, User Maximum Session(사용자 최대 세션) 값도 액세스 권한을 초과합니다. 카운터 시간 제한 때문에 두 인증이 모두 성공했습니다.
Alice가 마지막으로 성공한 연결이 5분 전에 다른 디바이스와 연결을 시도하면 ISE는 인증을 거부합니다.
마지막 인증에서 5분 후에 Alice는 추가 디바이스를 사용하여 네트워크에 연결할 수 있었습니다.
라이브 세션에서 Started(시작됨) 상태의 세 세션을 모두 볼 수 있습니다.
User Maximum Session(사용자 최대 세션) 기능에 따라 하나의 세션이 구성된 경우에도 두 세션 모두에 대해 Guest1 계정으로 연결할 수 있습니다.
게스트 액세스를 제한하려면 게스트 유형 컨피그레이션에서 최대 동시 로그인을 지정할 수 있습니다.
Work Centers(작업 센터) > Guest Access(게스트 액세스) > Portal & Components(포털 및 구성 요소) > Guest Types(게스트 유형)로 이동하고 이미지에 표시된 대로 최대 동시 로그인 수 옵션을 변경합니다.
User Maximum Session(사용자 최대 세션) 아래에 하나의 세션이 구성되어 있으면 연결할 수 없습니다.
Radius Live-logs에 따라 Guest1은 포털 인증 측면에서 항상 올바르게 인증됩니다. WLC가 Guest1에 대한 두 번째 세션으로 RADIUS 요청을 전송하면 ISE는 사용자 제한을 초과하여 액세스를 거부합니다.
Detailed Radius Report 는 MaxSession 기능을 트러블슈팅하기 위한 첫 번째 장소입니다.
이 실패 이유는 이미지에 표시된 대로 이 세션/사용자에 대해 전역 최대 사용자 세션 제한이 초과되었음을 나타냅니다.
이 실패 이유는 이미지에 표시된 대로 이 세션/사용자에 대해 그룹 최대 세션 제한이 초과되었음을 나타냅니다.
이 실패 이유는 이 세션/사용자에 대해 그룹 사용자 최대 세션 제한이 초과되었음을 나타냅니다.
MaxSession 캐시 확인은 권한 부여 프로파일을 선택한 후에 수행됩니다.
성공:
실패:
최대 세션 로그는 prrt-server.log에 있습니다. 이러한 구성 요소를 수집하려면 런타임-AAA 구성 요소를 DEBUG 레벨로 설정합니다(이미지에 표시된 대로 Administration(관리) > System(시스템) > Logging(로깅) > Debug Log Configuration(디버그 로그 구성) > PSN으로 이동).
File prrt-server.log를 가져오려면 Operations(작업) > Troubleshoot(문제 해결) > Download Logs(로그 다운로드) > PSN > Debug Logs(디버그 로그)로 이동합니다. 최대 세션 로그는 엔드포인트 디버깅에서도 수집됩니다(Operations(작업) > Troubleshoot(문제 해결)>Diagnostic Tools(진단 도구) > General Tools(일반 도구) > EndPoint Debug(엔드포인트 디버그)).
사용자 최대 세션 확인이 올바르게 전달됨:
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는 SessionCounter가 세션에 대한 Accounting Start를 받은 후에만 SessionCounter를 증가시킵니다.
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
사용자 최대 세션 확인 실패:
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
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
23-Mar-2017 |
최초 릴리스 |