10
2024
01
11:29:26

安全防御 --- IPSec理论(03)



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

DPD

死亡对等体检测(dead peer detection),检查对端IKE SA(iskmp sa)是否存在。当隧道出现异常,检测出异常重新发起协商,维持隧道。

作用:DPD解决隧道黑洞问题,用于检查第一阶段是否生效;若检查第一阶段的IKE SA断开,则不会再发出DPD包

检查机制

  • 周期发送

  • 按需发送(空闲计时器)


DPD检查依赖超时计数器,默认5次不回包,则删除本地SA

IPSec的NAT问题

NAT会破坏IPSec的完整性

具体场景:当ipsec设备没有部署在企业边界,而是部署在企业内网时,ipsec的通信地址会被边界NAT设备做地址转换,这种情况下,需要考虑ipsec和nat的兼容性

(1)详细分析IPSEC在第一阶段和第二阶段与NAT具体兼容情况:

  • 第一阶段的主模式

  • 第一阶段的野蛮模式

  • 第二阶段的ESP传输模式

  • 第二阶段的ESP隧道模式

  • 第二阶段AH传输模式

  • 第二阶段AH隧道模式

第一阶段的主模式:第5、6包的认证ID,由于NAT破坏无法完成身份认证

第一阶段的野蛮模式:ID可以自定义为字符串,NAT无法破坏,可正常完成第一阶段身份认证

第二阶段的AH的传输模式和隧道模式:AH协议会校验外层IP地址,无论是传输还是隧道NAT都回转换外层IP地址,完整性都会被破坏,AH协议无法与NAT兼容。

第二阶段的ESP的隧道模式与传输模式:ESP不会对外层IP做认证或校验,所以完整算法不会被NAT破坏,但是TCP会进行头部校验

(2)伪首部校验


NAT在修改IP地址的时候也要修改伪首部校验和,这样就不会出现伪首部校验失败的问题,但ESP将加密封装将4层加密后,NAT就无法修改伪首部校验和,则会导致校验失败。



ESP的传输模式会导致伪首部校验失败


ESP的隧道模式,伪首部针对的是原始IP头,NAT转换的是新IP头,不存在校验失败的问题,ESP隧道模式可以与NAT兼容

(3)结论

  1. 结论一:AH传输模式和隧道模式都不支持ANT;

  2. 结论二:ESP的传输模式不支持NAT,IP头不做校验

(标准的IKE SA的主模式使用IP地址作为身份ID,nat会破坏IP地址故而不支持主模式,仅支持野蛮模式)

NAT环境下的IPSec配置 --- 野蛮模式 + ESP的隧道模式

IPSEC的多VPN问题

(ESP加密数据 -- ESP协议没有端口号)


以上问题是IPSEC在NAT环境下用野蛮模式和ESP隧道模式下会遇到的问题

NAT环境下IPSEC最终解决方案:NAT-T(NAT穿透)技术,改技术规定在NAT模式下IPSEC的IKE SA阶段使用目的端口UDP 500或4500作为端口号,源端口允许被修改(这种情况下防火墙写策略时不要规定其源端口号),IPSEC SA数据加密流传输阶段规定使用目的端口UDP 4500来传输ESP加密流,源端口允许被修改,解决了ESP没有端口号的问题。

华为与思科的产品都默认开启NAT-T技术;若需要对方主动协商,本端在NAT设备上需要配置静态NAT映射

nat static protocol udp global 100.1.1.1 500 inside 10.100.1.1 500
nat static protocol udp global 100.1.1.1 4500 inside 10.100.1.1 4500

附:IPSEC不支持动态协议

GRE over IPSEC

(1)背景:

IPSEC具有可靠性,完整性,机密性,也有抗重放功能,安全性高。但是IPSEC不支持组播,在IPSEC隧道中,只能通过写静态路由来引导数据包。如果私网主机网段很多,意味着得一条一条写静态路由。

GRE有很牛的隧道技术,传播速度快,支持组播技术。但是GRE不支持加密,传输数据别人都能看见,安全性不高。

解决问题:GRE隧道传输的同时,IPSEC为它保驾护航

(2)缺陷:


图:企业典型的Hub-Spoke组网(配置DSVNP之前)

如上图,如果一个公司又很多分支站点,采用GRE over IPSec的话会存在如下缺点:

  • IPSec隧道集中在Hub点,所有流量都穿越Hub点。

  • 所有流量通过总部封装和解封装时,会引入额外的网络延时。

  • 每增加一个新的Sopke点,Hub点都必须被配置。

  • 若Spoke点的公网地址是动态变化的,部署点到点的GRE会存在问题。

