本文档介绍如何在使用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 |
初始版本 |