简介
本文档介绍如何配置Cisco IOS®路由器和Call Manager设备,以便Cisco IP电话可以建立到Cisco IOS路由器的VPN连接。需要使用以下VPN连接来保护与以下两种客户端身份验证方法之一的通信:
- 身份验证、授权和记帐(AAA)服务器或本地数据库
- 电话证书
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档中的信息基于下列硬件和软件版本:
- Cisco IOS 15.1(2)T或更高版本
- 功能集/许可证:Cisco IOS集成多业务路由器(ISR)-G2通用(数据、安全和统一通信)
- 功能集/许可证:Cisco IOS ISR的高级安全
- Cisco Unified Communications Manager(CUCM)版本8.0.1.100000-4或更高版本
- IP电话版本9.0(2)SR1S — 小型呼叫控制协议(SCCP)或更高版本
有关CUCM版本中受支持电话的完整列表,请完成以下步骤:
- 打开此URL:https://<CUCM Server IP Address>:8443/cucreports/systemReports.do
- 选择Unified CM Phone Feature List > Generate a new report > Feature:虚拟私有网络。
此配置示例中使用的版本包括:
- 思科IOS路由器版本15.1(4)M4
- Call Manager版本8.5.1.10000-26
- IP电话版本9.1(1)SR1S
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
配置
本节介绍配置本文档中介绍的功能所需的信息。
注意:使用命令查找工具(仅限注册用户)可获取有关本部分所使用命令的详细信息。
网络拓扑
本文档中使用的拓扑包括一台Cisco IP电话、作为安全套接字层(SSL)VPN网关的Cisco IOS路由器以及作为语音网关的CUCM。