DSVPN

(1)简介

动态智能VPN(Dynamic Smart Virtual Private Network),简称DSVPN。是一种在Hub-Spoke组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。

DSVPN是华为私有协议

(2)目的

GRE over IPSEC缺点比较多

  • 流量都需要经过HUB

  • 增加分部都需要配置

  • 分部非固定IP地址

通过将下一跳解析协议NHRP(Next Hop Resolution Protocol)和mGRE(multipoint Generic Routing Encapsulation)技术与IPSec相结合解决了GRE over IPSec的缺陷:

  • DSVPN通过NHRP协议动态收集、维护和发布各节点的公网地址等信息,解决了源分支无法获取目的分支公网地址的问题,从而可在分支与分支之间建立动态VPN隧道,实现分支与分支间的直接通信,进而减轻总部的负担、避免网络延时。

  • DSVPN借助mGRE技术,使VPN隧道能够传输组播报文和广播报文,并且一个Tunnel接口可与多个对端建立VPN隧道,减少了配置VPN隧道的工作量;在新增分支或分支公网地址发生变化时,也能自动维护总部与分支之间的隧道关系,而不用调整总部的隧道配置,使得网络维护变得更智能化。


图:企业Hub-spoke组网(配置DSVPN之后)

(3)典型网络架构:

企业通过总部Hub端与多个分支Spoke相连,Hub端使用静态公网地址,Spoke可以使用动态的公网地址。在该网络中,当源Spoke需要向目的Spoke发送数据报文时,源Spoke将通过与Hub之间的静态mGRE隧道交换NHRP协议获取目的Spoke的公网地址,并与目的Spoke建立动态的mGRE隧道。隧道建立完成后,Spoke与Spoke之间的数据报文将通过该动态mGRE隧道直接发送给对方,不载经过总部Hub中转。

(4)配置:

公网划分:
[ISP]int g0/0/0
[ISP-GigabitEthernet0/0/0]ip address 100.1.12.2 255.255.255.0 
[ISP]int g0/0/1
[ISP-GigabitEthernet0/0/1]ip add 100.1.23.2 24
[ISP]int g0/0/2
[ISP-GigabitEthernet0/0/2]ip add 100.1.24.2 24
[ISP]int g4/0/0
[ISP-GigabitEthernet4/0/0]ip add 100.1.25.2 24
[ISP]int g4/0/1
[ISP-GigabitEthernet4/0/1]ip add 100.1.26.2 24
[ISP]int g4/0/2
[ISP-GigabitEthernet4/0/2]ip add 100.1.27.2 24
[ISP]int g4/0/3
[ISP-GigabitEthernet4/0/3]ip add 100.1.28.2 24
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 100.1.12.1 24
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip ad 100.1.23.1 24
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 100.1.24.1 24
[r5]int g0/0/0
[r5-GigabitEthernet0/0/0]ip add 100.1.25.1 24
[r6]int g0/0/0
[r6-GigabitEthernet0/0/0]ip add 100.1.26.1 24
[r7]int g0/0/0
[r7-GigabitEthernet0/0/0]ip add 100.1.27.1 24
[r8]int g0/0/0
[r8-GigabitEthernet0/0/0]ip add 100.1.28.1 24
环回地址:
[R1]int lo0
[R1-LoopBack0]ip add 10.1.1.1 24
[R3]int lo0
[R3-LoopBack0]ip add 10.3.3.3 24
[R4]int lo0
[R4-LoopBack0]ip add 10.4.4.4 24
[r5]int lo0
[r5-LoopBack0]ip add 10.5.5.5 24
[r6]int lo0
[r6-LoopBack0]ip add 10.6.6.6 24
[r7]int lo0
[r7-LoopBack0]ip add 10.7.7.7 24
[r8]int lo0
[r8-LoopBack0]ip add 10.8.8.8 24
私网划分:
[R1]int t0/0/0
[R1-Tunnel0/0/0]ip add 172.16.1.1 24
[R3]int t0/00/0
[R3-Tunnel0/0/0]ip ad 172.16.1.3 24
[R4]int t0/0/0
[R4-Tunnel0/0/0]ip add 172.16.1.4 24
[r5]int t0/0/0
[r5-Tunnel0/0/0]ip add 172.16.1.5 24
[r6]int t0/0/0
[r6-Tunnel0/0/0]ip add 172.16.1.6 24
[r7]int t0/0/0
[r7-Tunnel0/0/0]ip add 172.16.1.7 24
[r8]int t0/0/0
[r8-Tunnel0/0/0]ip add 172.16.1.8 24
使得公网通配置静态路由:
[R1]ip route-static 0.0.0.0 0 100.1.12.2
[R3]ip route-static 0.0.0.0 0 100.1.23.2
[R4]ip route-static 0.0.0.0 0 100.1.24.2
[r5]ip route-static 0.0.0.0 0 100.1.25.2
[r6]ip route-static 0.0.0.0 0 100.1.26.2
[r7]ip route-static 0.0.0.0 0 100.1.27.2
[r8]ip route-static 0.0.0.0 0 100.1.28.2

