소개
이 문서에서는 로컬 사용자 데이터베이스를 사용하여 AnyConnect SSL VPN용 Cisco IOS XE Headend C8000v를 구성하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
목이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- 버전 17.16.01a를 실행하는 Cisco Catalyst 8000V(C8000V)
- Cisco Secure Client 버전 5.1.8.105
- Cisco Secure Client가 설치된 클라이언트 PC
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
Cisco IOS XE SSL(Secure Socket Layer) VPN은 통합된 데이터, 음성 및 무선 플랫폼에서 업계 최고의 보안 및 라우팅 기능과 통합된 SSL VPN 원격 액세스 연결을 제공하는 라우터 기반 솔루션입니다. Cisco IOS XE SSL VPN을 통해 최종 사용자는 집이나 무선 핫스팟과 같은 인터넷 사용 위치에서 안전하게 액세스할 수 있습니다. 또한 Cisco IOS XE SSL VPN을 통해 기업은 기업 네트워크 액세스를 해외 파트너 및 컨설턴트에게 확장하여 기업 데이터를 항상 보호할 수 있습니다.
이 기능은 지정된 플랫폼에서 지원됩니다.
플랫폼
|
지원되는 Cisco IOS XE 릴리스
|
Cisco Cloud Services Router 1000V 시리즈
|
Cisco IOS XE 릴리스 16.9
|
Cisco Catalyst 8000V
|
Cisco IOS XE Bengaluru 17.4.1
|
Cisco 4461 Integrated Services Router
Cisco 4451 Integrated Services Router
Cisco 4431 Integrated Services Router
|
Cisco IOS XE Cupertino 17.7.1a
|
구성
네트워크 다이어그램
기본 네트워크 다이어그램
설정
- AAA를 활성화하고, 인증, 권한 부여 목록을 구성하고, 로컬 데이터베이스에 사용자 이름을 추가합니다.
aaa new-model
!
aaa authentication login SSLVPN_AUTHEN local
aaa authorization network SSLVPN_AUTHOR local
!
username test password cisco123
경고: aaa new-model 명령은 모든 회선 및 인터페이스에 로컬 인증을 즉시 적용합니다(콘솔 회선 con 0 제외). 이 명령이 활성화된 후 텔넷 세션이 라우터에 열리면(또는 연결 시간이 초과되어 다시 연결해야 하는 경우) 사용자는 라우터의 로컬 데이터베이스를 사용하여 인증해야 합니다. AAA 컨피그레이션을 시작하기 전에 라우터에서 사용자 이름과 비밀번호를 정의하는 것이 좋습니다. 그러면 라우터에서 잠기지 않습니다.
팁: AAA 명령을 구성하기 전에 컨피그레이션을 저장합니다. AAA 컨피그레이션을 완료하고 올바르게 작동한 후에만 컨피그레이션을 다시 저장할 수 있습니다. 이렇게 하면 라우터를 다시 로드하여 변경 사항을 롤백할 수 있으므로 예기치 않은 잠금이 발생하는 경우에도 복구할 수 있습니다.
2. RSA(Rivest-Shamir-Adleman) 키 쌍을 생성합니다.
crypto key generate rsa label AnyConnect modulus 2048 exportable
3. 라우터의 ID 인증서를 설치할 신뢰 지점을 만듭니다. 인증서 생성에 대한 자세한 내용은 PKI에 대한 인증서 등록 구성 방법을 참조할 수 있습니다.
crypto pki trustpoint TP_AnyConnect
enrollment terminal
fqdn sslvpn-c8kv.example.com
subject-name cn=sslvpn-c8kv.example.com
subject-alt-name sslvpn-c8kv.example.com
revocation-check none
rsakeypair AnyConnect
참고: 주체 이름의 CN(Common Name)은 사용자가 보안 게이트웨이(C8000V)에 연결하는 데 사용하는 IP 주소 또는 FQDN(Fully Qualified Domain Name)으로 구성해야 합니다. 필수 사항은 아니지만 CN을 올바르게 입력하면 사용자가 로그인할 때 발생하는 인증서 오류의 수를 줄일 수 있습니다.
4. Cisco Secure Client에 주소를 할당하기 위한 IP 로컬 풀을 정의합니다.
ip local pool SSLVPN_POOL 192.168.13.1 192.168.13.10
5. (선택 사항) 스플릿 터널에 사용할 표준 액세스 목록을 구성합니다. 이 액세스 목록은 VPN 터널을 통해 액세스할 수 있는 대상 네트워크로 구성됩니다. 스플릿 터널이 구성되지 않은 경우 기본적으로 모든 트래픽이 VPN 터널(전체 터널)을 통과합니다.
ip access-list standard split-tunnel-acl
10 permit 192.168.11.0 0.0.0.255
20 permit 192.168.12.0 0.0.0.255
6.HTTP 보안 서버를 비활성화합니다.
7. SSL 제안을 구성합니다.
crypto ssl proposal ssl_proposal
protection rsa-aes128-sha1 rsa-aes256-sha1
8. SSL 정책을 구성하고 SSL 제안서 및 PKI 신뢰 지점을 호출합니다.
crypto ssl policy ssl_policy
ssl proposal ssl_proposal
pki trustpoint TP_AnyConnect sign
ip interface GigabitEthernet1 port 443
SSL 정책은 SSL 협상 중에 사용할 제안 및 신뢰 지점을 정의합니다. SSL 협상에 포함된 모든 매개변수의 컨테이너 역할을 합니다. 정책 선택은 정책 아래에 구성된 세션 매개변수에 대해 세션 매개변수를 일치시켜 수행됩니다.
9 . (선택 사항) Cisco Secure Client Profile Editor Cisco Secure Client Profile Editor의 도움을 받아 AnyConnect 프로파일을 생성합니다. 프로필에 해당하는 XML 코드 조각이 참조용으로 제공됩니다.
true
true
false
All
All
All
false
Native
true
30
false
true
false
false
true
IPv4,IPv6
true
ReconnectAfterResume
false
true
Automatic
SingleLocalLogon
SingleLocalLogon
AllowRemoteUsers
LocalUsersOnly
false
Disable
false
false
20
4
false
false
true
SSL_C8KV
sslvpn-c8kv.example.com
10. 생성된 XML 프로파일을 라우터의 플래시 메모리에 업로드하고 프로파일을 정의합니다.
crypto vpn anyconnect profile acvpn bootflash:/acvpn.xml
11. SSL 권한 부여 정책을 구성합니다.
crypto ssl authorization policy ssl_author_policy
client profile acvpn
pool SSLVPN_POOL
dns 192.168.11.100
banner Welcome to C8kv SSLVPN
def-domain example.com
route set access-list split-tunnel-acl
SSL 권한 부여 정책은 원격 클라이언트에 푸시되는 권한 부여 매개변수의 컨테이너입니다. 권한 부여 정책은 SSL 프로파일에서 참조됩니다.
12. 가상 액세스 인터페이스를 복제할 가상 템플릿을 구성합니다.
interface Virtual-Template2 type vpn
ip unnumbered GigabitEthernet1
ip mtu 1400
ip tcp adjust-mss 1300
13. SSL 프로필을 구성하고 인증, 계정 목록 및 가상 템플릿을 정의합니다.
crypto ssl profile ssl_prof
match policy ssl_policy
match url https://sslvpn-c8kv.example.com
aaa authentication user-pass list SSLVPN_AUTHEN
aaa authorization group user-pass list SSLVPN_AUTHOR ssl_author_policy
authentication remote user-pass
virtual-template 2
프로필 선택은 정책 및 URL 값에 따라 달라집니다.
참고: 정책 및 URL은 SSL VPN 프로필에 대해 고유해야 하며 세션을 실행하려면 하나 이상의 권한 부여 방법을 지정해야 합니다.
이러한 항목은 SSL 프로필에서 사용됩니다.
- match policy - match 명령문을 사용하여 SSL 정책 이름 ssl_policy에서 클라이언트에 대한 SSL 프로필 ssl_prof를 선택합니다.
- match url - URL sslvpn-c8kv.example.com디렉토리에서 클라이언트에 대한 SSL 프로파일 ssl_prof를 선택하기 위해 명령문을 일치시킵니다.
- aaa authentication user-pass list - 인증 중에 SSLVPN_AUTHEN 목록이 사용됩니다.
- aaa authorization group user-pass list - 권한 부여 중에 네트워크 목록 SSLVPN_AUTHOR가 권한 부여 정책 ssl_author_policy와 함께 사용됩니다.
- authentication remote user-pass - 사용자 이름/비밀번호를 기반으로 하는 원격 클라이언트의 인증 모드를 정의합니다.
- virtual-template 2 - 복제할 가상 템플릿을 정의합니다.
연결 흐름
SSL VPN 연결 설정 중에 Cisco Secure Client와 Secure Gateway 간에 발생하는 이벤트에 대한 자세한 내용은 AnyConnect SSL VPN 연결 흐름 이해 문서를 참조하십시오
Cisco Secure Client(AnyConnect) - C8000v 하이 레벨 연결 흐름
상위 레벨 연결 흐름 1
상위 레벨 연결 흐름 2
다음을 확인합니다.
1. 인증을 테스트하려면 Cisco Secure Client에서 FQDN(Fully Qualified Domain Name) 또는 IP 주소 C8000v로 연결한 다음 자격 증명을 입력합니다.
주의: C8000v는 헤드엔드에서 클라이언트 소프트웨어 다운로드를 지원하지 않습니다. Cisco Secure Client가 PC에 미리 설치되어 있어야 합니다.
Cisco 보안 클라이언트 연결 시도
참고: Cisco Secure Client를 새로 설치하면(XML 프로파일이 추가되지 않음) Cisco Secure Client 주소 표시줄에 VPN 게이트웨이의 FQDN을 수동으로 입력할 수 있습니다. 로그인에 성공하면 Cisco Secure Client는 기본적으로 XML 프로파일 다운로드를 시도합니다. 그러나 프로필이 GUI에 나타나려면 Cisco Secure Client를 다시 시작해야 합니다. Cisco Secure Client 창을 닫는 것만으로는 충분하지 않습니다. 프로세스를 다시 시작하려면 Windows 트레이에서 Cisco Secure Client 아이콘을 마우스 오른쪽 단추로 클릭하고 Quit 옵션을 선택합니다.
2. 연결이 설정되면 왼쪽 하단 모서리에 있는 기어 아이콘을 클릭하고 AnyConnect VPN > 통계로 이동합니다. 표시된 정보가 연결 및 주소 정보와 일치하는지 확인합니다.
Cisco Secure Client(AnyConnect) 통계
3. AnyConnectVPN > Route details로 이동합니다. 표시된 정보가 보안 경로와 비보안 경로에 해당하는지 확인합니다.
Cisco Secure Client(AnyConnect) 경로 세부 정보
C8000v에서 컨피그레이션이 제대로 작동하는지 확인하려면 이 섹션을 사용합니다.
1. ssl 세션 정보를 표시하려면 - 암호화 ssl session{user user-name |profile profile-name}
sal_c8kv#show crypto ssl session user test
Interface : Virtual-Access1
Session Type : Full Tunnel
Client User-Agent : AnyConnect Windows 5.1.8.105
Username : test Num Connection : 1
Public IP : 10.106.69.69
Profile : ssl_prof
Policy : ssl_policy
Last-Used : 00:41:40 Created : *15:25:47.618 UTC Mon Mar 3 2025
Tunnel IP : 192.168.13.3 Netmask : 0.0.0.0
Rx IP Packets : 542 Tx IP Packets : 410
sal_c8kv#show crypto ssl session profile ssl_prof
SSL profile name: ssl_prof
Client_Login_Name Client_IP_Address No_of_Connections Created Last_Used
cisco 10.106.69.69 1 00:49:41 00:49:41
2. ssl vpn 통계를 표시하려면 show crypto ssl stats [profile profile-name] [tunnel] [¶ detail]
sal_c8kv#show crypto ssl stats tunnel profile ssl_prof
SSLVPN Profile name : ssl_prof
Tunnel Statistics:
Active connections : 1
Peak connections : 1 Peak time : 1d23h
Connect succeed : 13 Connect failed : 0
Reconnect succeed : 0 Reconnect failed : 0
IP Addr Alloc Failed : 0 VA creation failed : 0
DPD timeout : 0
Client
in CSTP frames : 23 in CSTP control : 23
in CSTP data : 0 in CSTP bytes : 872
out CSTP frames : 11 out CSTP control : 11
out CSTP data : 0 out CSTP bytes : 88
cef in CSTP data frames : 0 cef in CSTP data bytes : 0
cef out CSTP data frames : 0 cef out CSTP data bytes : 0
Server
In IP pkts : 0 In IP bytes : 0
In IP6 pkts : 0 In IP6 bytes : 0
Out IP pkts : 0 Out IP bytes : 0
Out IP6 pkts : 0 Out IP6 bytes : 0
3. 클라이언트와 연결된 Virtual-Access 인터페이스에 적용된 실제 구성을 확인합니다.
sal_c8kv#show derived-config interface Virtual-Access1
Building configuration...
Derived configuration : 143 bytes
!
interface Virtual-Access1
description ***Internally created by SSLVPN context ssl_prof***
ip unnumbered GigabitEthernet1
ip mtu 1400
end
문제 해결
이 섹션에서는 설정 문제 해결에 사용할 수 있는 정보를 제공합니다.
1. 헤드엔드와 클라이언트 간의 협상을 확인하기 위한 SSL 디버깅
debug crypto ssl condition client username
debug crypto ssl aaa
debug crypto ssl aggr-auth message
debug crypto ssl aggr-auth packets
debug crypto ssl tunnel errors
debug crypto ssl tunnel events
debug crypto ssl tunnel packets
debug crypto ssl package
2 . SSL 컨피그레이션을 확인하기 위한 몇 가지 추가 명령입니다.
# show crypto ssl authorization policy
# show crypto ssl diagnose error
# show crypto ssl policy
# show crypto ssl profile
# show crypto ssl proposal
# show crypto ssl session profile <profile_name>
# show crypto ssl session user <username> detail
# show crypto ssl session user <username> platform detail
3. Cisco Secure Client용 진단 및 보고 툴(DART)
DART 번들을 수집하려면 Run DART to Collect Data for Troubleshooting에 설명된 단계를 수행합니다
성공적인 연결의 샘플 디버깅:
debug crypto ssl
debug crypto ssl tunnel events
debug crypto ssl tunnel errors
*Mar 3 16:47:11.141: CRYPTO-SSL: sslvpn process rcvd context queue event
*Mar 3 16:47:14.149: CRYPTO-SSL: Chunk data written..
buffer=0x726BCA8891B8 total_len=621 bytes=621 tcb=0x0
*Mar 3 16:47:15.948: %SSLVPN-5-LOGIN_AUTH_PASSED: vw_ctx: ssl_prof vw_gw: ssl_policy remote_ip: 10.106.69.69 user_name: cisco, Authentication successful, user logged in
*Mar 3 16:47:15.948: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: cisco] [Source: LOCAL] [localport: 0] at 16:47:15 UTC Mon Mar 3 2025
*Mar 3 16:47:15.949: CRYPTO-SSL: Chunk data written..
buffer=0x726BCA8891E0 total_len=912 bytes=912 tcb=0x0
*Mar 3 16:47:17.698: CRYPTO-SSL: sslvpn process rcvd context queue event
*Mar 3 16:47:20.755: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] CSTP Version recd , using 1
*Mar 3 16:47:20.755: [CRYPTO-SSL-TUNL-ERR]: IPv6 local addr pool not found
*Mar 3 16:47:20.755: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] No free IPv6 available, disabling IPv6
*Mar 3 16:47:20.755: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0]
SSLVPN reuqesting a VA creation
*Mar 3 16:47:20.755: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] Per Tunnel Vaccess cloning 2 request sent
*Mar 3 16:47:20.760: %SYS-5-CONFIG_P: Configured programmatically by process VTEMPLATE Background Mgr from console as console
*Mar 3 16:47:20.760: [CRYPTO-SSL-TUNL-EVT]:[0] VACCESS: Received VACCESS PER TUNL EVENT response.
*Mar 3 16:47:20.760: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] VACCESS: Received vaccess Virtual-Access1 from VT manager
*Mar 3 16:47:20.760: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] VACCESS: Cloning Per Tunnel Vaccess
*Mar 3 16:47:20.760: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] VACCESS: Interface Vi1 assigned to Session User cisco
*Mar 3 16:47:20.761: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] Allocating IP 192.168.13.4 from address-pool SSLVPN_POOL
*Mar 3 16:47:20.761: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] Using new allocated IP 192.168.13.4 0.0.0.0
*Mar 3 16:47:20.761: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state to up
*Mar 3 16:47:20.763: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] Full Tunnel CONNECT request processed, HTTP reply created
*Mar 3 16:47:20.763: HTTP/1.1 200 OK
*Mar 3 16:47:20.763: Server: Cisco IOS SSLVPN
*Mar 3 16:47:20.763: X-CSTP-Version: 1
*Mar 3 16:47:20.763: X-CSTP-Address: 192.168.13.4
*Mar 3 16:47:20.763: X-CSTP-Netmask: 0.0.0.0
*Mar 3 16:47:20.763: X-CSTP-DNS: 192.168.11.100
*Mar 3 16:47:20.764: X-CSTP-Lease-Duration: 43200
*Mar 3 16:47:20.764: X-CSTP-MTU: 1406
*Mar 3 16:47:20.764: X-CSTP-Default-Domain: example.com
*Mar 3 16:47:20.764: X-CSTP-Split-Include: 192.168.11.0/255.255.255.0
*Mar 3 16:47:20.764: X-CSTP-Split-Include: 192.168.12.0/255.255.255.0
*Mar 3 16:47:20.764: X-CSTP-Split-Include: 192.168.11.0/255.255.255.0
*Mar 3 16:47:20.764: X-CSTP-Split-Include: 192.168.12.0/255.255.255.0
*Mar 3 16:47:20.765: X-CSTP-Rekey-Time: 3600
*Mar 3 16:47:20.765: X-CSTP-Rekey-Method: new-tunnel
*Mar 3 16:47:20.765: X-CSTP-DPD: 300
*Mar 3 16:47:20.765: X-CSTP-Disconnected-Timeout: 0
*Mar 3 16:47:20.765: X-CSTP-Idle-Timeout: 1800
*Mar 3 16:47:20.765: X-CSTP-Session-Timeout: 43200
*Mar 3 16:47:20.765: X-CSTP-Keepalive: 30
*Mar 3 16:47:20.765: X-CSTP-Smartcard-Removal-Disconnect: false
*Mar 3 16:47:20.766: X-CSTP-Include-Local_LAN: false
*Mar 3 16:47:20.766: [CRYPTO-SSL-TUNL-EVT]:[726BCA848AB0] For User cisco, DPD timer started for 300 seconds
*Mar 3 16:47:20.766: CRYPTO-SSL: Chunk data written..
buffer=0x726BCA8891E0 total_len=693 bytes=693 tcb=0x0
*Mar 3 16:47:21.762: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to up
관련 정보