本文档介绍如何在使用FlexVPN的路由器与支持思科下一代加密(NGE)算法的自适应安全设备(ASA)之间配置VPN。
Cisco 建议您了解以下主题:
本文档中的信息基于以下软件和硬件版本:
Hardware:运行安全许可证的IOS第2代(G2)路由器。
软件:Cisco IOS®软件版本15.2-3.T2。M或T版本在Cisco IOS®软件版本15.1.2T之后的版本中,可以使用任何版本的M或T,因为Galois计数器模式(GCM)的引入中也包含了此版本。
Hardware:支持NGE的ASA。
注意:只有多核平台支持高级加密标准(AES)GCM。
软件:支持NGE的ASA软件版本9.0或更高版本。
OpenSSL。
有关详细信息,请参阅Cisco Feature Navigator。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
IOS上推荐的IPSec接口是虚拟隧道接口(VTI),它创建受IPsec保护的通用路由封装(GRE)接口。对于VTI,流量选择器(哪些流量应受IPSec安全关联(SA)保护)包括从隧道源到隧道目标的GRE流量。由于ASA不实施GRE接口,而是根据访问控制列表(ACL)中定义的流量创建IPSec SA,因此我们必须启用一种方法,允许路由器使用建议的流量选择器的镜像响应IKEv2启动。在FlexVPN路由器上使用动态虚拟隧道接口(DVTI)可让此设备使用所显示流量选择器的镜像响应显示的流量选择器。
此示例加密两个内部网络之间的流量。当ASA向IOS内部网络(192.168.1.0/24到172.16.10.0/24)显示ASA内部网络的流量选择器时,DVTI接口会以流量选择器的镜像(即172.16.10.0/24到192.168.1.0/24)作出响应。
目前,IOS和ASA不支持具有Elliptic Curve数字签名算法(ECDSA)证书的本地证书颁发机构(CA)服务器,这是Suite-B所需的。因此,必须实施第三方CA服务器。例如,使用OpenSSL作为CA。
本指南基于此图中所示的拓扑。您应该修改IP地址。
注意:设置包括路由器和ASA的直接连接。这些路由可以分为多跳。如果是,请确保有到达对等IP地址的路由。以下配置仅详细说明使用的加密。
创建一个椭圆曲线键对。
openssl ecparam -out ca.key -name secp256r1 -genkey
创建一个椭圆曲线自签名证书。
openssl req -x509 -new -key ca.key -out ca.pem -outform PEM -days 3650
创建域名和主机名,这是创建椭圆曲线(EC)密钥对的必备条件。
ip domain-name cisco.com hostname Router1 crypto key generate ec keysize 256 label router1.cisco.com
创建本地信任点以从CA获取证书。
crypto pki trustpoint ec_ca enrollment terminal subject-name cn=router1.cisco.com revocation-check none eckeypair router1.cisco.com hash sha256
注意:由于CA处于脱机状态,因此撤销检查被禁用;应启用撤销检查,以在生产环境中实现最大安全性。
验证信任点。这将获取包含公钥的CA证书的副本。
crypto pki authenticate ec_ca
然后,系统将提示您输入CA的基64编码证书。这是使用OpenSSL创建的文件ca.pem。要查看此文件,请在编辑器中或使用OpenSSL命令openssl x509 -in ca.pem打开此文件。粘贴此项时输入quit。然后键入yes接受。
将路由器注册到CA上的公钥基础设施(PKI)。
crypto pki enrol ec_ca
您收到的输出需要用于向CA提交证书请求。这可以另存为文本文件(flex.csr)并使用OpenSSL命令签名。
openssl ca -keyfile ca.key -cert ca.pem -md sha256 -in flex.csr -out flex.pem
输入此命令后,将包含在从CA生成的flex.pem文件中的证书导入路由器。然后,在完成后输入quit。
crypto pki import ec_ca certificate
创建域名和主机名,这是创建EC密钥对的必备条件。
domain-name cisco.com hostname ASA1 crypto key generate ecdsa label asa1.cisco.com elliptic-curve 256
创建本地信任点以从CA获取证书。
crypto ca trustpoint ec_ca enrollment terminal subject-name cn=asa1.cisco.com revocation-check none keypair asa1.cisco.com
注意:由于CA处于脱机状态,因此撤销检查被禁用;应启用撤销检查,以在生产环境中实现最大安全性。
验证信任点。这将获取包含公钥的CA证书的副本。
crypto ca authenticate ec_ca
然后,系统将提示您输入CA的基64编码证书。这是使用OpenSSL创建的文件ca.pem。要查看此文件,请在编辑器中或使用OpenSSL命令openssl x509 -in ca.pem打开此文件。在粘贴此文件时输入quit,然后键入yes接受。
将ASA注册到CA上的PKI。
crypto ca enrol ec_ca
您收到的输出必须用于向CA提交证书请求。这可以另存为文本文件(asa.csr),然后使用OpenSSL命令签名。
openssl ca -keyfile ca.key -cert ca.pem -md sha256 -in asa.csr -out asa.pem
输入此命令后,将文件中包含的证书作为a.pem从CA生成的证书导入路由器。然后在完成时输入quit。
crypto ca import ec_ca certificate
创建证书映射以匹配对等设备的证书。
crypto pki certificate map certmap 10 subject-name co cisco.com
为Suite-B的IKEv2建议配置输入以下命令:
注意:为了实现最大安全性,请使用aes-cbc-256 with sha512 hash命令进行配置。
crypto ikev2 proposal default encryption aes-cbc-128 integrity sha256 group 19
将IKEv2配置文件与证书映射匹配,并将ECDSA与之前定义的信任点配合使用。
crypto ikev2 profile default match certificate certmap identity local dn authentication remote ecdsa-sig authentication local ecdsa-sig pki trustpoint ec_ca virtual-template 1
配置IPSec转换集以使用Galois计数器模式(GCM)。
crypto ipsec transform-set ESP_GCM esp-gcm mode transport
使用之前配置的参数配置IPSec配置文件。
crypto ipsec profile default set transform-set ESP_GCM set pfs group19 set ikev2-profile default
配置隧道接口:
interface Virtual-Template1 type tunnel ip unnumbered GigabitEthernet0/0 tunnel source GigabitEthernet0/0 tunnel mode ipsec ipv4 tunnel protection ipsec profile default
接口配置如下:
interface GigabitEthernet0/0 ip address 10.10.10.1 255.255.255.0 interface GigabitEthernet0/1 ip address 172.16.10.1 255.255.255.0
使用此接口配置:
interface GigabitEthernet3/0 nameif outside security-level 0 ip address 10.10.10.2 255.255.255.0 interface GigabitEthernet3/1 nameif inside security-level 100 ip address 192.168.1.1 255.255.255.0
输入以下访问列表命令以定义要加密的流量:
access-list 100 extended permit ip 192.168.1.0 255.255.255.0 172.16.10.0 255.255.255.0
输入此IPSec建议命令和NGE:
crypto ipsec ikev2 ipsec-proposal prop1 protocol esp encryption aes-gcm protocol esp integrity null
加密映射命令:
crypto map mymap 10 match address 100 crypto map mymap 10 set peer 10.10.10.1 crypto map mymap 10 set ikev2 ipsec-proposal prop1 crypto map mymap 10 set trustpoint ec_ca crypto map mymap interface outside
此命令使用NGE配置IKEv2策略:
crypto ikev2 policy 10 encryption aes integrity sha256 group 19 prf sha256 lifetime seconds 86400 crypto ikev2 enable outside
为对等命令配置的隧道组:
tunnel-group 10.10.10.1 type ipsec-l2l tunnel-group 10.10.10.1 ipsec-attributes peer-id-validate cert ikev2 remote-authentication certificate ikev2 local-authentication certificate ec_ca
验证ECDSA密钥已成功生成。
Router1#show crypto key mypubkey ec router1.cisco.com % Key pair was generated at: 21:28:26 UTC Feb 19 2013 Key name: router1.cisco.com Key type: EC KEYS Storage Device: private-config Usage: Signature Key Key is not exportable. Key Data: <...omitted...> ASA-1(config)#show crypto key mypubkey ecdsa Key pair was generated at: 21:11:24 UTC Feb 19 2013 Key name: asa1.cisco.com Usage: General Purpose Key EC Size (bits): 256 Key Data: <...omitted...>
验证证书已成功导入且已使用ECDSA。
Router1#show crypto pki certificates verbose
Certificate
Status: Available
Version: 3
Certificate Serial Number (hex): 0137
Certificate Usage: General Purpose
Issuer:
<...omitted...>
Subject Key Info:
Public Key Algorithm: rsaEncryption
EC Public Key: (256 bit)
Signature Algorithm: SHA256 with ECDSA
ASA-1(config)#show crypto ca certificates
CA Certificate
Status: Available
Certificate Serial Number: 00a293f1fe4bd49189
Certificate Usage: General Purpose
Public Key Type: ECDSA (256 bits)
Signature Algorithm: SHA256 with ECDSA Encryption
<...omitted...>
验证IKEv2 SA已成功创建并使用已配置的NGE算法。
Router1#show crypto ikev2 sa detailed
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 10.10.10.1/500 10.10.10.2/500 none/none READY
Encr: AES-CBC, keysize: 128, Hash: SHA384, DH Grp:19, Auth sign: ECDSA,
Auth verify: ECDSA
Life/Active Time: 86400/94 sec
ASA-1#show crypto ikev2 sa detail
IKEv2 SAs:
Session-id:2, Status:UP-ACTIVE, IKE count:1, CHILD count:1
Tunnel-id Local Remote Status Role
268364957 10.10.10.2/500 10.10.10.1/500 READY INITIATOR
Encr: AES-CBC, keysize: 128, Hash: SHA384, DH Grp:19, Auth sign: ECDSA,
Auth verify: ECDSA
<...omitted...>
Child sa: local selector 192.168.1.0/0 - 192.168.1.255/65535
remote selector 172.16.10.0/0 - 172.16.10.255/65535
ESP spi in/out: 0xe847d8/0x12bce4d
AH spi in/out: 0x0/0x0
CPI in/out: 0x0/0x0
Encr: AES-GCM, keysize: 128, esp_hmac: N/A
ah_hmac: None, comp: IPCOMP_NONE, mode tunnel
验证IPSec SA已成功创建并使用已配置的NGE算法。
注意:FlexVPN可以终止来自同时支持IKEv2和IPSec协议的非IOS客户端的IPSec连接。
Router1#show crypto ipsec sa
interface: Virtual-Access1
Crypto map tag: Virtual-Access1-head-0, local addr 10.10.10.1
protected vrf: (none)
local ident (addr/mask/prot/port): (172.16.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)
current_peer 10.10.10.2 port 500
PERMIT, flags={origin_is_acl,}
<...omitted...>
inbound esp sas:
spi: 0x12BCE4D(19648077)
transform: esp-gcm ,
in use settings ={Tunnel, }
ASA-1#show crypto ipsec sa detail
interface: outside
Crypto map tag: mymap, seq num: 10, local addr: 10.10.10.2
access-list 100 extended permit ip 192.168.1.0 255.255.255.0 172.16.10.0
255.255.255.0
local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (172.16.10.0/255.255.255.0/0/0)
current_peer: 10.10.10.1
<...omitted...>
inbound esp sas:
spi: 0x00E847D8 (15222744)
transform: esp-aes-gcm esp-null-hmac no compression
in use settings ={L2L, Tunnel, IKEv2, }
有关思科实施Suite-B的详细信息,请参阅下一代加密白皮书。
有关思科实施下一代加密的详细信息,请参阅下一代加密解决方案页面。
| 版本 | 发布日期 | 备注 |
|---|---|---|
1.0 |
26-Mar-2013
|
初始版本 |