소개
이 문서에서는 FMC에서 관리하는 FTD(Firepower Threat Defense)에서 Secure Client에 대해 다중 인증서 인증을 사용하는 절차에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- RAVPN(Remote Access VPN)에 대한 기본적인 이해
- FMC(Firepower 관리 센터) 경험
- X509 인증서에 대한 기본 지식
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco FTD - 7.6
- Cisco FMC - 7.6
- Windows 11(Cisco Secure Client 5.1.4.74 포함)
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
소프트웨어 버전 7.0 이전의 FTD는 단일 인증서 기반 인증을 지원합니다. 즉, 단일 연결 시도에서 사용자 또는 머신 중 하나만 인증할 수 있습니다.
다중 인증서 기반 인증은 SSL 또는 IKEv2 EAP 단계에서 Secure Clientfor VPN 액세스를 허용하기 위해 사용자 ID 인증서를 인증하는 것 외에도 위협 방어가 머신 또는 디바이스 인증서를 검증하여 디바이스가 기업에서 발급한 디바이스인지 확인하는 기능을 제공합니다.
다중 인증서 인증은 현재 인증서 수를 2개로 제한합니다. 보안 클라이언트는 다중 인증서 인증에 대한 지원을 나타내야 합니다. 그렇지 않으면 게이트웨이가 레거시 인증 방법 중 하나를 사용하거나 연결에 실패합니다.Secure Clientversion 4.4.04030 이상은 다중 인증서 기반 인증을 지원합니다.
설정
FTD의 컨피그레이션
- Devices(.
- Remote Access VPN(원격 액세스 VPN) 정책을 선택하고 Edit(수정)를 클릭합니다.
참고: 원격 액세스 VPN을 구성하지 않은 경우 Add를 클릭하여 새 원격 액세스 VPN 정책을 만듭니다.
- 여러 인증서 인증을 구성하려면 Connection Profile(연결 프로파일)을 선택하고 편집합니다.
- AAA settings(AAA 설정)를 클릭하고 Authentication Method(인증 방법) as Client Certificate Only(클라이언트 인증서 전용) 또는 Client Certificate & AAA(클라이언트 인증서 및 AAA)를 선택합니다.
참고: 클라이언트 인증서 및 AAA 인증 방법을 선택한 경우 인증 서버를 선택합니다.
- Enable multiple certificate authentication(다중 인증서 인증 활성화) 확인란을 선택합니다.
-
클라이언트 인증서에서 사용자 이름을 매핑 할 인증서 중 하나를 선택 합니다.
클라이언트에서 보낸 사용자 이름은 인증서 전용 인증이 활성화된 경우 VPN 세션 사용자 이름으로 사용됩니다. AAA 및 인증서 인증이 활성화된 경우 VPN 세션 사용자 이름은 Prefill 옵션을 기반으로 합니다.
- 클라이언트 인증서의 사용자 이름을 포함하는 Map specific(특정 필드 매핑) 옵션을 선택하면 Primary(기본) 필드와 Secondary(보조) 필드에 기본값이 각각 CN(Common Name) 및 OU(Organizational Unit) OU(Organizational Unit) OU)로 표시됩니다.
연결 프로파일의 AAA 설정
8. Use entire Distinguished Name (DN) as username(전체 고유 이름(DN)을 사용자 이름으로 사용) 옵션을 선택하면 시스템은 사용자 ID를 자동으로 검색합니다. DN은 사용자를 연결 프로파일에 일치시킬 때 식별자로 사용할 수 있는 개별 필드로 구성된 고유한 ID입니다. DN 규칙은 고급 인증서 인증에 사용됩니다.
참고: Client Certificate & AAA authentication(클라이언트 인증서 및 AAA 인증)을 선택한 경우 Prefill username from certificate on user login window(사용자 로그인 창의 인증서에서 사용자 이름 미리 채우기) 옵션을 선택하여 사용자가 Cisco Secure Client의 Secure Client VPN 모듈을 통해 연결할 때 클라이언트 인증서에서 보조 사용자 이름을 미리 채웁니다.
로그인 창에서 사용자 이름 숨기기: 보조 사용자 이름은 클라이언트 인증서에서 미리 채워지지만 사용자가 미리 채워진 사용자 이름을 수정하지 않도록 사용자에게 숨겨집니다.
9. 기타 자세한 컨피그레이션은 FTD에서 보안 클라이언트(AnyConnect) 원격 액세스 VPN 구성을 참조하십시오.
10. 성공적인 검증을 위해 사용자 저장소 인증서 및 머신 저장소 인증서의 CA 인증서를 FTD에 업로드합니다. 이 시나리오에서는 사용자 저장소 인증서 및 머신 저장소 인증서가 동일한 CA에 의해 서명되므로 하나의 CA만 설치하면 됩니다. 사용자 저장소 인증서와 머신 저장소 인증서가 서로 다른 CA에 의해 서명된 경우 두 CA 인증서를 모두 FTD에 업로드해야 합니다.
FMC에서 FTD에 CA 인증서 설치
참고: AnyConnect 클라이언트 프로파일에는 CertificateStore가 All로 설정되어야 하며, 사용자에게 관리자 권한이 없는 경우 CertificateStoreOverride가 true로 설정되어야 합니다.
사용자 컴퓨터의 인증서
이 연결 프로파일에 연결해야 하는 사용자 컴퓨터에는 사용자 저장소 및 컴퓨터 저장소에 유효한 인증서가 설치되어 있어야 합니다.
사용자 저장소의 인증서:
사용자 저장소 인증서
컴퓨터 저장소의 인증서:
컴퓨터 저장소 인증서
다음을 확인합니다.
1. FTD CLI에서 연결 프로파일 컨피그레이션을 확인합니다.
firepower# show run tunnel-group
tunnel-group RA-VPN-Multi-Cert type remote-access
tunnel-group RA-VPN-Multi-Cert general-attributes
address-pool RAVPN-MultiCert-Pool
default-group-policy RAVPN-Multi-Cert-GP
tunnel-group RA-VPN-Multi-Cert webvpn-attributes
authentication multiple-certificate
group-alias RAVPN-MultiCert enable
2. 이 명령을 실행하여 연결을 확인합니다.
firepower# show vpn-sessiondb detail anyconnect
Session Type: AnyConnect Detailed
Username : client.cisco.com Index : 28
Assigned IP : 192.168.13.1 Public IP : 10.106.56.89
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-128 DTLS-Tunnel: (1)AES-GCM-256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA256 DTLS-Tunnel: (1)SHA384
Bytes Tx : 19324 Bytes Rx : 134555
Pkts Tx : 2 Pkts Rx : 1379
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : RAVPN-Multi-Cert-GP Tunnel Group : RA-VPN-Multi-Cert
Login Time : 07:18:53 UTC Wed Mar 19 2025
Duration : 0h:21m:00s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : 0a6a43590001c00067da6fdd
Security Grp : none Tunnel Zone : 0
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 28.1
Public IP : 10.106.56.89
Encryption : none Hashing : none
TCP Src Port : 53927 TCP Dst Port : 443
Auth Mode : Multiple-certificate
Idle Time Out: 30 Minutes Idle TO Left : 9 Minutes
Client OS : win
Client OS Ver: 10.0.22000
Client Type : AnyConnect
Client Ver : Cisco AnyConnect VPN Agent for Windows 5.1.4.74
Bytes Tx : 11581 Bytes Rx : 224
Pkts Tx : 1 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
SSL-Tunnel:
Tunnel ID : 28.2
Assigned IP : 192.168.13.1 Public IP : 10.106.56.89
Encryption : AES-GCM-128 Hashing : SHA256
Ciphersuite : TLS_AES_128_GCM_SHA256
Encapsulation: TLSv1.3 TCP Src Port : 53937
TCP Dst Port : 443 Auth Mode : Multiple-certificate
Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes
Client OS : Windows
Client Type : SSL VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 5.1.4.74
Bytes Tx : 7743 Bytes Rx : 240
Pkts Tx : 1 Pkts Rx : 3
Pkts Tx Drop : 0 Pkts Rx Drop : 0
DTLS-Tunnel:
Tunnel ID : 28.3
Assigned IP : 192.168.13.1 Public IP : 10.106.56.89
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384
Encapsulation: DTLSv1.2 UDP Src Port : 62975
UDP Dst Port : 443 Auth Mode : Multiple-certificate
Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes
Client OS : Windows
Client Type : DTLS VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 5.1.4.74
Bytes Tx : 0 Bytes Rx : 134091
Pkts Tx : 0 Pkts Rx : 1376
Pkts Tx Drop : 0 Pkts Rx Drop : 0
사용자 이름 client.cisco.com은 AAA 섹션에서 맵 사용자 이름 Second Certificate(두 번째 인증서의 맵 사용자 이름)가 선택되었으므로 사용자 저장소 인증서 CN에서 검색됩니다. First Certificate(첫 번째 인증서)를 선택하면 Machine store certificate(machine.cisco.com)에서 사용자 이름이 검색됩니다.
문제 해결
- 유효한 인증서가 사용자 인증서 저장소와 머신 인증서 저장소에 있는지 확인합니다.
- FTD에서 디버그를 수집하여 디버그 암호화 ca 14를 사용한 인증서 검증과 관련된 로그를 확인합니다.
- 사용자 시스템에서 DART를 검토합니다.
작업 시나리오의 DART 로그:
******************************************
Date : 03/19/2025
Time : 00:18:50
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::processResponseStringFromSG
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 12100
[MCA] Multiple client cert auth requested by peer (via AggAuth)
******************************************
Date : 03/19/2025
Time : 00:18:50
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::nextClientCert
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 6774
Subject Name: C=US, ST=California, L=San Jose, O=Cisco Systems Inc., CN=machine.cisco.com
Issuer Name : C=US, O=IdenTrust, OU=HydrantID Trusted Certificate Service, CN=HydrantID Server CA O1
Store : Microsoft Machine
******************************************
Date : 03/19/2025
Time : 00:18:50
Type : Information
Source : csc_vpnapi
Description : Function: CTransportCurlStatic::ClientCertRequestCB
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\CTransportCurlStatic.cpp
Line: 1358
Using client cert: /C=US/ST=California/L=San Jose/O=Cisco Systems Inc./CN=machine.cisco.com
******************************************
Date : 03/19/2025
Time : 00:18:51
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::processResponseStringFromSG
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 12105
[MCA] Client certificate accepted at protocol level
******************************************
Date : 03/19/2025
Time : 00:18:51
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::processResponseStringFromSG
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 12124
[MCA] Received and successfully parsed Multiple Certificate Authentication request from secure gateway.
******************************************
Date : 03/19/2025
Time : 00:18:51
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::nextClientCert
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 6774
Subject Name: C=US, ST=California, L=San Jose, O=Cisco Systems Inc., CN=client.cisco.com
Issuer Name : C=US, O=IdenTrust, OU=HydrantID Trusted Certificate Service, CN=HydrantID Server CA O1
Store : Microsoft User
******************************************
Date : 03/19/2025
Time : 00:18:51
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::processIfcData
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 4129
[MCA] Second certificate for Multiple Certificate Authentication found - now sending 2nd certificate to secure gateway.
******************************************
Date : 03/19/2025
Time : 00:18:51
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::userResponse
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 1690
Processing user response.
******************************************
Date : 03/19/2025
Time : 00:18:52
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::createMultiCertAuthReplyXML
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 17127
[MCA] Successfully signed Multiple Certificate Authentication data with 2nd certificate
******************************************
Date : 03/19/2025
Time : 00:18:52
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::sendResponse
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 6522
[MCA] Multiple Certificate Authentication response ready to send to secure gateway
******************************************
Date : 03/19/2025
Time : 00:18:52
Type : Information
Source : csc_vpnapi
Description : Message type prompt sent to the user:
Your client certificate will be used for authentication
******************************************
Date : 03/19/2025
Time : 00:18:53
Type : Information
Source : csc_vpnapi
Description : Function: CVpnApiShim::SaveUserPrompt
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\ApiShim\ApiShim.cpp
Line: 3538
User submitted response for host ftdha.cisco.com and tunnel group: RAVPN-MultiCert
******************************************
Date : 03/19/2025
Time : 00:18:53
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::userResponse
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 1690
Processing user response.
******************************************
Date : 03/19/2025
Time : 00:18:53
Type : Information
Source : csc_vpnapi
Description : Function: ConnectMgr::processIfcData
File: C:\temp\build\thehoff\Raccoon_MR40.765445939442\Raccoon_MR4\vpn\Api\ConnectMgr.cpp
Line: 3815
Authentication succeeded
******************************************