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软件包时,如果最初未将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
第三步:生成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
第四步:配置本地VPN用户帐户
虽然可以使用外部身份验证、授权和记帐(AAA)服务器;在本示例中,使用本地身份验证。这些命令创建用户名VPNUSER,并创建名为SSLVPN_AAA的AAA身份验证列表。
aaa new-model aaa authentication login SSLVPN_AAA local username VPNUSER password TACO
第五步:定义客户端使用的地址池和拆分隧道访问列表
必须创建本地IP地址池,AnyConnect客户端适配器才能获取IP地址。确保配置足够大的池以支持最大数量的并发AnyConnect客户端连接。
默认情况下,AnyConnect在全隧道模式下运行,这意味着客户端计算机生成的任何流量将通过隧道发送。由于这通常是不希望出现的,因此可以配置访问控制列表(ACL),以定义可通过隧道发送或无法通过隧道发送的流量。与其他ACL实现一样,末尾的隐式拒绝不需要显式拒绝;因此,只需为可以隧道传输的流量配置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
第六步:配置虚拟模板接口(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中的地址分发到客户端,根据上面定义的ACL 1定义拆分隧道策svc split include 略,并定义用于域名解析的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 文上发出和。这可确保更改正确生效。
- 如前所述,要求连接到此网关的每个客户端操作系统都具有AnyConnect PKG。例如,Windows客户端需要Windows PKG,Linux 32位客户端需要Linux 32位PKG,等等。
- 当您考虑使用SSL的AnyConnect客户端和基于浏览器的WebVPN时,要能够访问WebVPN启动页,通常表示AnyConnect能够连接(假定相关AnyConnect配置正确)。
Cisco IOS提供可用于排除连接故障的各种调试WebVPN选项。以下是在成功尝试连接时从debug WebVPN aaa、debug WeVPN tunnel和show WebVPN session生成的输出:
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
相关信息