当GRE遇上IPSec后,安全性终于有了保障

发布时间:2021-07-10 15:33:06作者:网络之路博客阅读:0

回顾GRE配置

当GRE遇上IPSec后,安全性终于有了保障

BJ_FW身后有一个服务器,CS_FW与CD_R后面的client需要访问这个服务器,希望不把服务器暴露在公网上面,能实现的那就只有GRE与IPSec了,但是GRE没有安全性保障,IPSec有安全性,那能不能把GRE与IPSec结合起来一起使用呢?下面先回顾下GRE的配置,把各个点之前打通,然后在这个基础上面尝试下用IPSec部署,看看有什么样的效果。

配置要点

  • 图里面BJ与CS是防火墙,而CD是一台路由器,配置方面没什么区别

  • BJ与CS需要考虑安全策略的放行,这个可以参考下29篇(这里为了简化策略全放)

  • 各自可以通过静态或者动态路由来完成内网之间的互通。

  • 基础接口对接配置这里就不在详细讲解了。

1、internet基础配置

#

interfaceGigabitEthernet0/0/0

 ip address 202.100.1.254 255.255.255.0

#

interfaceGigabitEthernet0/0/1

 ip address 61.128.1.254 255.255.255.0

#

interfaceGigabitEthernet0/0/2

 ip address 103.15.1.254 255.255.255.0

#

2、BJ_FW的基础配置

#

interfaceGigabitEthernet1/0/0

 undo shutdown

 ip address 202.100.1.1 255.255.255.0

#

interfaceGigabitEthernet1/0/1

 undo shutdown

 ip address 192.168.10.254 255.255.255.0

#

firewall zone trust

 add interface GigabitEthernet1/0/1

#

firewall zone untrust

 add interface GigabitEthernet1/0/0

#

ip route-static 0.0.0.00.0.0.0 202.100.1.254

#

nat-policy

 rule name internet

  source-zone trust

  destination-zone untrust

  source-address 192.168.10.0 0.0.0.255

  action source-nat easy-ip

 

3、CS_FW的基础配置

#

interfaceGigabitEthernet1/0/0

 undo shutdown

 ip address 61.128.1.1 255.255.255.0

#

interfaceGigabitEthernet1/0/1

 undo shutdown

 ip address 192.168.20.254 255.255.255.0

#

firewall zone trust

 add interface GigabitEthernet1/0/1

#

firewall zone untrust

 add interface GigabitEthernet1/0/0

#

ip route-static 0.0.0.00.0.0.0 61.128.1.254

#

nat-policy

 rule name internet

  source-zone trust

  destination-zone untrust

  source-address 192.168.20.0 0.0.0.255

  action source-nat easy-ip

 

4、CD_R的基础配置

#

interfaceGigabitEthernet0/0/0

 ip address 103.15.1.1 255.255.255.0

#

interfaceGigabitEthernet0/0/1

 ip address 192.168.30.254 255.255.255.0

#

ip route-static 0.0.0.00.0.0.0 103.15.1.254

#

acl number 3000 

 rule 5 permit ip source 192.168.30.0 0.0.0.255

#

interfaceGigabitEthernet0/0/0

 ip address 103.15.1.1 255.255.255.0

 nat outbound 3000

 

(至此除了安全策略没展示,其余基础配置都完成了,安全策略参考下29篇,这里暂时全放)

 

5、GRE相关配置

当GRE遇上IPSec后,安全性终于有了保障

总体下来BJ_FW创建了2个tunnel隧道,一个对接CS防火墙,一个对接CD路由器,然后加入了安全区域,CS防火墙这边也创建了一个对接BJ防火墙,注意的是路由器这边,路由器的tunnel接口是tunnel0/0/0,跟防火墙有点区别,其余的配置是一样的,然后不需要加入安全区域。

当GRE遇上IPSec后,安全性终于有了保障

防火墙测试接口的连通性是没任何问题了(这里为了简化策略全放)

 

6、局域网之间互通

隧道已经通了 ,互通的话很简单,可以通过静态路由,或者是跑动态路由,这里简单点来跑个静态路由。

[BJ_FW]ip route-static 192.168.20.0 24 Tunnel 0

[BJ_FW]ip route-static 192.168.30.0 24 Tunnel 1

[CS_FW]ip route-static 192.168.10.0 24 Tunnel 0

[CD_R]ip route-static 192.168.10.0 24 Tunnel 0/0/0

7、实际测试

在测试之前记得检测客户端的地址是否都设置了,并且服务器开启了80服务

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

访问没问题,GRE打通是没任何问题了,现在主要的是如何把IPSec融入进来。

