copy tftp: flash:/webvpn/
Address or name of remote host []? 192.168.100.100
Source filename []? anyconnect-win-3.1.08009-k9.pkg
Destination filename [/webvpn/anyconnect-win-3.1.08009-k9.pkg]?
Accessing tftp://192.168.100.100/anyconnect-win-3.1.08009-k9.pkg...
Loading anyconnect-win-3.1.08009-k9.pkg from 192.168.100.100 (via GigabitEthernet0): !!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 37997096 bytes]
37997096 bytes copied in 117.644 secs (322984 bytes/sec)
將AnyConnect映像複製到路由器的快閃記憶體後,必須通過命令列進行安裝。當您在安裝命令末尾指定序列號時,可以安裝多個AnyConnect軟體包。這樣,路由器就可以充當多個客戶端作業系統的頭端。安裝AnyConnect軟體包時,如果最初未將其複製到flash:/webvpn/ directory,它也會將其移動到。
crypto vpn anyconnect flash:/webvpn/anyconnect-win-3.1.08009-k9.pkg sequence 1 SSLVPN Package SSL-VPN-Client (seq:1): installed successfully
在15.2(1)T之前發佈的代碼版本中,安裝PKG的命令略有不同。
webvpn install svc flash:/webvpn/anyconnect-win-3.1.08009-k9.pkg sequence 1
步驟 3.生成RSA金鑰對和自簽名證書
當您配置SSL或實施公鑰基礎架構(PKI)和數位證書的任何功能時,需要使用Rivest-Shamir-Adleman(RSA)金鑰對來簽署證書。此命令生成RSA金鑰對,然後在生成自簽名PKI證書時使用該金鑰對。使用2048位的模數不是必需的,但建議使用可用於增強安全性及與AnyConnect客戶端電腦相容的最大模數。還建議使用通過金鑰管理進行分配的描述性金鑰標籤。金鑰生成可以通過命令確show crypto key mypubkey rsa 認。
註:由於RSA金鑰可匯出時存在許多安全風險,因此建議做法是確保金鑰配置為不可匯出(這是預設設定)。使RSA金鑰可匯出時涉及的風險將在本文檔中討論:在PKI中部署RSA金鑰。
crypto key generate rsa label SSLVPN_KEYPAIR modulus 2048
The name for the keys will be: SSLVPN_KEYPAIR
% The key modulus size is 2048 bits
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 3 seconds)
show crypto key mypubkey rsa SSLVPN_KEYPAIR
% Key pair was generated at: 14:01:34 EDT May 21 2015
Key name: SSLVPN_KEYPAIR
Key type: RSA KEYS
Storage Device: not specified
Usage: General Purpose Key
Key is not exportable.
Key Data:
30820122 300D0609 2A864886 F70D0101 01050003 82010F00 3082010A 02820101
00C4C7D6 F9533CD3 A5489D5A 4DC3BAE7 6831E832 7326E322 CBECC41C 8395A5F7
4613AF70 827F581E 57F72074 FD803EEA 693EBACC 0EE5CA65 5D1875C2 2F19A432
84188F61 4E282EC3 D30AE4C9 1F2766EF 48269FE2 0C1AECAA 81511386 1BA6709C
7C5A2A40 2FBB3035 04E3770B 01155368 C4A5B488 D38F425C 23E430ED 80A8E2BD
E713860E F654695B C1780ED6 398096BC 55D410DB ECC0E2D9 2621E1AB A418986D
39F241FE 798EF862 9D5EAEEB 5B06D73B E769F613 0FCE2585 E5E6DFF3 2E48D007
3443AD87 0E66C2B1 4E0CB6E9 81569DF2 DB0FE9F1 1A9E737F 617DC68B 42B78A8B
952CD997 78B96CE6 CB623328 C2C5FFD6 18C5DA2C 2EAFA936 5C866DE8 5184D2D3
6D020301 0001
成功生成RSA金鑰對後,必須使用此路由器資訊和RSA金鑰對配置PKI信任點。Subject-Name中的公用名稱(CN)可以配置使用者用於連線到AnyConnect網關的IP地址或完全限定域名(FQDN)。在此示例中,客戶端在嘗試連 fdenofa-SSLVPN.cisco.com 接時使用FQDN。雖然這不是強制性的,但當您正確輸入CN時,它有助於減少登入時提示的證書錯誤數量。
註:可以使用第三方CA頒發的證書,而不是使用路由器生成的自簽名證書。這可以通過幾種不同的方法完成,如本文中所述:為PKI配置證書註冊。
crypto pki trustpoint SSLVPN_CERT enrollment selfsigned subject-name CN=fdenofa-SSLVPN.cisco.com rsakeypair SSLVPN_KEYPAIR
正確定義信任點後,路由器必須使用命令生成證crypto pki enroll 書。通過此過程,可以指定一些其他引數,如序列號和IP地址;但這不是必需的。可使用命令確認證書生show crypto pki certificates 成。
crypto pki enroll SSLVPN_CERT % Include the router serial number in the subject name? [yes/no]: no % Include an IP address in the subject name? [no]: no Generate Self Signed Router Certificate? [yes/no]: yes Router Self Signed Certificate successfully created show crypto pki certificates SSLVPN_CERT Router Self-Signed Certificate Status: Available Certificate Serial Number (hex): 01 Certificate Usage: General Purpose Issuer: hostname=fdenofa-892.fdenofa.lab cn=fdenofa-SSLVPN.cisco.com Subject: Name: fdenofa-892.fdenofa.lab hostname=fdenofa-892.fdenofa.lab cn=fdenofa-SSLVPN.cisco.com Validity Date: start date: 18:54:04 EDT Mar 30 2015 end date: 20:00:00 EDT Dec 31 2019 Associated Trustpoints: SSLVPN_CERT
步驟 4.配置本地VPN使用者帳戶
雖然可以使用外部身份驗證、授權和記帳(AAA)伺服器;在本示例中,使用本地身份驗證。這些命令建立使用者名稱VPNUSER,並建立名為SSLVPN_AAA的AAA身份驗證清單。
aaa new-model aaa authentication login SSLVPN_AAA local username VPNUSER password TACO
步驟 5.定義客戶端要使用的地址池和拆分隧道訪問清單
必須建立本地IP地址池,AnyConnect客戶端介面卡才能獲取IP地址。確保配置足夠大的池以支援最大數量的同步AnyConnect客戶端連線。
預設情況下,AnyConnect以全隧道模式運行,這意味著客戶端電腦生成的任何流量將通過隧道傳送。由於這通常是不希望看到的,因此可以配置定義流量的訪問控制清單(ACL),該流量可以或不能通過隧道傳送。與其他ACL實現一樣,末端的隱式deny不需要顯式拒絕;因此,只需為可以隧道化的流量配置permit語句。
ip local pool SSLVPN_POOL 192.168.10.1 192.168.10.10 access-list 1 permit 192.168.0.0 0.0.255.255
步驟 6.設定虛擬範本介面(VTI)
動態VTI為每個VPN會話提供按需獨立的虛擬接入介面,允許遠端接入VPN的高度安全和可擴展連線。DVTI技術取代了動態加密對映和動態中心輻射型方法,後者有助於建立隧道。因為DVTI的功能與任何其他實際介面類似,所以它們允許更複雜的遠端訪問部署,因為它們支援隧道處於活動狀態時的QoS、防火牆、每使用者屬性和其他安全服務。
interface Loopback0 ip address 172.16.1.1 255.255.255.255
!
interface Virtual-Template 1 ip unnumbered Loopback0
步驟 7.配置WebVPN網關
WebVPN網關定義AnyConnect頭端使用的IP地址和埠,以及提供給客戶端的SSL加密演算法和PKI證書。預設情況下,網關支援所有可能的加密演算法,這些演算法因路由器上的Cisco IOS版本而異。
webvpn gateway SSLVPN_GATEWAY ip address 10.165.201.1 port 443 http-redirect port 80 ssl trustpoint SSLVPN_CERT inservice
步驟 8.配置WebVPN上下文和組策略
WebVPN上下文和組策略定義用於AnyConnect客戶端連線的一些其他引數。對於基本AnyConnect配置,上下文僅用作一種機制,用於呼叫用於AnyConnect的預設組策略。但是,上下文可用於進一步自定義WebVPN啟動頁和WebVPN操作。在定義的策略組中,SSLVPN_AAA清單配置為使用者所屬的AAA身份驗證清單。該functions svc-enabled 命令是允許使用者通過瀏覽器連線AnyConnect SSL VPN客戶端(而不僅僅是WebVPN)的配置部分。最後,其他SVC命令定義僅與SVC連線相關的參svc address-pool 數:告知網關將SSLVPN_POOL中的地址分發給客戶端,根據上面定義的svc split include ACL 1定義拆分隧道策略,並定義用於域名解析的DNS伺服器svc dns-server。通過此配置,所有DNS查詢都將傳送到指定的DNS伺服器。查詢響應中接收的地址指示是否通過隧道傳送流量。
webvpn context SSLVPN_CONTEXT
virtual-template 1
aaa authentication list SSLVPN_AAA
gateway SSLVPN_GATEWAY inservice
policy group SSLVPN_POLICY functions svc-enabled svc address-pool "SSLVPN_POOL" netmask 255.255.255.0 svc split include acl 1 svc dns-server primary 8.8.8.8
default-group-policy SSLVPN_POLICY
步驟 9.配置客戶端配置檔案(可選)
與ASA不同,Cisco IOS沒有內建的GUI介面可幫助管理員建立客戶端配置檔案。AnyConnect客戶端配置檔案需要使用獨立的配置檔案編輯器單獨建立/編輯。
提示:查詢anyconnect-profileeditor-win-3.1.03103-k9.exe。
執行以下步驟以使路由器部署配置檔案:
- 使用ftp/tftp將其上傳到IOS快閃記憶體。
- 使用以下命令識別剛剛上傳的設定檔:
crypto vpn annyconnect profile SSLVPN_PROFILE flash:test-profile.xml
提示:在低於15.2(1)T的Cisco IOS版本上,需要使用以下命令:webvpn import svc profile <profile_name> flash:<profile.xml>。
在上下文下,使用此命令將配置檔案連結到該上下文:
webvpn context
SSLVPN_CONTEXT
policy group
SSLVPN_POLICY
svc profile
SSLVPN_PROFILE
注意:使用命令查找工具可獲取本節所用命令的詳細資訊。
驗證
使用本節內容,確認您的組態是否正常運作。
完成配置後,當您通過瀏覽器訪問網關地址和埠時,它將返回到WebVPN啟動顯示頁面:
登入後,將顯示WebVPN首頁。從此處按一下Tunnel Connection (AnyConnect)。 使用Internet Explorer時,ActiveX用於向下推送和安裝AnyConnect客戶端。如果未檢測到,則改用Java。所有其他瀏覽器會立即使用Java。
安裝完成後,AnyConnect會自動嘗試連線到WebVPN網關。由於自簽名證書用於網關標識自身,因此在連線嘗試期間會出現多個證書警告。這是預期值,必須接受這些值,連線才能繼續。為了避免這些證書警告,提供的自簽名證書必須安裝在客戶端電腦的受信任證書儲存中,或者,如果使用第三方證書,則證書頒發機構證書必須位於受信任的證書儲存中。
連線完成協商後,按一下AnyConnect左下角的圖gear 標,將顯示有關連線的一些高級資訊。在此頁上,可以檢視從組策略配置中的拆分隧道ACL獲得的一些連線統計資訊和路由詳細資訊。
以下是設定步驟的最後執行組態結果:
crypto pki trustpoint SSLVPN_TP_SELFSIGNED enrollment selfsigned serial-number subject-name cn=892_SELF_SIGNED_CERT revocation-check none rsakeypair SELF_SIGNED_RSA ! crypto vpn anyconnect flash:/webvpn/anyconnect-win-3.1.08009-k9.pkg sequence 1
crypto vpn anyconnect profile SSLVPN_PROFILE flash:test-profile.xml ! access-list 1 permit 192.168.0.0 0.0.255.255 ! ip local pool SSLVPN_POOL 192.168.10.1 192.168.10.10 ! webvpn gateway SSLVPN_GATEWAY ip address 10.165.201.1 port 443 ssl trustpoint SSLVPN_TP_SELFSIGNED inservice ! webvpn context SSLVPN_CONTEXT virtual-template 1
aaa authentication list SSLVPN_AAA
gateway SSLVPN_GATEWAY
! ssl authenticate verify all inservice ! policy group SSLVPN_POLICY functions svc-enabled svc address-pool "SSLVPN_POOL" netmask 255.255.255.0 svc split include acl 1 svc dns-server primary 8.8.8.8
svc profile SSLVPN_PROFILE default-group-policy SSLVPN_POLICY
疑難排解
本節提供的資訊可用於對組態進行疑難排解。
排除AnyConnect連線故障時,需要檢查幾個常見元件:
- 由於客戶端必須提供證書,因此WebVPN網關中指定的證書必須有效。發出
show crypto pki certificate會顯示與路由器上的所有證書有關的資訊。
- 每次更改WebVPN配置時,最好在網關和上
no inservice 下 inservice 文上發出and。這可確保更改正確生效。
- 如前所述,要求連線到此網關的每個客戶端作業系統都具有AnyConnect PKG。例如,Windows客戶端需要Windows PKG,Linux 32位客戶端需要Linux 32位PKG,等等。
- 當您認為AnyConnect客戶端和基於瀏覽器的WebVPN都使用SSL時,要能夠訪問WebVPN啟動顯示頁面,通常表示AnyConnect能夠連線(假定相關AnyConnect配置正確)。
Cisco IOS提供可用於排除連線故障的各種調試WebVPN選項。這是在成功嘗試連線時調試WebVPN aaa、調試WeVPN隧道和顯示WebVPN會話生成的輸出:
fdenofa-892#show debugging WebVPN Subsystem: WebVPN AAA debugging is on WebVPN tunnel debugging is on WebVPN Tunnel Events debugging is on WebVPN Tunnel Errors debugging is on *May 26 20:11:06.381: WV-AAA: Nas Port ID set to 192.168.157.2. *May 26 20:11:06.381: WV-AAA: AAA authentication request sent for user: "VPNUSER"AAA returned status: 2 for session 37 *May 26 20:11:06.381: WV-AAA: AAA Authentication Passed! *May 26 20:11:06.381: WV-AAA: User "VPNUSER" has logged in from "192.168.157.2" to gateway "SSLVPN_GATEWAY" context "SSLVPN_CONTEXT" *May 26 20:11:12.265: *May 26 20:11:12.265: *May 26 20:11:12.265: [WV-TUNL-EVT]:[8A3AE410] CSTP Version recd , using 1 *May 26 20:11:12.265: [WV-TUNL-EVT]:[8A3AE410] Allocating IP 192.168.10.9 from address-pool SSLVPN_POOL *May 26 20:11:12.265: [WV-TUNL-EVT]:[8A3AE410] Using new allocated IP 192.168.10.9 255.255.255.0 *May 26 20:11:12.265: Inserting static route: 192.168.10.9 255.255.255.255 Virtual-Access2 to routing table *May 26 20:11:12.265: [WV-TUNL-EVT]:[8A3AE410] Full Tunnel CONNECT request processed, HTTP reply created *May 26 20:11:12.265: HTTP/1.1 200 OK *May 26 20:11:12.265: Server: Cisco IOS SSLVPN *May 26 20:11:12.265: X-CSTP-Version: 1 *May 26 20:11:12.265: X-CSTP-Address: 192.168.10.9 *May 26 20:11:12.269: X-CSTP-Netmask: 255.255.255.0 *May 26 20:11:12.269: X-CSTP-Keep: false *May 26 20:11:12.269: X-CSTP-DNS: 8.8.8.8 *May 26 20:11:12.269: X-CSTP-Lease-Duration: 43200 *May 26 20:11:12.269: X-CSTP-MTU: 1280 *May 26 20:11:12.269: X-CSTP-Split-Include: 192.168.0.0/255.255.0.0 *May 26 20:11:12.269: X-CSTP-DPD: 300 *May 26 20:11:12.269: X-CSTP-Disconnected-Timeout: 2100 *May 26 20:11:12.269: X-CSTP-Idle-Timeout: 2100 *May 26 20:11:12.269: X-CSTP-Session-Timeout: 0 *May 26 20:11:12.269: X-CSTP-Keepalive: 30 *May 26 20:11:12.269: X-DTLS-Session-ID: 85939A3FE33ABAE5F02F8594D56DEDE389F6FB3C9EEC4D211EB71C0820DF8DC8 *May 26 20:11:12.269: X-DTLS-Port: 443 *May 26 20:11:12.269: X-DTLS-Header-Pad-Length: 3 *May 26 20:11:12.269: X-DTLS-CipherSuite: AES256-SHA *May 26 20:11:12.269: X-DTLS-DPD: 300 *May 26 20:11:12.269: X-DTLS-KeepAlive: 30 *May 26 20:11:12.269: *May 26 20:11:12.269: *May 26 20:11:12.269: *May 26 20:11:12.269: [WV-TUNL-EVT]:[8A3AE410] For User VPNUSER, DPD timer started for 300 seconds *May 26 20:11:12.273: [WV-TUNL-EVT]:[8A3AE410] CSTP Control, Recvd a Req Cntl Frame (User VPNUSER, IP 192.168.10.9) Severity ERROR, Type CLOSE_ERROR Text: reinitiate tunnel to negotiate a different MTU *May 26 20:11:12.273: [WV-TUNL-EVT]:[8A3AE410] CSTP Control, Recvd Close Error Frame *May 26 20:11:14.105: *May 26 20:11:14.105: *May 26 20:11:14.105: [WV-TUNL-EVT]:[8A3AE690] CSTP Version recd , using 1 *May 26 20:11:14.109: [WV-TUNL-EVT]:[8A3AE690] Tunnel Client reconnecting removing existing tunl ctx *May 26 20:11:14.109: [WV-TUNL-EVT]:[8A3AE410] Closing Tunnel Context 0x8A3AE410 for Session 0x8A3C2EF8 and User VPNUSER *May 26 20:11:14.109: [WV-TUNL-EVT]:[8A3AE690] Reusing IP 192.168.10.9 255.255.255.0 *May 26 20:11:14.109: Inserting static route: 192.168.10.9 255.255.255.255 Virtual-Access2 to routing table *May 26 20:11:14.109: [WV-TUNL-EVT]:[8A3AE690] Full Tunnel CONNECT request processed, HTTP reply created *May 26 20:11:14.109: HTTP/1.1 200 OK *May 26 20:11:14.109: Server: Cisco IOS SSLVPN *May 26 20:11:14.109: X-CSTP-Version: 1 *May 26 20:11:14.109: X-CSTP-Address: 192.168.10.9 *May 26 20:11:14.109: X-CSTP-Netmask: 255.255.255.0 *May 26 20:11:14.109: X-CSTP-Keep: false *May 26 20:11:14.109: X-CSTP-DNS: 8.8.8.8 *May 26 20:11:14.113: X-CSTP-Lease-Duration: 43200 *May 26 20:11:14.113: X-CSTP-MTU: 1199 *May 26 20:11:14.113: X-CSTP-Split-Include: 192.168.0.0/255.255.0.0 *May 26 20:11:14.113: X-CSTP-DPD: 300 *May 26 20:11:14.113: X-CSTP-Disconnected-Timeout: 2100 *May 26 20:11:14.113: X-CSTP-Idle-Timeout: 2100 *May 26 20:11:14.113: X-CSTP-Session-Timeout: 0 *May 26 20:11:14.113: X-CSTP-Keepalive: 30 *May 26 20:11:14.113: X-DTLS-Session-ID: 22E54D9F1F6344BCB5BB30BC8BB3737907795E6F3C3665CDD294CBBA1DA4D0CF *May 26 20:11:14.113: X-DTLS-Port: 443 *May 26 20:11:14.113: X-DTLS-Header-Pad-Length: 3 *May 26 20:11:14.113: X-DTLS-CipherSuite: AES256-SHA *May 26 20:11:14.113: X-DTLS-DPD: 300 *May 26 20:11:14.113: X-DTLS-KeepAlive: 30 *May 26 20:11:14.113: *May 26 20:11:14.113: *May 26 20:11:14.113: *May 26 20:11:14.113: [WV-TUNL-EVT]:[8A3AE690] For User VPNUSER, DPD timer started for 300 seconds fdenofa-892#show webvpn session user VPNUSER context SSLVPN_CONTEXT Session Type : Full Tunnel Client User-Agent : AnyConnect Windows 3.1.08009 Username : VPNUSER Num Connection : 5 Public IP : 192.168.157.2 VRF Name : None Context : SSLVPN_CONTEXT Policy Group : SSLVPN_POLICY Last-Used : 00:00:00 Created : *16:11:06.381 EDT Tue May 26 2015 Session Timeout : Disabled Idle Timeout : 2100 DNS primary serve : 8.8.8.8 DPD GW Timeout : 300 DPD CL Timeout : 300 Address Pool : SSLVPN_POOL MTU Size : 1199 Rekey Time : 3600 Rekey Method : Lease Duration : 43200 Tunnel IP : 192.168.10.9 Netmask : 255.255.255.0 Rx IP Packets : 0 Tx IP Packets : 42 CSTP Started : 00:00:13 Last-Received : 00:00:00 CSTP DPD-Req sent : 0 Virtual Access : 2 Msie-ProxyServer : None Msie-PxyPolicy : Disabled Msie-Exception : Split Include : ACL 1 Client Ports : 17462 17463 17464 17465 17471
相關資訊