소개
이 문서에서는 실시간 클라이언트 인증서 해지 확인을 위해 OCSP를 사용하여 EAP-TLS 인증을 설정하는 데 필요한 단계를 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco Identity Services Engine 구성
- Cisco Catalyst 구성
- 온라인 인증서 상태 프로토콜
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Identity Services Engine Virtual 3.2 패치 6
- C1000-48FP-4G-L 15.2(7)E9
- Windows Server 2016
- Windows 10
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
네트워크 다이어그램
이 그림에서는 이 문서의 예에 사용된 토폴로지를 보여줍니다.
네트워크 다이어그램
배경 정보
EAP-TLS에서 클라이언트는 인증 프로세스의 일부로 서버에 디지털 인증서를 제공합니다. 이 문서에서는 ISE가 AD 서버에 대해 인증서 CN(Common Name)을 확인하고 실시간 프로토콜 상태를 제공하는 OCSP(Online Certificate Status Protocol)를 사용하여 인증서가 폐기되었는지 확인하여 클라이언트 인증서를 검증하는 방법에 대해 설명합니다.
Windows Server 2016에 구성된 도메인 이름은 ad.rem-xxx.com이며 이 문서의 예제로 사용됩니다.
이 문서에서 참조하는 OCSP(Online Certificate Status Protocol) 및 AD(Active Directory) 서버가 인증서 검증에 사용됩니다.
이는 문서에 사용된 각 인증서의 공통 이름을 가진 인증서 체인입니다.
- CA: ocsp-ca-common-name
- 클라이언트 인증서: clientcertCN
- 서버 인증서: ise32-01.ad.rem-xxx.com
- OCSP 서명 인증서: ocspSignCommonName
설정
C1000의 컨피그레이션
이는 C1000 CLI의 최소 컨피그레이션입니다.
aaa new-model
radius server ISE32
address ipv4 1.x.x.181
key cisco123
aaa group server radius AAASERVER
server name ISE32
aaa authentication dot1x default group AAASERVER
aaa authorization network default group AAASERVER
aaa accounting dot1x default start-stop group AAASERVER
dot1x system-auth-control
interface Vlan12
ip address 192.168.10.254 255.255.255.0
interface Vlan14
ip address 1.x.x.101 255.0.0.0
interface GigabitEthernet1/0/1
Switch port access vlan 14
Switch port mode access
interface GigabitEthernet1/0/3
switchport access vlan 12
switchport mode access
authentication host-mode multi-auth
authentication port-control auto
dot1x pae authenticator
spanning-tree portfast edge
Windows PC의 구성
1단계. 사용자 인증 구성
Authentication(인증)으로 이동하여 Enable IEEE 802.1X authentication(IEEE 802.1X 인증 활성화)을 선택하고 Microsoft: Smart Card or other certificate(Microsoft: 스마트 카드 또는 기타 인증서)를 선택합니다.
설정단추를 클릭하고 이 컴퓨터의 인증서 사용을 선택한 다음 Windows PC의 신뢰할 수 있는 CA를 선택합니다.
인증서 인증 활성화
Authentication(인증), Additional Settings(추가 설정)로 이동합니다. 드롭다운 목록에서 사용자 또는 컴퓨터 인증을 선택합니다.
인증 모드 지정
2단계. 클라이언트 인증서 확인
Certificates - Current User > Personal > Certificates로 이동하고 인증에 사용되는 클라이언트 인증서를 확인합니다.
클라이언트 인증서 확인
클라이언트 인증서를 두 번 클릭하고 Details(세부사항)로 이동한 다음 Subject(주체), CRL Distribution Points(CRL 배포 지점), Authority Information Access(권한 정보 액세스)의 세부사항을 확인합니다.
클라이언트 인증서 세부 정보
Windows Server의 구성
1단계. 사용자 추가
Active Directory 사용자 및 컴퓨터로 이동한 다음 사용자를 클릭합니다. 사용자 로그온 이름으로 clientcertCN을 추가합니다.
사용자 로그온 이름
2단계. OCSP 서비스 확인
Windows로 이동하여 Online Responder Management를 클릭합니다. OCSP 서버의 상태를 확인합니다.
OCSP 서버 상태
winserver.ad.rem-xxx.com을 클릭하고 OCSP 서명 인증서의 상태를 확인합니다.
OCSP 서명 인증서 상태
ISE의 컨피그레이션
1단계. 장치 추가
Administration(관리) > Network Devices(네트워크 디바이스)로 이동하고 Add(추가)button(버튼)을 클릭하여 C1000 디바이스를 추가합니다.
장치 추가
2단계. Active Directory 추가
Administration(관리) > External Identity Sources(외부 ID 소스) > Active Directory로 이동하고 Connectiontab(연결 탭)을 클릭한 다음 Active Directory를 ISE에 추가합니다.
- 조인 지점 이름: AD_Join_Point
- Active Directory 도메인: ad.rem-xxx.com
Active Directory 추가
그룹 탭으로 이동하고 드롭다운 목록에서 디렉터리에서 그룹 선택을 선택합니다.
디렉터리에서 그룹 선택
그룹 검색(Retrieve Groups)시작(From) 드롭다운 목록을 누릅니다. Checkad.rem-xxx.com/Users/Cert Publishers(게시자)를 클릭하고 OK(확인)를 클릭합니다.
인증서 게시자 확인
3단계. 인증서 인증 프로파일 추가
Administration(관리) > External Identity Sources(외부 ID 소스) > Certificate Authentication Profile(인증서 인증 프로파일)로 이동하고 Add(추가) 버튼을 클릭하여 새 인증서 인증 프로파일을 추가합니다.
- 이름: cert_authen_profile_test
- ID 저장소: AD_Join_Point
- Use Identity From Certificate Attribute: Subject - Common Name(인증서의 ID 사용 특성: Subject - 공용 이름)
- ID 저장소의 인증서와 클라이언트 인증서 일치: ID 모호성을 해결하는 용도로만 사용됩니다.
인증서 인증 프로파일 추가
4단계. ID 소스 시퀀스 추가
Administration(관리) > Identity Source Sequences(ID 소스 시퀀스)로 이동하여 ID 소스 시퀀스를 추가합니다.
- 이름: Identity_AD
- Certificate Authentication Pro를 선택합니다file: cert_authen_profile_test
- 인증 검색 목록: AD_Join_Point
ID 소스 시퀀스 추가
5단계. ISE의 인증서 확인
Administration > Certificates > System Certificates로 이동하여 서버 인증서가 신뢰할 수 있는 CA에 의해 서명되었는지 확인합니다.
서버 인증서
Administration(관리) > Certificates(인증서) > OCSP Client Profile(OCSP 클라이언트 프로파일)로 이동하고 Add(추가) 버튼을 클릭하여 새 OCSP 클라이언트 프로파일을 추가합니다.
OCSP 클라이언트 프로파일
Administration > Certificates > Trusted Certificates로 이동하여 신뢰할 수 있는 CA를 ISE로 가져오는지 확인합니다.
신뢰할 수 있는 CA
CA를 선택하고 Edit(편집) 버튼을 클릭하여 Certificate Status Validation(인증서 상태 검증)에 대한 OCSP 컨피그레이션의 세부 정보를 입력합니다.
- OCSP 서비스에 대해 확인: ocsp_test_profile
- OCSP가 UNKNOWN 상태를 반환하는 경우 요청 거부: check
- OCSP 응답기에 연결할 수 없는 경우 요청을 거부합니다.
인증서 상태 검증
6단계. 허용되는 프로토콜 추가
Policy(정책) > Results(결과) > Authentication(인증) > Allowed Protocols(허용된 프로토콜)로 이동하고 Default Network Access(기본 네트워크 액세스) 서비스 목록을 수정한 다음 Allow EAP-TLS(EAP-TLS 허용)를 선택합니다.
EAP-TLS 허용
7단계. 정책 집합 추가
Policy(정책) > Policy Sets(정책 세트)로 이동하고 +를 클릭하여 정책 세트를 추가합니다.
- 정책 집합 이름: EAP-TLS-Test
- 조건: RADIUS와 같은 네트워크 액세스 프로토콜
- 허용되는 프로토콜/서버 시퀀스: 기본 네트워크 액세스
정책 집합 추가
8단계. 인증 정책 추가
인증 정책을 추가하려면 Policy Sets(정책 집합)로 이동하고 EAP-TLS-Tests를 클릭합니다.
- 규칙 이름: EAP-TLS-Authentication
- 조건: 네트워크 액세스 EapAuthentication은 EAP-TLS 및 Wired_802.1 X와 같음
- 사용: Identity_AD
인증 정책 추가
9단계. 권한 부여 정책 추가
Policy Sets(정책 집합)로 이동하고 EAP-TLS-Test를 클릭하여 권한 부여 정책을 추가합니다.
- 규칙 이름: EAP-TLS-Authorization
- 조건: CERTIFICATE Subject - Common Name EQUALS clientcertCN(인증서 주체 - 공통 이름이 clientcertCN)
- 결과: Permit Access
권한 부여 정책 추가
다음을 확인합니다.
1단계. 인증 세션 확인
C1000에서 인증 세션을 확인하려면 명령을 실행합니다show authentication sessions interface GigabitEthernet1/0/3 details.
Switch#show authentication sessions interface GigabitEthernet1/0/3 details
Interface: GigabitEthernet1/0/3
MAC Address: b496.9114.398c
IPv6 Address: Unknown
IPv4 Address: 192.168.10.10
User-Name: clientcertCN
Status: Authorized
Domain: DATA
Oper host mode: multi-auth
Oper control dir: both
Session timeout: N/A
Restart timeout: N/A
Periodic Acct timeout: N/A
Session Uptime: 111s
Common Session ID: 01C20065000000933E4E87D9
Acct Session ID: 0x00000078
Handle: 0xB6000043
Current Policy: POLICY_Gi1/0/3
Local Policies:
Service Template: DEFAULT_LINKSEC_POLICY_SHOULD_SECURE (priority 150)
Server Policies:
Method status list:
Method State
dot1x Authc Success
2단계. Radius 라이브 로그 확인
ISE GUI에서 Operations(운영) > RADIUS > Live Log(라이브 로그)로 이동하여 인증을 위한 라이브 로그를 확인합니다.
Radius 라이브 로그
자세한 인증 라이브 로그를 확인합니다.
인증 세부 정보
문제 해결
1. 디버그 로그
이 디버그 로그(prrt-server.log)는 ISE에서 인증의 자세한 동작을 확인하는 데 도움이 됩니다.
// OCSP request and response
Crypto,2024-06-05 09:43:33,064,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, CryptoLib.CSSL.OCSP Callback - starting OCSP request to primary,SSL.cpp:1444
Crypto,2024-06-05 09:43:33,064,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Start processing OCSP request, URL=http://winserver.ad.rem-xxx.com/ocsp, use nonce=1,OcspClient.cpp:144
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Received OCSP server response,OcspClient.cpp:411
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Nonce verification passed,OcspClient.cpp:426
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - OCSP responser name 8CD12ECAB78607FA07194126EDA82BA7789CE00C,OcspClient.cpp:462
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Verify response signature and KU/EKU attributes of response signer certificate,OcspClient.cpp:472
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Response signature verification passed,OcspClient.cpp:482
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Response contains 1 single responses for certificates,OcspClient.cpp:490
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - User certificate status: Good,OcspClient.cpp:598
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, CryptoLib.CSSL.OCSP Callback - perform OCSP request succeeded, status: Good,SSL.cpp:1684
// Radius session
Radius,2024-06-05 09:43:33,120,DEBUG,0x7f982d7b9700,cntx=0000017387,sesn=ise32-01/506864164/73,CPMSessionID=01C20065000000933E4E87D9,CallingStationID=B4-96-91-14-39-8C,RADIUS PACKET:: Code=1(AccessRequest) Identifier=238 Length=324
[1] User-Name - value: [clientcertCN]
[4] NAS-IP-Address - value: [1.x.x.101]
[5] NAS-Port - value: [50103]
[24] State - value: [37CPMSessionID=01C20065000000933E4E87D9;31SessionID=ise32-01/506864164/73;]
[87] NAS-Port-Id - value: [GigabitEthernet1/0/3]
Radius,2024-06-05 09:43:33,270,DEBUG,0x7f982d9ba700,cntx=0000017387,sesn=ise32-01/506864164/73,CPMSessionID=01C20065000000933E4E87D9,user=clientcertCN,CallingStationID=B4-96-91-14-39-8C,RADIUS PACKET:: Code=2(AccessAccept) Identifier=238 Length=294
[1] User-Name - value: [clientcertCN]
Radius,2024-06-05 09:43:33,342,DEBUG,0x7f982d1b6700,cntx=0000017401,sesn=ise32-01/506864164/74,CPMSessionID=01C20065000000933E4E87D9,CallingStationID=B4-96-91-14-39-8C,RADIUS PACKET:: Code=4(AccountingRequest) Identifier=10 Length=286
[1] User-Name - value: [clientcertCN]
[4] NAS-IP-Address - value: [1.x.x.101]
[5] NAS-Port - value: [50103]
[40] Acct-Status-Type - value: [Interim-Update]
[87] NAS-Port-Id - value: [GigabitEthernet1/0/3]
[26] cisco-av-pair - value: [audit-session-id=01C20065000000933E4E87D9]
[26] cisco-av-pair - value: [method=dot1x] ,RADIUSHandler.cpp:2455
Radius,2024-06-05 09:43:33,350,DEBUG,0x7f982e1be700,cntx=0000017401,sesn=ise32-01/506864164/74,CPMSessionID=01C20065000000933E4E87D9,user=clientcertCN,CallingStationID=B4-96-91-14-39-8C,RADIUS PACKET:: Code=5(AccountingResponse) Identifier=10 Length=20,RADIUSHandler.cpp:2455
2. TCP 덤프
ISE의 TCP 덤프에서 OCSP 응답 및 Radius 세션에 대한 정보를 찾을 수 있습니다.
OCSP 요청 및 응답:
OCSP 요청 및 응답의 패킷 캡처
OCSP 응답의 세부사항 캡처
Radius 세션:
Radius 세션의 패킷 캡처
관련 정보
ISE를 사용하여 EAP-TLS 인증 구성
ISE에서 TLS/SSL 인증서 구성