GRE Over IPSec

当GRE遇上IPSec后,安全性终于有了保障

上面GRE已经连通了,但是缺乏安全性,这个时候IPSec出现了,IPSec不单单可以自己建立隧道,还可以兼容GRE等协议,为他们提供保护,这种方式称为 GRE over IPSec,就是数据报文先通过GRE封装,然后在进行IPSec封装。为什么有这样的技术出现呢?第一个是可以兼容更多的协议来保护这些不支持安全加密的(比如GRE、L2TP等),第二个是IPSec本身它是不支持组播的,假设我们的站点之间想跑OSPF协议,如果单纯的IPSec则无法实现,有了GRE的帮忙,那么组播就能够轻松穿越了,所以GRE over IPSec会更加的灵活。

GRE与IPSec是如何封装的?

GRE与IPSec结合,这两种协议都是需要封装的,那么在IPSec里面有两种封装方式,一个是隧道、一个是传输模式,那么在GRE over IPSec中应该选择哪种呢?这就需要来了解下数据包的结构了。

当GRE遇上IPSec后,安全性终于有了保障

在GRE OVER IPSec里面,传输模式跟隧道模式都能来保护私网的数据安全,但是仔细看其实可以发现隧道模式比传输模式多了一个IPSec的头部,这是加重了数据包的长度,会容易导致分片,所以在实际中比较推荐使用传输模式。(这个是GRE over IPSec,包括后面要讲解的L2TP over IPSec都会采用传输模式),因为GRE产生新的头部已经能够保证数据包穿越互联网了,而且里面的内容被ESP进行保护加密了,达到了最终的需求。

GRE over IPSec配置

GRE上面已经配置完毕了,这里来加入IPSec进来,看看IPSec这块有什么不一样的。

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

配置里面几个不一样的地方,这里说明下

(1)ACL,平时的IPSec匹配的是双方的局域网之间的流量,但是这个是GRE over IPSec,IPSec保护GRE,而GRE里面包含了实际的数据,最终可以看到ACL匹配的各自公网地址的GRE流量。

(2)IKE提议与IPSec安全提议:会发现比之前的有点不一样,之前都是防火墙对接,所以可以用默认参数,但是有了路由器就不一样了,因为路由器的版本不一样,支持的算法强度不一样,很多没法支持最新的算法,所以要改成一致,否则会出现建立不起来的情况。

当GRE遇上IPSec后,安全性终于有了保障

(3)BJ_FW这边由于是同时跟CS与CD建立,所以需要两个IPSec policy策略,来各自匹配,但是也可以简化成一个。(视频会单独演示下)

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

问题出现了,CS_FW的建立成功了,但是CD_R却失败了,这里说下,并不是配置有问题,而是模拟器路由器与防火墙对接IPSec有这个问题,博主特意用debug看了下报错,提示是共享密钥不一致,我反复确认过,也重新输入过,确定是一致的。

当GRE遇上IPSec后,安全性终于有了保障

为了严谨性,我本想用真机AR系列路由器桥接到网络里面跟防火墙对接,结果发现桥接不起来,只好放弃了。

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

直连网关都不通,这台不通的只能用防火墙来代替了。

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

当替换这套台路由器后,用防火墙就建立起来了。

当GRE遇上IPSec后,安全性终于有了保障

BJ_FW这边有两对IKE的SA,一对是来自于CS的,一对来至于CD。

当GRE遇上IPSec后,安全性终于有了保障

两个IPSec SA里面有点特别就是在FLOW里面后面有个47,47表示协议号,就是GRE协议,说明保护的就是GRE,而且我们这里用的是隧道模式,并没有用传输模式,建立是可以建立的,但是会多出来20个字节。

当GRE遇上IPSec后,安全性终于有了保障当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

抓包也可以看到,IPSec新头部后,就是ESP,然后里面的内容都被加密了,所以看不到,那么改成传输模式看看。

ipsec proposal 1

 encapsulation-mode transport

(3个点都改成传输模式,然后要执行resetike sa    reset ipsec sa,重新建立)

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

重新建立后就变成传输模式了,这种会更加优化。

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

抓包看,用传输模式效果比隧道模式少了一个新的IPSec头部,而GRE新IP头部跟IPSec新IP头部生成的内容其实是一样的,所以在GRE over IPSec下面比较推荐用传输模式。(注意是标准的GRE over IPSec使用传输模式,在后面的案例里面会讲解利用GRE衍生出来的特殊方案,就不一定可以用传输了)

如果跑动态路由协议OSPF会发生什么事?