SSL VPN服务器配置
本节介绍如何配置Cisco IOS头端以允许入站SSL VPN连接。
常见配置步骤
- 生成长度为1024字节的Rivest-Shamir-Adleman(RSA)密钥:
Router(config)#crypto key generate rsa general-keys label SSL modulus 1024
- 为自签名证书创建信任点,并附加SSL RSA密钥:
Router(config)#crypto pki trustpoint server-certificate
enrollment selfsigned
usage ssl-server
serial-number
subject-name CN=10.198.16.144
revocation-check none
rsakeypair SSL
- 配置信任点后,使用以下命令注册自签名证书:
Router(config)#crypto pki enroll server-certificate
% Include an IP address in the subject name? [no]: no
Generate Self Signed Router Certificate? [yes/no]: yes
Router Self Signed Certificate successfully created
- 在头端启用正确的AnyConnect软件包。电话本身不会下载此程序包。但是,如果没有软件包,则无法建立VPN隧道。建议使用Cisco.com上提供的最新客户端软件版本。本示例使用版本3.1.3103。
在旧版Cisco IOS中,以下是启用软件包的命令:
Router(config)#webvpn install svc flash:anyconnect-win-3.1.03103-k9.pkg
但是,在最新的Cisco IOS版本中,以下是命令:
Router(config)#crypto vpn anyconnect flash:/webvpn/anyconnect-win-
3.1.03103-k9.pkg sequence 1
- 配置VPN网关。WebVPN网关用于终止来自用户的SSL连接。
webvpn gateway SSL
ip address 10.198.16.144 port 443
ssl encryption 3des-sha1 aes-sha1
http-redirect port 80
ssl trustpoint server-certificate
inservice
注意:此处使用的IP地址必须与电话连接的接口位于同一子网上,或者网关需要直接从路由器上的接口发出。网关也用于定义路由器使用哪个证书来向客户端验证自身。
- 定义在客户端连接时用于为其分配IP地址的本地池:
ip local pool ap_phonevpn 192.168.100.1 192.168.100.254
配置AAA身份验证
本节介绍配置AAA服务器或本地数据库以对您的电话进行身份验证所需的命令。如果计划对电话使用仅证书身份验证,请继续下一部分。
配置用户数据库
路由器的本地数据库或外部AAA服务器可用于身份验证:
- 要配置本地数据库,请输入:
aaa new-model
aaa authentication login SSL local
username phones password 0 phones
- 要配置用于身份验证的远程AAA RADIUS服务器,请输入:
aaa new-model
aaa authentication login SSL group radius
radius-server host 192.168.100.200 auth-port 1812 acct-port 1813
radius-server key cisco
配置虚拟情景和组策略
虚拟环境用于定义管理VPN连接的属性,例如:
- 连接时要使用的URL
- 要分配客户端地址,应使用哪个池
- 使用哪种身份验证方法
以下命令是对客户端使用AAA身份验证的环境的示例:
webvpn context SSL
aaa authenticate list SSL
gateway SSL domain SSLPhones
!
ssl authenticate verify all
inservice
!
policy group phones
functions svc-enabled
svc address-pool "ap_phonevpn" netmask 255.255.255.0
svc keep-client-installed
default-group-policy phones
使用IP电话本地重要证书(LSC)配置客户端身份验证
本节介绍为电话配置基于证书的客户端身份验证所需的命令。但是,要执行此操作,需要了解各种类型的电话证书:
在此配置示例中,使用LSC对电话进行身份验证。
提示:连接您的电话的最安全方法是使用双重身份验证,双重身份验证结合了证书和AAA身份验证。如果在一个虚拟情景下组合用于每个的命令,则可以配置此命令。
配置信任点以验证客户端证书
路由器必须安装CAPF证书才能从IP电话验证LSC。要获取该证书并将其安装在路由器上,请完成以下步骤:
- 转到CUCM操作系统(OS)管理网页。
- 选择Security > Certificate Management。
注意:此位置可能根据CUCM版本而更改。
- 找到标记为CAPF的证书,然后下载.pem文件。将其另存为.txt文件
- 提取证书后,在路由器上创建新的信任点,并使用CAPF验证信任点,如下所示。当提示输入base-64编码的CA证书时,选择并粘贴下载的.pem文件中的文本以及BEGIN和END行。
Router(config)#crypto pki trustpoint CAPF
enrollment terminal
authorization username subjectname commonname
revocation-check none
Router(config)#crypto pki authenticate CAPF
Router(config)#
quit
注意事项:
- 注册方法是终端,因为必须在路由器上手动安装证书。
- 需要使用authorization username命令才能告诉路由器在客户端建立连接时使用什么作为用户名。在本例中,它使用公用名(CN)。
- 由于电话证书没有定义证书撤销列表(CRL),因此需要禁用撤销检查。因此,除非禁用此功能,否则连接会失败,并且公共密钥基础设施(PKI)调试显示以下输出:
Jun 17 21:49:46.695: CRYPTO_PKI: (A0076) Starting CRL revocation check
Jun 17 21:49:46.695: CRYPTO_PKI: Matching CRL not found
Jun 17 21:49:46.695: CRYPTO_PKI: (A0076) CDP does not exist. Use SCEP to
query CRL.
Jun 17 21:49:46.695: CRYPTO_PKI: pki request queued properly
Jun 17 21:49:46.695: CRYPTO_PKI: Revocation check is complete, 0
Jun 17 21:49:46.695: CRYPTO_PKI: Revocation status = 3
Jun 17 21:49:46.695: CRYPTO_PKI: status = 0: poll CRL
Jun 17 21:49:46.695: CRYPTO_PKI: Remove session revocation service providers
CRYPTO_PKI: Bypassing SCEP capabilies request 0
Jun 17 21:49:46.695: CRYPTO_PKI: status = 0: failed to create GetCRL
Jun 17 21:49:46.695: CRYPTO_PKI: enrollment url not configured
Jun 17 21:49:46.695: CRYPTO_PKI: transaction GetCRL completed
Jun 17 21:49:46.695: CRYPTO_PKI: status = 106: Blocking chain verification
callback received status
Jun 17 21:49:46.695: CRYPTO_PKI: (A0076) Certificate validation failed
配置虚拟情景和组策略
此部分配置类似于之前使用的配置,但两点除外:
命令如下所示:
webvpn context SSL
gateway SSL domain SSLPhones
authentication certificate
ca trustpoint CAPF
!
ssl authenticate verify all
inservice
!
policy group phones
functions svc-enabled
svc address-pool "ap_phonevpn" netmask 255.255.255.0
svc keep-client-installed
default-group-policy phones
Call Manager配置
本节介绍Call Manager配置步骤。
将自签名证书或身份证书从路由器导出到CUCM
要从路由器导出证书并将证书作为Phone-VPN-Trust证书导入到Call Manager,请完成以下步骤:
- 检查用于SSL的证书。
Router#show webvpn gateway SSL
SSL Trustpoint: server-certificate
- 导出证书。
Router(config)#crypto pki export server-certificate pem terminal
The Privacy Enhanced Mail (PEM) encoded identity certificate follows:
-----BEGIN CERTIFICATE-----
<output removed>
-----END CERTIFICATE-----
- 从终端复制文本并将其另存为.pem文件。
- 登录到Call Manager,然后选择Unified OS Administration > Security > Certificate Management > Upload Certificate > Select Phone-VPN-trust以上传在上一步中保存的证书文件。
在CUCM中配置VPN网关、组和配置文件
- 导航到Cisco Unified CM管理。
- 从菜单栏中,选择Advanced Features > VPN > VPN Gateway。

