导言
IPsec VPN保护的是点对点之间的通信,通过IPsec VPN可以在主机和主机之间、主机和网络安全网关之间或网络安全网关(如路由器、防火墙)之间建立安全的隧道连接。其协议主要工作在IP层,在IP层对数据包进行加密和验证。
一、动态IPSec VPN的概述
1.手工静态IPSec VPN的问题
①如果多站点通信,配置过于复杂,并且容易出错
②固定的key无法变化,不适合长期的使用一把密钥去验证安全性和完整性
③需要定期手动的去更改配置,过于繁琐
可以看看这篇关于静态IPSec VPN的文章以更深入理解其区别
因为手工静态IPSec VPN的缺点,动态IPSec VPN就弥补了它的不足之处。但你别看上面的静态配置少于这一份的动态配置,但你忽略时间的推移,需要有长远的目光来看技术。
2.动态IPSec VPN的优点
其在两个IPSec设备之间自动协商出SA IKE(Internet Key Exchange 互联网密钥交换协议)
①提前自动协商好密钥
②自动更新钥匙,不需要手动修改
③适用于多站点的设备,降低设备配置繁琐程度
3.原理
(1)IKE(协议框架)
IPSec VPN主要通过IKEv1两个阶段协商完成。
第一个阶段IKE SA是为了第二个阶段的IPSec SA所协商的;
第二个阶段IPSec SA是为了保护具体的业务数据。
第一阶段
第一阶段分为3个子阶段,且分为主模式(Main mode)和野蛮模式(aggressive Mode)
目前大部分都是使用的是主模式,野蛮模式是因为早期的主模式只能通过固定的IP地址,无法通过域名协商,野蛮模式如其名将自己的身份验证、域名等以明文传输所以早期使用较多,但现在主模式已经能够实现不固定的IP地址的IPSec协商所以野蛮模式几乎被取代。
①第一个子阶段主用于IKE安全提议协商(配置 /数据加密算法/数据校验算法/身份验证方法))
②第二个子阶段用于交换密钥
第二子阶段协商之后会通过DH算法得到一个协商密钥SKEYID(派生密钥)
SKEYID-a:针对后续所有的IKE-ISAKMP消息用于IKE数据完整性校验密钥
SKEYID-d:主要用于第二阶段的密钥衍生用于IPSec SA的密钥
SKEYID-e:针对后续所有的IKE-ISAKMP消息用于IKE加密密钥
③第三子阶段主要用于身份验证
第二阶段
快速模式(Quick mode),3个消息,IPSec proposal,交互包含随机数,衍生密钥SKEYID-d
SKEYID-da:针对后续所有的IKE-ISAKMP消息用于IPSec数据完整性校验密钥
SKEYID-dd:继续用作下一轮的密钥衍生
SKEYID-de:针对后续所有的IKE-ISAKMP消息用于IPSec加密密钥
当第二阶段协商完毕之后,IPSec SA出现,后续的所有业务数据都有IPSec SA的保护,实现了安全加密,完整性校验的传输
二、IPSec VPN实验的实现
1.目的:
实现PC1与PC2在公网传输时加密通信(IPSec VPN),并且实现PC1访问R5的loopback8端口(NAT)
2.拓扑图
3.配置
(1)配置思路
(以站点A为例)
①实现基础的网络通信配置(实现PC1访问到R1,R1访问到R3)
②匹配进入隧道的感兴趣流量(ACL),创建NAT的acl
③配置IKE SA,创建IKE安全提议和协商对等体
④创建IPSec安全提议
⑤配置IPSec策略
⑥将策略调用到出接口,将nat的acl调用端口
(NAT的优先级高于IPSec VPN,所以需要调整ACL)
(2)具体配置
①实现基础的网络通信
R3:
[R3]ip route-static 0.0.0.0 0.0.0.0 192.168.13.1
R1:
[R1]ip route-static 0.0.0.0 0.0.0.0 15.15.15.5
[R1]ip route-static 192.168.1.0 255.255.255.0 192.168.13.3
R2:
[R2]ip route-static 0.0.0.0 0.0.0.0 25.25.25.5
[R2]ip route-static 192.168.2.0 255.255.255.0 192.168.24.4
R4:
[R4]ip route-static 0.0.0.0 0.0.0.0 192.168.24.2
测试:
PC1--R1
R1----R2
②创建ACL(IPSec、NAT)
R1:
IPSec的ACL
[R1-acl-adv-3000]acl 3000
[R1-acl-adv-3000]rule permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
NAT的ACL
[R1]acl 3001
[R1-acl-adv-3001]rule deny ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
[R1-acl-adv-3001]rule permit ip source any
R3:
IPSec的ACL
[R2]acl number 3000
[R2-acl-adv-3000] rule 5 permit ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
③配置IKE SA
1)创建IKE安全提议
R1
IKE安全提议
[R1]ike proposal 1
[R1-ike-proposal-1]encryption-algorithm aes-cbc-128 加密算法
[R1-ike-proposal-1]authentication-method pre-share 身份验证方法
[R1-ike-proposal-1]authentication-algorithm sha1 数据完整性校验算法
R2
[R2]ike proposal 1
[R2-ike-proposal-1]encryption-algorithm aes-cbc-128
[R2-ike-proposal-1]authentication-method pre-share
[R2-ike-proposal-1]authentication-algorithm sha1
2)协商对等体
IKE协议对等体
R1
[R1]ike peer B v1
[R1-ike-peer-B]ike-proposal 1
[R1-ike-peer-B]exchange-mode main
[R1-ike-peer-B]local-address 15.15.15.1
[R1-ike-peer-B]remote-address 25.25.25.2
[R1-ike-peer-B]pre-shared-key cipher Huawei@123
R2
[R2]ike peer A v1
[R2-ike-peer-A] ike-proposal 1
[R1-ike-peer-A]exchange-mode main
[R2-ike-peer-A] local-address 25.25.25.2
[R2-ike-peer-A] remote-address 15.15.15.1
[R2-ike-peer-A] pre-shared-key cipher Huawei@123
④创建IPSec安全提议
R1
[R1]ipsec proposal A
[R1-ipsec-proposal-A] transform ah-esp 封装协议
[R1-ipsec-proposal-A] ah authentication-algorithm sha1 验证算法
[R1-ipsec-proposal-A] esp authentication-algorithm sha1
[R1-ipsec-proposal-A] esp encryption-algorithm aes-128 加密算法
R2
[R2]ipsec proposal B
[R2-ipsec-proposal-B] transform ah-esp
[R2-ipsec-proposal-B] ah authentication-algorithm sha1
[R2-ipsec-proposal-B] esp authentication-algorithm sha1
[R2-ipsec-proposal-B] esp encryption-algorithm aes-128
⑤配置IPSec策略
R1
[R1]ipsec policy p1 10 isakmp
[R1-ipsec-policy-isakmp-p1-10] security acl 3000
[R1-ipsec-policy-isakmp-p1-10] ike-peer B
[R1-ipsec-policy-isakmp-p1-10] proposal A
R2
[R2]ipsec policy p1 10 isakmp
[R2-ipsec-policy-isakmp-p1-10]security acl 3000
[R2-ipsec-policy-isakmp-p1-10]ike-peer A
[R2-ipsec-policy-isakmp-p1-10]proposal B
⑥将策略调用到出接口,将nat的acl调用端口
R1
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ipsec policy p1
[R1-GigabitEthernet0/0/1]nat outbound 3001
R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ipsec policy p1
4.效果测试:
5.wireshark抓包分析
因为华为设备的IPSec SA是在配置后就触发可能一开始看不到6消息则需要在用户模式下重新触发
<R1>reset ipsec sa policy p1
在R5连接R1的接口抓包 ,由图确实看出如上述的两个阶段交互的①阶段6消息+②阶段3消息
打上AH的验证报头和ESP的加密和验证报头
为IKEv1版本和阶段1为主模式,阶段2为快速模式
PS:上述文章可能有些地方没有解释到位或者有不足的地方欢迎大家指正。