去掉静态路由,清空IKE与IPSec SA信息。

BJ防火墙操作

undo ip route-static 192.168.20.0 255.255.255.0 Tunnel0

undo ip route-static 192.168.30.0 255.255.255.0 Tunnel1

#

reset ike sa

reset ipse sa

#

ospf 1 router-id10.1.1.1

 area 0.0.0.0

  network 10.1.1.1 0.0.0.0

  network 10.1.1.5 0.0.0.0

  network 192.168.10.0 0.0.0.255

CS防火墙操作

undo ip route-static 192.168.10.0 255.255.255.0 Tunnel0

#

reset ike sa

reset ipse sa

#

ospf 1 router-id10.1.1.2

 area 0.0.0.0

  network 10.1.1.2 0.0.0.0

  network 192.168.20.0 0.0.0.255

 

CD防火墙操作

undo ip route-static 192.168.10.0 255.255.255.0 Tunnel0

#

reset ike sa

reset ipse sa

#

ospf 1router-id 10.1.1.6

 area 0.0.0.0

  network 10.1.1.6 0.0.0.0

  network 192.168.30.0 0.0.0.255

当GRE遇上IPSec后,安全性终于有了保障

会发现OSPF自动就建立起来了

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

IKE与IPSec SA也都有了,并没有实际实际业务流量去触发IPSec建立,那它为什么能够自动的建立起来呢?

就是OSPF的功劳,OSPF里面宣告了tunnel口以及业务口的网段,那么会定期的去发送OSPF hello包,tunnel口的流量就会被发送出去,从而触发IPSec建立,建立成功后,那么OSPF的邻居也能够正常的建立起来,这个也是在项目中用的多的一种方式,希望IPSec能够自动化的去建立,而不是断开后需要依靠业务流量来触发建立。(华为设备是可以自动触发建立的,这个后面会讲解,这里说的其实是一种思路,像思科、华三的设备目前还不支持自动建立。)

当GRE遇上IPSec后,安全性终于有了保障

BJ防火墙这边能收到2个网段的路由。

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

动态路由协议虽然很方便,但是带来了一个问题,它把各自分支的路由也学到了,相当于CS与CD之间也可以互通了。

当GRE遇上IPSec后,安全性终于有了保障

当GRE遇上IPSec后,安全性终于有了保障

两边互访没任何问题。

这就分情况来决定了

  • 如果分支之间不需要互访,建议用静态路由,如果要运行动态路由协议,建议多进程,这样可以区分开。

  • 如果分支之间需要互访,用动态路由协议是最方便的,简化配置量。

分支之间是如何通信的?

分支之间通信测试过了,但是它们之间通信是如何通的呢?分支之间并没有建立IPSec链接,其实从路由就可以看出来了,CS去往10.0跟30.0网段都是走的tunnel 10.1.1.1 BJ这边,CD去往10.0跟20.0也是走的tunnel 10.1.1.5 BJ这边,所以分支之间通信是通过BJ这边中转的,而并不是说CS与CD直接就互通了。

当GRE遇上IPSec后,安全性终于有了保障

这就带来了一个问题了,在实际项目中,确实有分支之间需要互通的场景,但是如果分支比较多,业务流量都需要经过总部中转,对总部的设备压力会相对较大,而且也吃总部的宽带资源,所以实际中要考虑的方面会多些,如果真的有很多分支需要互访,就要从总部的设备性能、带宽等方面权衡是否能够支撑起来。)

GRE over IPSec总结

  • 实际配置就是GRE+IPSec的配置,ACL与封装模式这里有点区别注意下

  • GRE over IPSec标准情况下,双方之间都是需要公网地址建立的,而且建议使用传输模式

  • 注意分片问题,建议把GRE的tunnel隧道MTU减少在1380~1400之间,尽量减少分片

  • 如果分支之间不需要互访,又跑动态路由协议,建议使用多个进程进行区分

  • 分支少的场景可以直接使用静态路由协议

  • GRE over IPSec 只要tunnel隧道不在NAT范围内,比如案例里面在GRE区域,则不需要做NONAT策略。

  • 以上就是当GRE遇上IPSec后,安全性终于有了保障的介绍,Vecloud为国内外用户供给包括全球主机托管、主机租用、云专线接入等方面的专业服务,资源覆盖全球。欢迎咨询。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

标题:当GRE遇上IPSec后,安全性终于有了保障

TAG标签:

地址:http://www.vecloud.com.cn/article/304.html

上一篇:当一端没有固定IP时,IPSec又该如何应对
下一篇:微云网络海外专线来了,访问境外资源更快捷!
返回顶部