测试连通性:



(首先配置R1为server,R3-4为一级分支)

[1] 开启隧道,配置gre
[R1]int t0/0/0
[R1-Tunnel0/0/0]tunnel-protocol gre p2mp
[R1-Tunnel0/0/0]gre key 100 --> 配置标识key,防止和公网中其他gre混用
[R1-Tunnel0/0/0]nhrp network-id 123 --> 配置标识network-id,防止和公网中nhrp混用
[R1-Tunnel0/0/0]nhrp entry multicast dynamic --> R1为server端,自动为client配置映射
[R1-Tunnel0/0/0]source g0/0/0
[R3]int t0/0/0
[R3-Tunnel0/0/0]tunnel-protocol gre p2mp
[R3-Tunnel0/0/0]gre key 100
[R3-Tunnel0/0/0]nhrp entry 172.16.1.1 100.1.12.1 register --> 自动注册server端的隧道地址和公网地址
[R3-Tunnel0/0/0]nhrp network-id 123
[R3-Tunnel0/0/0]source g0/0/0
[R4]int t0/0/0
[R4-Tunnel0/0/0]tunnel-protocol gre p2mp
[R4-Tunnel0/0/0]source GigabitEthernet0/0/0
[R4-Tunnel0/0/0]gre key 100
[R4-Tunnel0/0/0]nhrp network-id 123
[R4-Tunnel0/0/0]nhrp entry 172.16.1.1 100.1.12.1 register

查看配置情况:

