簡介
本文檔介紹如何使用本地使用者資料庫為AnyConnect安全套接字層(SSL) VPN配置整合服務路由器(ISR) 4k Cisco IOS® XE頭端的示例配置。
必要條件
需求
思科建議您瞭解以下主題:
- Cisco IOS XE (ISR 4K)
- AnyConnect安全移動客戶端
- 一般SSL作業
- 公開金鑰基礎架構 (PKI)
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- 思科ISR4451-X/K9路由器,版本17.9.2a
- AnyConnect安全行動化使用者端4.10.04065
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
SSL虛擬私人網路(VPN)功能在Cisco IOS XE軟體中提供支援,讓遠端使用者可從網際網路上的任何位置存取企業網路。遠端訪問透過支援Secure Socket Layer(支援SSL)的SSL VPN網關提供。SSL VPN網關允許遠端使用者建立安全VPN隧道。使用Cisco IOS XE SSL VPN,終端使用者可以從家裡或任何支援網際網路的位置(如無線熱點)安全地訪問網路。思科IOS XE SSL VPN還使公司能夠向境外合作夥伴和顧問擴展企業網路訪問,以實現企業資料保護。
特定平台支援此功能:
平台 |
支援的Cisco IOS XE版本 |
Cisco Cloud Services Router 1000V系列 |
Cisco IOS XE版本16.9 |
Cisco Catalyst 8000V |
Cisco IOS XE班加羅爾17.4.1 |
思科4461整合式服務路由器 思科4451整合式服務路由器 思科4431整合式服務路由器 |
Cisco IOS XE庫比蒂諾17.7.1a |
設定
網路圖表
組態
1. 啟用身份驗證、授權和記帳(AAA),配置身份驗證、授權清單並將使用者名稱增加到本地資料庫。
aaa new-model
!
aaa authentication login default local
aaa authorization exec default local
aaa authorization network default local
!
username test password cisco123
2. 建立信任點以安裝身份證書(如果本地身份驗證中尚未提供身份證書)。有關證書建立的詳細資訊,請參閱PKI證書註冊。
crypto pki trustpoint SSL
enrollment mode ra
enrollment url http://x.x.x.x:80/certsrv/mscep/mscep.dll
subject-name cn=sslvpn.cisco.com
revocation-check crl
rsakeypair SSL-Keys
3. 配置SSL方案。
crypto ssl proposal SSL_Proposal
protection rsa-3des-ede-sha1 rsa-aes128-sha1
4. 配置SSL策略並呼叫SSL方案和PKI信任點。
crypto ssl policy SSL_Policy
ssl proposal SSL_Proposal
pki trustpoint SSL sign
ip address local y.y.y.y port 443
no shut
y.y.y.y是GigabitEthernet0/0/0的IP地址。
5. (可選)配置用於分割隧道的標準訪問清單。此訪問清單包含可以透過VPN隧道訪問的目的網路。預設情況下,如果未配置分割隧道,則所有流量都會透過VPN隧道(全隧道)。
ip access-list standard split_tunnel_acl
10 permit 192.168.10.0 0.0.0.255
6. 建立IPv4地址池。
ip local pool SSLVPN_POOL 192.168.20.1 192.168.20.10
在成功的AnyConnect連線期間,建立的IP地址池會向AnyConnect客戶端分配IPv4地址。
7. 上傳AnyConnect頭端映像(webdeploy)到bootflash的webvpn 目錄下,並將客戶端配置檔案上傳到路由器的bootflash。
mkdir bootflash:webvpn
對於Anyconnect軟體套件:
copy tftp: bootflash:webvpn:
對於客戶端配置檔案:
copy tftp: bootflash:
按指定定義AnyConnect映像和客戶端配置檔案:
crypto vpn anyconnect bootflash:/webvpn/anyconnect-win-4.10.04065-webdeploy-k9.pkg sequence 1
!
crypto vpn anyconnect profile sslvpn_client_profile bootflash:/sslvpn_client_profile.xml
8. 配置授權策略。
crypto ssl authorization policy SSL_Author_Policy
rekey time 1110
client profile sslvpn_client_profile
mtu 1000
keepalive 500
dpd-interval client 1000
netmask 255.255.255.0
pool SSLVPN_POOL
dns 8.8.8.8
banner This is SSL VPN tunnel.
route set access-list split_tunnel_acl
IP池、DNS、拆分隧道清單等在授權策略下指定。
9. 配置從中克隆虛擬訪問介面的虛擬模板。
interface Virtual-Template1 type vpn
ip unnumbered GigabitEthernet0/0/0
ip mtu 1400
ip tcp adjust-mss 1300
unnumbered命令從配置的介面(GigabitEthernet0/0/0)獲取IP地址,並且在該介面上啟用了IPv4路由。
10. 配置SSL配置檔案,並將在其下建立的SSL策略、身份驗證和授權引數以及虛擬模板進行匹配。
crypto ssl profile SSL_Profile
match policy SSL_Policy
aaa authentication user-pass list default
aaa authorization group user-pass list default SSL_Author_Policy
authentication remote user-pass
virtual-template 1
在AnyConnect配置檔案編輯器的幫助下建立AnyConnect配置檔案。系統會提供XML設定檔的程式碼片段供您參考。
!
!
<ClientInitialization>
<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>
<AutomaticCertSelection UserControllable="true">true</AutomaticCertSelection>
<ShowPreConnectMessage>false</ShowPreConnectMessage>
<CertificateStore>All</CertificateStore>
<CertificateStoreMac>All</CertificateStoreMac>
<CertificateStoreOverride>false</CertificateStoreOverride>
<ProxySettings>Native</ProxySettings>
<AllowLocalProxyConnections>false</AllowLocalProxyConnections>
<AuthenticationTimeout>30</AuthenticationTimeout>
<AutoConnectOnStart UserControllable="true">false</AutoConnectOnStart>
<MinimizeOnConnect UserControllable="true">true</MinimizeOnConnect>
<LocalLanAccess UserControllable="true">false</LocalLanAccess>
<DisableCaptivePortalDetection UserControllable="false">false</DisableCaptivePortalDetection>
<ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin>
<IPProtocolSupport>IPv4,IPv6</IPProtocolSupport>
<AutoReconnect UserControllable="false">true
<AutoReconnectBehavior UserControllable="false">ReconnectAfterResume</AutoReconnectBehavior>
</AutoReconnect>
<SuspendOnConnectedStandby>false</SuspendOnConnectedStandby>
<AutoUpdate UserControllable="false">true</AutoUpdate>
<RSASecurIDIntegration UserControllable="false">Automatic</RSASecurIDIntegration>
<WindowsLogonEnforcement>SingleLocalLogon</WindowsLogonEnforcement>
<LinuxLogonEnforcement>SingleLocalLogon</LinuxLogonEnforcement>
<WindowsVPNEstablishment>AllowRemoteUsers</WindowsVPNEstablishment>
<LinuxVPNEstablishment>LocalUsersOnly</LinuxVPNEstablishment>
<AutomaticVPNPolicy>false</AutomaticVPNPolicy>
<PPPExclusion UserControllable="false">Automatic
<PPPExclusionServerIP UserControllable="false"></PPPExclusionServerIP>
</PPPExclusion>
<EnableScripting UserControllable="false">false</EnableScripting>
<EnableAutomaticServerSelection UserControllable="true">false
<AutoServerSelectionImprovement>20</AutoServerSelectionImprovement>
<AutoServerSelectionSuspendTime>4</AutoServerSelectionSuspendTime>
</EnableAutomaticServerSelection>
<RetainVpnOnLogoff>false
</RetainVpnOnLogoff>
<CaptivePortalRemediationBrowserFailover>false</CaptivePortalRemediationBrowserFailover>
<AllowManualHostInput>true</AllowManualHostInput>
</ClientInitialization>
<ServerList>
<HostEntry>
<HostName>SSLVPN</HostName>
<HostAddress>sslvpn.cisco.com</HostAddress>
</HostEntry>
</ServerList>
!
驗證
使用本節內容,確認您的組態是否正常運作。
1. Check the ssl connection parameters for your anyconnect connection
sslvpn# show crypto ssl session user test
Interface : Virtual-Access1
Session Type : Full Tunnel
Client User-Agent : AnyConnect Windows 4.10.04065
Username : test Num Connection : 1
Public IP : 10.106.52.195
Profile : SSL_Profile
Policy : SSL_Policy
Last-Used : 00:03:58 Created : *05:11:06.166 UTC Wed Feb 22 2023
Tunnel IP : 192.168.20.10 Netmask : 255.255.255.0
Rx IP Packets : 174 Tx IP Packets : 142
2. Verify the SSL session status
sslvpn# show crypto ssl session
SSL profile name: SSL_Profile
Client_Login_Name Client_IP_Address No_of_Connections Created Last_Used
test 10.106.52.195 1 00:03:32 00:03:32
3. Verify the tunnel statistics for the active connection
sslvpn# show crypto ssl stats tunnel
SSLVPN Profile name : SSL_Profile
Tunnel Statistics:
Active connections : 1
Peak connections : 1 Peak time : 5d12h
Connect succeed : 10 Connect failed : 0
Reconnect succeed : 38 Reconnect failed : 0
IP Addr Alloc Failed : 0 VA creation failed : 0
DPD timeout : 0
Client
in CSTP frames : 129 in CSTP control : 129
in CSTP data : 0 in CSTP bytes : 1516
out CSTP frames : 122 out CSTP control : 122
out CSTP data : 0 out CSTP bytes : 1057
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
4. Check the actual configuration applied for the Virtual-Acces interface associated with client
sslvpn# show derived-config interface virtual-access 1
Building configuration...
Derived configuration : 171 bytes
!
interface Virtual-Access1
description ***Internally created by SSLVPN context profile1***
ip unnumbered GigabitEthernet0/0/0
ip mtu 1400
ip tcp adjust-mss 1300
疑難排解
本節提供的資訊可用於對組態進行疑難排解。
1. 要從頭端收集的SSL調試:
debug crypto ssl condition client username <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. 來自AnyConnect客戶端的DART。