- 在VPN Gateway Configuration(VPN网关配置)窗口中,完成以下步骤:
- 在VPN Gateway Name字段中,输入名称。这可以是任何名称。
- 在VPN Gateway Description字段中,输入说明(可选)。
- 在VPN Gateway URL字段中,输入在路由器上定义的group-URL。
- 在此位置的VPN证书字段中,选择之前上传到Call Manager的证书,以便将其从信任存储区移动到此位置。

- 从菜单栏中,选择Advanced Features > VPN > VPN Group。

- 在All Available VPN Gateways字段中,选择之前定义的VPN网关。点击向下箭头以将所选网关移动到此VPN组字段中的选定VPN网关。

- 从菜单栏中,选择Advanced Features > VPN > VPN Profile。

- 要配置VPN配置文件,请填写标有星号(*)的所有字段。

- 启用自动网络检测:如果启用,VPN电话ping TFTP服务器。如果未收到响应,它将自动启动VPN连接。
- 启用主机ID检查:如果启用,VPN电话会将VPN网关URL的完全限定域名(FQDN)与证书的CN/存储区域网络(SAN)进行比较。如果这些项目不匹配或使用带星号(*)的通配符证书,则客户端无法连接。
- 启用密码持久性:这允许VPN电话缓存下次VPN尝试的用户名和密码。
将组和配置文件应用于具有通用电话配置文件的IP电话
在Common Phone Profile Configuration窗口中,单击Apply Config以应用新的VPN配置。您可以使用标准公用电话配置文件或创建新配置文件。


将通用电话配置文件应用于IP电话
如果为特定电话/用户创建了新配置文件,请导航到电话配置窗口。在Common Phone Profile字段中,选择Standard Common Phone profile。

在思科IP电话上安装本地重要证书(LSC)
以下指南可用于在思科IP电话上安装本地重要证书。 仅当使用LSC进行身份验证时,才需要执行此步骤。 使用制造商安装的证书(MIC)或用户名和密码进行身份验证不需要安装LSC。
将CUCM集群安全模式设置为Non-Secure的电话上安装LSC。
再次向Call Manager注册电话以下载新配置
这是配置过程的最后一步。
验证
路由器验证
要检查路由器中VPN会话的统计信息,可以使用以下命令,并检查用户名和证书身份验证的输出之间的差异(突出显示):
对于用户名/密码身份验证:
Router#show webvpn session user phones context SSL
Session Type : Full Tunnel
Client User-Agent : Cisco SVC IPPhone Client v1.0 (1.0)
Username : phones Num Connection : 1
Public IP : 172.16.250.34 VRF Name : None
Context : SSL Policy Group : SSLPhones
Last-Used : 00:00:29 Created : 15:40:21.503 GMT
Fri Mar 1 2013
Session Timeout : Disabled Idle Timeout : 2100
DPD GW Timeout : 300 DPD CL Timeout : 300
Address Pool : SSL MTU Size : 1290
Rekey Time : 3600 Rekey Method :
Lease Duration : 43200
Tunnel IP : 10.10.10.1 Netmask : 255.255.255.0
Rx IP Packets : 106 Tx IP Packets : 145
CSTP Started : 00:11:15 Last-Received : 00:00:29
CSTP DPD-Req sent : 0 Virtual Access : 1
Msie-ProxyServer : None Msie-PxyPolicy : Disabled
Msie-Exception :
Client Ports : 51534
DTLS Port : 52768
Router#
Router#show webvpn session context all
WebVPN context name: SSL
Client_Login_Name Client_IP_Address No_of_Connections Created Last_Used
phones 172.16.250.34 1 00:30:38 00:00:20
对于证书身份验证:
Router#show webvpn session user SEP8CB64F578B2C context all
Session Type : Full Tunnel
Client User-Agent : Cisco SVC IPPhone Client v1.0 (1.0)
Username : SEP8CB64F578B2C Num Connection : 1
Public IP : 172.16.250.34 VRF Name : None
CA Trustpoint : CAPF
Context : SSL Policy Group :
Last-Used : 00:00:08 Created : 13:09:49.302 GMT
Sat Mar 2 2013
Session Timeout : Disabled Idle Timeout : 2100
DPD GW Timeout : 300 DPD CL Timeout : 300
Address Pool : SSL MTU Size : 1290
Rekey Time : 3600 Rekey Method :
Lease Duration : 43200
Tunnel IP : 10.10.10.2 Netmask : 255.255.255.0
Rx IP Packets : 152 Tx IP Packets : 156
CSTP Started : 00:06:44 Last-Received : 00:00:08
CSTP DPD-Req sent : 0 Virtual Access : 1
Msie-ProxyServer : None Msie-PxyPolicy : Disabled
Msie-Exception :
Client Ports : 50122
DTLS Port : 52932
Router#show webvpn session context all
WebVPN context name: SSL
Client_Login_Name Client_IP_Address No_of_Connections Created Last_Used
SEP8CB64F578B2C 172.16.250.34 1 3d04h 00:00:16
CUCM验证
确认IP电话已向Call Manager注册,且已使用路由器提供给SSL连接的分配地址。

故障排除
SSL VPN服务器上的调试
Router#show debug
WebVPN Subsystem:
WebVPN (verbose) debugging is on
WebVPN HTTP debugging is on
WebVPN AAA debugging is on
WebVPN tunnel debugging is on
WebVPN Tunnel Events debugging is on
WebVPN Tunnel Errors debugging is on
Webvpn Tunnel Packets debugging is on
PKI:
Crypto PKI Msg debugging is on
Crypto PKI Trans debugging is on
Crypto PKI Validation Path debugging is on
从电话调试
- 从CUCM导航到Device > Phone。
- 在设备配置页面上,将Web Access设置为Enabled。
- 单击Save,然后单击Apply Config。

- 在浏览器中,输入电话的IP地址,然后从左侧菜单中选择Console Logs。

- 下载所有/FS/cache/log*.log文件。控制台日志文件包含有关电话无法连接到VPN的原因的信息。
相关 Bug
Cisco Bug ID CSCty46387(仅限注册用户),IOS SSLVPN:将情景设置为默认情景的增强功能
Cisco Bug ID CSCty46436(仅限注册用户),IOS SSLVPN:增强客户端证书验证行为