[2] 进行OSPF宣告
将网络类型选为p2mp
[R1]int t0/0/0
[R1-Tunnel0/0/0]ospf network-type p2mp
[R3]int t0/0/0
[R3-Tunnel0/0/0]ospf network-type p2mp
[R3-Tunnel0/0/0]ospf dr-priority 0 --> 让r3不在进行dr的选举
[R4]int t0/0/0
[R4-Tunnel0/0/0]ospf network-type p2mp 
[R4-Tunnel0/0/0]ospf dr-priority 0 --> 让r4不在进行dr的选举
宣告
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]a 0
[R1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.1.1.1 0.0.0.0
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.3.3.3 0.0.0.0
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]a 0
[R4-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.4.4.4 0.0.0.0

查看建邻情况

[4] p2mp的网络类型中,让R3和R4直接通,需在R1上开启redirect(重定向),在R3和R4上开启shortcut
[R1-Tunnel0/0/0]nhrp redirect
[R3-Tunnel0/0/0]nhrp shortcut 
[R4-Tunnel0/0/0]nhrp shortcut


(配置r5-8为二级分支)

[1] 首先为R3,R4配置server的标志
[R3-Tunnel0/0/0]nhrp entry multicast dynamic 
[R4-Tunnel0/0/0]nhrp entry multicast dynamic
[2] 开启隧道,配置gre
[r5]int t0/0/0
[r5-Tunnel0/0/0]tunnel-protocol gre p2mp 
[r5-Tunnel0/0/0]gre key 100
[r5-Tunnel0/0/0]source g0/0/0
[r5-Tunnel0/0/0]nhrp network-id 123
[r5-Tunnel0/0/0]nhrp entry 172.16.1.3 100.1.23.1 register 
[r5-Tunnel0/0/0]ospf network-type p2mp --> 将ospf网络类型改为p2mp
[r6]int t0/0/0
[r6-Tunnel0/0/0]tunnel-protocol gre p2mp
[r6-Tunnel0/0/0]source GigabitEthernet0/0/0
[r6-Tunnel0/0/0]gre key 100
[r6-Tunnel0/0/0]nhrp network-id 123
[r6-Tunnel0/0/0]nhrp entry 172.16.1.3 100.1.23.1 register
[r6-Tunnel0/0/0]ospf network-type p2mp

[r7]int t0/0/0
[r7-Tunnel0/0/0]ospf network-type p2mp
[r7-Tunnel0/0/0]tunnel-protocol gre p2mp 
[r7-Tunnel0/0/0]gre key 100
[r7-Tunnel0/0/0]nhrp network-id 123
[r7-Tunnel0/0/0]nhrp entry 172.16.1.4 100.1.24.1 register 
[r7-Tunnel0/0/0]source g0/0/0
[r8]int t0/0/0
[r8-Tunnel0/0/0]tunnel-protocol gre p2mp
[r8-Tunnel0/0/0]source GigabitEthernet0/0/0gre key 100
[r8-Tunnel0/0/0]ospf network-type p2mp
[r8-Tunnel0/0/0]nhrp network-id 123
[r8-Tunnel0/0/0]nhrp entry 172.16.1.4 100.1.24.1 register
[3] p2mp的网络类型中,让r5和r6、直接通,需在R3、R4上开启redirect(重定向),在R3和R4上开启shortcut
[r5-Tunnel0/0/0]nhrp shortcut 
[r6-Tunnel0/0/0]nhrp shortcut 

[r7-Tunnel0/0/0]nhrp shortcut
[r8-Tunnel0/0/0]nhrp shortcut
[4] 进行ospf宣告
[r5]ospf 1 router-id 5.5.5.5
[r5-ospf-1]a 0
[r5-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[r5-ospf-1-area-0.0.0.0]network 10.5.5.5 0.0.0.0
[r6]ospf 1 router-id 6.6.6.6
[r6-ospf-1]a 0
[r6-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[r6-ospf-1-area-0.0.0.0]network 10.6.6.6 0.0.0.0

[r7]ospf 1 router-id 7.7.7.7
[r7-ospf-1]a 0
[r7-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[r7-ospf-1-area-0.0.0.0]network 10.7.7.7 0.0.0.0
[r8]ospf 1 router-id 8.8.8.8
[r8-ospf-1]a 0
[r8-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[r8-ospf-1-area-0.0.0.0]network 10.8.8.8 0.0.0.0

查看建邻情况:

[5] 在R3,R4上开启redirect
[R3]int t0/0/0
[R3-Tunnel0/0/0]nhrp redirect
[R4]int t0/0/0
[R4-Tunnel0/0/0]nhrp redirect
[6] 测试



进行ipsec配置
[R1]ike proposal 1  // 安全提议编号
[R1-ike-proposal-1]encryption-algorithm aes-cbc-128  // 加密算法
[R1-ike-proposal-1]dh group5  // 非对称加密算法强度
[R1-ike-proposal-1]authentication-algorithm md5  // 认证算法
[R1-ike-proposal-1]sa duration 3600
[R1]ipsec proposal yyy  // ipsec提议
[R1-ipsec-proposal-yyy]encapsulation-mode transport  
[R1-ipsec-proposal-yyy]transform ah-esp  // 选择传输协议
[R1-ipsec-proposal-yyy]ah authentication-algorithm sha1  // 认证算法
[R1-ipsec-proposal-yyy]esp authentication-algorithm sha1  // 认证算法
[R1-ipsec-proposal-yyy]esp encryption-algorithm 3des // 加密算法
[R1]ike peer yyy v1  // ike认证名称和版本
[R1-ike-peer-yyy]exchange-mode aggressive   // 模式选择
[R1-ike-peer-yyy]pre-shared-key simple 999  // 编译预共享密钥
[R1-ike-peer-yyy]ike-proposal 1  // 调用安全提议
[R1-ike-peer-yyy]local-id-type name  // 采用name定义
[R1-ike-peer-yyy]remote-name kkk  // 远端name为a1
[R1]ipsec profile yyy
[R1-ipsec-profile-yyy]ike-peer yyy  // 调用peer
[R1-ipsec-profile-yyy]proposal yyy  // 调用提议

在R3-4,r5-8上相同的配置
隧道调用profile
[R1-Tunnel0/0/0]ipsec profile yyy
[R3-Tunnel0/0/0]ipsec profile yyy
[R4-Tunnel0/0/0]ipsec profile yyy
[r5-Tunnel0/0/0]ipsec profile yyy
[r6-Tunnel0/0/0]ipsec profile yyy
[r7-Tunnel0/0/0]ipsec profile yyy
[r8-Tunnel0/0/0]ipsec profile yyy
测试



本文链接:https://hqyman.cn/post/4791.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: