前言
通过前几期的文章,大家对企业网络中通常使用的VPN技术,有了一定的了解,在IPsec VPN结构中,离不开密钥交换协议-IKE,IKE是可在通信双方进行IPSec的处理过程中,对双方身份进行鉴别,同时还可以进行安全策略的协商,以及处理会话密钥的交换。事实证明,现有的基于IKEv1的实现已经成为整个IPSec系统的瓶颈,如何优化IKE已经成为业界在IPSec实施方案中的焦点,为此,2005年12月,推出了正式RFC文档(RFC 5996).也就是IKEv2,来满足对IKEv1的补充。
那这一切跟 FlexVPN有什么关系呢?
在Cisco 的体系中,将IKEv2统称为“FlexVPN”,名字为思科私有,技术为共有标准。
Chapter - 1 FlexVPN介绍
- FlexVPN的特点
- IKEv2是IKEv1的“升级版”,但是它并不向下兼容。也就是说在IKEv1和IKEv2同时存在的环境中,你必须要同时配置IKEv1和IKEv2;
- IKEv2不占用IKEv1资源,也就是说它们可以同时运行在一台设备上;
- IKEv2支持EAP认证,而IKEv1则不支持;
- IKEv2支持MOBIKE,而IKEv1则不支持;(MOBIKE允许IKEv2用于移动平台,如手机等)
- IKEv2已内置了NAT穿越功能,而IKEv1则需通过扩展协议支持;
- IKEv2可以检测隧道存活状态,而IKEv1仅能使用DPD(Dead Peer Detection)。而DPD在IKEv2中已成为标准的内建功能。但思科IOS系统默认该功能是禁用的,可在IKEv2的配置文件下配置;
- IKEv2具有可靠性检测,消息需被确认并排序。而在IKEv1中消息是没有被确认的;
- IKEv2通过反堵塞cookie,来实现反DOS攻击。而IKEv1则不具备该特性;
- IKEv2可以在一个策略中配置多套选择器。因此,多个网络可以在一个交换过程中进行协商;
- IKEv2允许两个加密引擎分别处理IPv4和IPv6流量;
- IKEv2允许非对称验证方式,而IKEv1则只能对称验证;(即对等体间使用相同的认证方式)
- IKEv2与IKEv1一样,使用UDP-500端口,如需NAT,则起始端口号为UDP-4500。
- IKEv2介绍
采用IKEv2协商安全联盟比IKEv1协商过程要简化的多。要建立一对IPSec SA,IKEv1需要经历两个阶段:“主模式+快速模式”或者“野蛮模式+快速模式”,前者至少需要交换9条消息,后者也至少需要6条消息。而IKEv2正常情况使用2次交换共4条消息就可以完成一对IPSec SA的建立,如果要求建立的IPSec SA大于一对时,每一对IPSec SA只需额外增加1次创建子SA交换,也就是2条消息就可以完成。
IKEv2定义了三种交换:初始化交换(Initial Exchanges),创建子SA交换(Create_Child_SA Exchange)以及通知交换(Informational Exchange)。
初始交换:正常情况下,IKEv2通过初始交换就可以完成第一对IPSec SA的协商建立。IKEv2初始交换对应IKEv1的第一阶段,初始交换包含两次交换四条消息,如下图所示:
- 消息①和②属于第一次交换(称为IKE_SA_INIT交换),以明文方式完成IKE SA的参数协商,包括协商加密和验证算法,交换临时随机数和DH交换。IKE_SA_INIT交换后生成一个共享密钥材料,通过这个共享密钥材料可以衍生出IPSec SA的所有密钥。
- 消息③和④属于第二次交换(称为IKE_AUTH交换),以加密方式完成身份认证、对前两条信息的认证和IPSec SA的参数协商。IKEv2支持RSA签名认证、预共享密钥认证以及扩展认证方法EAP(Extensible Authentication Protocol)。EAP认证是作为附加的IKE_AUTH交换在IKE中实现的,发起者通过在消息3中省去认证载荷来表明需要使用EAP认证(此认证方式在前期802.1x准入认证章节有介绍)。
创建子SA交换:
当一个IKE SA需要创建多对IPSec SA时,需要使用创建子SA交换来协商多于一对的IPSec SA。另外,创建子SA交换还可以用于IKE SA的重协商。
创建子SA交换包含一个交换两条消息,对应IKEv1协商阶段2,交换的发起者可以是初始交换的协商发起方,也可以是初始交换的协商响应方。创建子SA交换必须在初始交换完成后进行,交换消息由初始交换协商的密钥进行保护。
类似于IKEv1,如果启用PFS,创建子SA交换需要额外进行一次DH交换,生成新的密钥材料。生成密钥材料后,子SA的所有密钥都从这个密钥材料衍生出来。
通知交换:
运行IKE协商的两端有时会传递一些控制信息,例如错误信息或者通告信息,这些信息在IKEv2中是通过通知交换完成的,如下图所示:
通知交换必须在IKE SA保护下进行,也就是说通知交换只能发生在初始交换之后。控制信息可能是IKE SA的,那么通知交换必须由该IKE SA来保护进行;也可能是某子SA的,那么该通知交换必须由生成该子SA的IKE SA来保护进行。
Chapter - 2 FlexVPN实验
- 实验拓扑
实验需求
部署IKEv2站点到站点VPN,保护实际站点Site_1内网访问Site_2内网的流量。实验说明
实验准备:
- 本实验全部在EVE模拟器内部完成。
- 全部设备使用路由器模拟。
IP地址规划
设备 | 接口 | IP地址 |
---|---|---|
公司总部 | E0/0 | 10.1.1.1/24 |
公司总部 | Loopback 0 | 1.1.1.1/24 |
公司分部 | E0/0 | 40.1.1.1/24 |
公司分部 | Loopback 0 | 2.2.2.2/24 |
Site_1 | E0/0 | 10.1.1.10/24 |
Site_1 | E0/1 | 20.1.1.10/24 |
Site_2 | E0/0 | 40.1.1.10/24 |
Site_2 | E0/1 | 30.1.1.10/24 |
Internet | E0/0 | 20.1.1.100/24 |
Internet | E0/1 | 30.1.1.100/24 |
- 实验步骤
步骤1:按照IP地址规划,为设备配置IP地址(此处省略)
步骤2:解决底层路由连通性
公司总部路由器:
ip route 2.2.2.0 255.255.255.0 10.1.1.10 //去对端私网的路由
Site_1路由器:
ip route 1.1.1.0 255.255.255.0 10.1.1.1 //本地私网的路由
ip route 2.2.2.0 255.255.255.0 20.1.1.100 //对端私网路由
ip route 30.1.1.0 255.255.255.0 20.1.1.100 //对端出口路由器路由
分公司路由器:
ip route 1.1.1.0 255.255.255.0 40.1.1.10 //去对端私网的路由
Site_2路由器:
ip route 1.1.1.0 255.255.255.0 30.1.1.100 //去对端私网的路由
ip route 2.2.2.0 255.255.255.0 40.1.1.1 //本端私网的路由
ip route 20.1.1.0 255.255.255.0 30.1.1.100 //对端出口路由的路由
步骤3:Site_1设备阶段1配置
* 创建一个IKEv2安全提议
crypto ikev2 proposal Site-1
encryption 3des
integrity sha1
group 2
* 将安全提议调用到Policy下
crypto ikev2 policy Policy
proposal Site-1
* 使用预先共享密钥认证,需要配置域共享密钥
crypto ikev2 keyring PSK-key
peer Site-2
address 30.1.1.10
pre-shared-key cisco
* 创建IKEv2_Profile,制定源目加密点IP,认证方式
crypto ikev2 profile pro
match identity remote address 30.1.1.10 255.255.255.255
identity local address 20.1.1.10
authentication remote pre-share
authentication local pre-share
keyring local PSK-key
步骤4:Site_1设备的阶段2配置
* 通过ACL抓取感兴趣流量
ip access-list extended vpn
permit ip host 1.1.1.1 host 2.2.2.2
* 配置转换集策略,用于保护实际感兴趣流。
crypto ipsec transform-set Trans esp-3des esp-md5-hmac
mode tunnel
* 配置Crypto-map,汇总所配置策略。
crypto map cisco 10 ipsec-isakmp
set peer 30.1.1.10
set transform-set Trans
set ikev2-profile pro
match address vpn
* 接口应用。
interface Ethernet0/1
crypto map cisco
步骤5:Site_2设备阶段1配置
* 创建一个IKEv2安全提议
crypto ikev2 proposal Site-2
encryption 3des
integrity sha1
group 2
* 将安全提议调用到Policy
crypto ikev2 policy Policy
proposal Site-2
* 使用预共享密钥认证,配置认证密钥。
crypto ikev2 keyring PSK-key
peer Site-1
address 20.1.1.10
pre-shared-key cisco
* 创建IKEv2_Profile,指定源目加解密点IP地址,认证方式,调用本地认证密钥
crypto ikev2 profile pro
match identity remote address 20.1.1.10 255.255.255.255
identity local address 30.1.1.10
authentication remote pre-share
authentication local pre-share
keyring local PSK-key
步骤6:Site_2设备第二阶段配置
* 通过ACL抓取感兴趣流
ip access-list extended vpn
permit ip host 2.2.2.2 host 1.1.1.1
* 配置转换集策略,用于保护实际感兴趣流。
crypto ipsec transform-set Trans esp-3des esp-md5-hmac
mode tunnel
* 配置Crypto-map,汇总所配置策略。
crypto map cisco 10 ipsec-isakmp
set peer 20.1.1.10
set transform-set Trans
set ikev2-profile pro
match address vpn
* 接口应用。
interface Ethernet0/1
crypto map cisco
步骤6:测试
* 测试公司总部内网到分公司的内网流量连通性。
R1#ping 2.2.2.2 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/2/6 ms
* 查看加解密包
Site_1#show crypto engine connections active
Crypto Engine Connections
ID Type Algorithm Encrypt Decrypt LastSeqN IP-Address
1 IPsec 3DES+MD5 19 0 0 20.1.1.10
2 IPsec 3DES+MD5 0 19 19 20.1.1.10
1001 IKEv2 SHA+3DES 0 0 0 20.1.1.10
* 查看安全关联
Site_1#show crypto ikev2 sa
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 20.1.1.10/500 30.1.1.10/500 none/none READY
Encr: 3DES, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/3092 sec
IPv6 Crypto IKEv2 SA