H3C防火墙以及IPsec综合实验

1 实验拓扑和需求

1.1 网络拓扑

实验中所有设备的地址配置都如图上标注(下图有处地方错了,防火墙的下行口左边连接的是VLAN10,右边是VLAN20)。

在这里插入图片描述

设备名称对应表

设备名称对应设备
F1000_1FW
S5820V2-54QS-GE_2SW1
S5820V2-54QS-GE_3SW2
MSR36-20_4Master
MSR36-20_5ISP
MSR36-20_6Branch

1.2 实验需求

  1. 总部所有业务网段之间都能正常互访
  2. 总部所有业务网段都能访问internet,但是Internet不能访问业务网段
  3. 总部和分部之间的业务网段能进行互访

1.3 实验思路

  1. 总部内网通过ospf实现网络路由,以使总部业务网段能互通。
  2. 总部和分部之间的出口路由器都配置easy-ip使业务网段能正常上网。
  3. 由于业务交换机和出口路由以及分部之间做了防火墙隔离,因此实现上面这些需求需要在防火墙上配置相应策略放行相关流量。
  4. 部署IPsec VPN使总部与分部之间实现互访。

1.4 实验环境

软件为HCL v5.7.1模拟器

交换设备为S5820V2-54QS

路由设备为MSR36_20

防火墙为F1060

2 实验配置

2.1 设备IP地址配置

按照拓扑图所示配置,业务网段全配置在设备的loopback接口,配置过程略。

2.2 OSPF配置

OSPF的区域划分为,和防火墙直连的网段全部选告进area 0,业务交换机上的业务网段宣告进area 1。

2.2.1 SW1 OSPF配置
[SW1-ospf-1]dis th
ospf 1 router-id 2.2.2.2
 area 0.0.0.0
  network 192.168.1.0 0.0.0.255
 area 0.0.0.1
  network 172.16.0.0 0.0.0.255
  network 172.16.1.0 0.0.0.255
  network 172.16.2.0 0.0.0.255
  network 172.16.3.0 0.0.0.255
2.2.2 SW2 OSPF配置
[SW2-ospf-1]dis th
#
ospf 1 router-id 3.3.3.3
 area 0.0.0.0
  network 192.168.2.0 0.0.0.255
 area 0.0.0.1
  network 172.16.4.0 0.0.3.255 #可以直接聚合这四个业务网段
2.2.3 Master OSPF配置
<Master>dis cu | be ospf
ospf 1 router-id 4.4.4.4
 default-route-advertise always #引入默认路由进OSPF
 area 0.0.0.0
  network 192.168.3.0 0.0.0.255
2.2.4 防火墙OSPF配置

HCL模拟器中防火墙的账号密码为admin

<FW>dis cu | be ospf
ospf 1 router-id 1.1.1.1
 area 0.0.0.0
  network 192.168.1.0 0.0.0.255
  network 192.168.2.0 0.0.0.255
  network 192.168.3.0 0.0.0.255
 

2.3 防火墙区域和策略配置

2.3.1 防火墙安全区域配置
将接口加入到对应的安全区域
[FW]security-zone name Trust
[FW-security-zone-Trust] import interface GigabitEthernet1/0/0
[FW-security-zone-Trust] import interface GigabitEthernet1/0/1
[FW-security-zone-Trust]
[FW]security-zone name Untrust
[FW-security-zone-Untrust] import interface GigabitEthernet1/0/2
2.3.1 放行总部所有业务网段到Internet的流量

采用security-policy进行访问控制

# 进入到安全策略视图
[FW]security-policy ip
# 设置业务到internet的规则名字
[FW-security-policy-ip]rule name yewu_untrust
# 设置源安全区域为trust,指向业务网段所造区域
[FW-security-policy-ip-4-yewu_untrust]  source-zone trust
# 设置目的安全区域为untrust,指向Internet所在区域
[FW-security-policy-ip-4-yewu_untrust]  destination-zone untrust
# 设置源IP子网为业务网段,这里为了方面配置进行了聚合
[FW-security-policy-ip-4-yewu_untrust]  source-ip-subnet 172.16.0.0 255.255.248.0
# 设置目的地址为任意,因为Internet地址繁多
[FW-security-policy-ip-4-yewu_untrust]  destination-ip-subnet 0.0.0.0 0.0.0.0
# 动作为pass,即允许通过
[FW-security-policy-ip-4-yewu_untrust]  action pass
2.3.2 放行总部业务网段之间的流量
[FW-security-policy-ip]rule name yewu_yewu
# 因为这两个业务网段都属于trust区域,所以源目区域都指向trust
[FW-security-policy-ip-7-yewu_yewu]source-zone trust
[FW-security-policy-ip-7-yewu_yewu]destination-zone trust
[FW-security-policy-ip-7-yewu_yewu]source-ip-subnet 172.16.0.0 22
[FW-security-policy-ip-7-yewu_yewu]destination-ip-subnet 172.16.4.0 22
[FW-security-policy-ip-7-yewu_yewu]action pass

2.3.3 放行总部与分部之间的流量

1.放行总部去往分部的流量


[FW-security-policy-ip] rule name m2b
[FW-security-policy-ip-5-m2b]  source-zone trust
[FW-security-policy-ip-5-m2b]  destination-zone untrust
[FW-security-policy-ip-5-m2b]  source-ip-subnet 172.16.0.0 255.255.248.0 
[FW-security-policy-ip-5-m2b]  destination-ip-subnet 172.16.8.0 255.255.252.0 
[FW-security-policy-ip-5-m2b]  action pass

2.放行分部去往总部的流量

[FW-security-policy-ip] rule name b2m
[FW-security-policy-ip-6-b2m]  source-zone untrust
[FW-security-policy-ip-6-b2m]  destination-zone trust
[FW-security-policy-ip-6-b2m]  source-ip-subnet 172.16.8.0 255.255.252.0 
[FW-security-policy-ip-6-b2m]  destination-ip-subnet 172.16.0.0 255.255.248.0 
[FW-security-policy-ip-6-b2m]  action pass
2.3.4 放行OSPF报文

​ 1.放行外部区域进入防火墙的流量,使其他设备可以和防火墙进行ospf报文交换

[FW-security-policy-ip]rule name ospfinlocal
# 指定源区域为与防火墙相连的区域
[FW-security-policy-ip-0-ospfinlocal]  source-zone trust
[FW-security-policy-ip-0-ospfinlocal]  source-zone untrust
# 目的区域为防火墙所在的Local区域
[FW-security-policy-ip-0-ospfinlocal]  destination-zone local
# 指定应用的服务
[FW-security-policy-ip-0-ospfinlocal]  service ospf
[FW-security-policy-ip-0-ospfinlocal]  action pass

2.放行防火墙出去的流量,使其他设备可以和防火墙进行ospf报文交换

[FW-security-policy-ip] rule name ospfoutlocal
[FW-security-policy-ip-3-ospfoutlocal]  source-zone local
[FW-security-policy-ip-3-ospfoutlocal]  destination-zone untrust
[FW-security-policy-ip-3-ospfoutlocal]  destination-zone trust
[FW-security-policy-ip-3-ospfoutlocal]  service ospf
[FW-security-policy-ip-3-ospfoutlocal]  action pass  

3.放行untrust到trunst区域的流量,使trust到untrust之间的报文可通

[FW-security-policy-ip] rule name u2t
[FW-security-policy-ip-1-u2t]  source-zone untrust
[FW-security-policy-ip-1-u2t]  destination-zone trust
# 源目子网为和防火墙直连的,分别位于untrust和trust的网段
[FW-security-policy-ip-1-u2t]  source-ip-subnet 192.168.3.0 255.255.255.0 
[FW-security-policy-ip-1-u2t]  destination-ip-subnet 192.168.1.0 255.255.255.0 
[FW-security-policy-ip-1-u2t]  destination-ip-subnet 192.168.2.0 255.255.255.0 
[FW-security-policy-ip-1-u2t]  action pass

4.放行trust到untrunst区域的流量,使untrust到trust之间的报文可通

[FW-security-policy-ip] rule name t2u
[FW-security-policy-ip-2-t2u]  source-zone trust
[FW-security-policy-ip-2-t2u]  destination-zone untrust
# 源目子网为和防火墙直连的,分别位于trust和untrust的网段
[FW-security-policy-ip]  source-ip-subnet 192.168.1.0 255.255.255.0 
[FW-security-policy-ip-2-t2u]  source-ip-subnet 192.168.2.0 255.255.255.0 
[FW-security-policy-ip-2-t2u]  destination-ip-subnet 192.168.3.0 255.255.255.0 
[FW-security-policy-ip-2-t2u]  action pass

2.4 Easy-ip配置

2.4.1 总部出口路由配置
# 使用acl抓取总部业务网段流量
[Master]acl advanced 3000
[Master-acl-ipv4-adv-3000] rule 0 deny ip source 172.16.0.0 0.0.7.255 destination 172.16.8.0 0.0.3.255
[Master-acl-ipv4-adv-3000] rule 5 permit ip source 172.16.0.0 0.0.7.255

# 在接入internet的接口上应用端口转换
[Master]interface GigabitEthernet0/1
[Master-GigabitEthernet0/1] nat outbound 3000
2.4.2 分部出口路由器的配置
# 使用acl抓取分部业务网段流量
[Branch]acl advanced 3000
[Branch-acl-ipv4-adv-3000] rule 0 deny ip source 172.16.8.0 0.0.3.255 destination 172.16.0.0 0.0.7.255
[Branch-acl-ipv4-adv-3000] rule 5 permit ip source 172.16.8.0 0.0.3.255

# 在接入internet的接口上应用端口转换
[Branch]interface GigabitEthernet0/0
[Branch-GigabitEthernet0/0] nat outbound 3000
2.4.3 NAT配置注意事项

在这一步可能有人会提出问题为什么配置了两条ACL,而且第一条还要拒绝?

这是一个很值得思考的问题,单独做NAT的话,第一条策略确实显得多余了,但是在这里出口路由器不仅仅用于NAT,还被用做IPsec VPN。我们知道IPsec需要配置感兴趣流来抓取本端私网到达对端私网的流量,NAT转换抓取的同样也是本端私网流量,且NAT的优先级高于IPsec的优先级,如此一来会导致需要被IPsec封装的流量被NAT抓取且当做正常流量导向了公网。

所以为了避免这种情况,我们需要在用于匹配NAT的ACL再加上一条ACL用于匹配IPsec的感兴趣流,成功匹配则将其丢弃,这样即使访问对端私网的流量到达了NAT也会被其丢弃,同时也不会影响NAT的正常工作。

2.5 IPsec配置

本配置通过IKE自动协商IPsec SA,工作模式采用主模式、安全协议采用ESP、封装方式采用隧道封装

2.5.1 Master路由器配置
  • 配置感兴趣流
[Master-acl-ipv4-adv-3001]acl advanced 3001
[Master-acl-ipv4-adv-3001] rule 0 permit ip source 172.16.0.0 0.0.7.255 destination 172.16.8.0 0.0.3.255
  • 创建ike proposal(IKE提议)
# 创建ike proposal 1
[Master]ike proposal 1
# 加密算法为aes-cbc-128
[Master-ike-proposal-1]encryption-algorithm aes-cbc-128
# 认证方法为预共享秘钥
[Master-ike-proposal-1]authentication-method pre-share 
# 认证算法为sha
[Master-ike-proposal-1]authentication-algorithm sha
  • 创建ike keychain(IKE秘钥)
# 创建预共享秘钥
[Master]ike keychain key1
# 指定对端地址,设置秘钥为123456
[Master-ike-keychain-key1]pre-shared-key address 100.2.2.2 255.255.255.0 key simple 123456
  • 创建ike profile(IKE模板)
# 创建模板p1
[Master]ike profile p1
# 指定使用的秘钥
[Master-ike-profile-p1] keychain key1
# 指定使用IP地址标识本端身份
[Master-ike-profile-p1] local-identity address 100.1.1.1
# 指定匹配对端的身份类型为ip地址
[Master-ike-profile-p1] match remote identity address 100.2.2.2 255.255.255.0
# 指定使用的提议
[Master-ike-profile-p1] proposal 1 
[Master-ike-profile-p1]
  • 创建IPsec tranform-set(ipsec转换集/模板)
# 创建ipsec转换集tran1
[Master]ipsec transform-set tran1
# 指定esp加密算法
[Master-ipsec-transform-set-tran1]esp encryption-algorithm aes-cbc-128 
# 指定esp认证算法
[Master-ipsec-transform-set-tran1] esp authentication-algorithm sha1 
# 指定安全协议为esp
[Master-ipsec-transform-set-tran1]protocol esp
# 指定封装模式为隧道模式
[Master-ipsec-transform-set-tran1]encapsulation-mode tunnel 
  • 创建ipsec policy(ipsec策略)
# 创建ipsec安全策略
[Master]ipsec policy policy1 1 isakmp
# 指定ipsec转换集
[Master-ipsec-policy-isakmp-policy1-1] transform-set tran1 
# 指定感兴趣流
[Master-ipsec-policy-isakmp-policy1-1] security acl 3001 
# 指定隧道的本端地址
[Master-ipsec-policy-isakmp-policy1-1] local-address 100.1.1.1
# 指定隧道的对端地址
[Master-ipsec-policy-isakmp-policy1-1] remote-address 100.2.2.2
# 指定IPsec安全策略模板引用的IKE模板
[Master-ipsec-policy-isakmp-policy1-1] ike-profile p1
  • 在接口应用ipsec策略
 [Master]interface GigabitEthernet0/1
 # 应用ipsec安全策略
 [Master-GigabitEthernet0/1]ipsec apply policy policy1
2.5.2 Branch路由器配置
# 配置感兴趣流
acl advanced 3001
 rule 0 permit ip source 172.16.8.0 0.0.3.255 destination 172.16.0.0 0.0.7.255
 
# 创建ike proposal(IKE提议)
ike proposal 1
 encryption-algorithm aes-cbc-128
 authentication-method pre-share 
 authentication-algorithm sha
 
# 创建IKE秘钥
ike keychain key1
 pre-shared-key address 100.1.1.1 255.255.255.0 key simple 123456
 
# 创建IKE模板
ike profile p1
 keychain key1
 local-identity address 100.2.2.2
 match remote identity address 100.1.1.1 255.255.255.255
 
# 创建ipsec转换集
ipsec transform-set tran1
 esp encryption-algorithm aes-cbc-128 
 esp authentication-algorithm sha1
 protocol esp
 encapsulation-mode tunnel 

# 创建ipsec安全策略
ipsec policy policy1 1 isakmp
 transform-set tran1 
 security acl 3001 
 local-address 100.2.2.2
 remote-address 100.1.1.1
 ike-profile p1

# 下发安全策略到相应端口
interface GigabitEthernet0/0
 ipsec apply policy policy1
# 

3 实验结果

3.1 连通性测试

注意点:由于路由器和交换机默认会使用包的出接口地址作为源地址发起请求,因此测试需要使用-a参数带源地址发起ping请求。

SW1上的总部业务网段能访问ISP

在这里插入图片描述

SW2上的总部业务网段同样能访问ISP
在这里插入图片描述

分部上的业务网段也能访问ISP

在这里插入图片描述

SW1业务网段和SW2业务网段能互访

在这里插入图片描述

SW1的业务网段和SW2的业务网段能和分部实现互访

SW1业务网段<—>分部业务网段

在这里插入图片描述

在这里插入图片描述

SW2业务网段<—>分部业务网段

在这里插入图片描述
在这里插入图片描述

3.2 信息显示

IKE SA信息
在这里插入图片描述

IPsec SA信息
在这里插入图片描述

防火墙上的OSPF邻居信息

在这里插入图片描述

wireshark抓包信息

下面是在Master的公网口进行抓包,。该包是172.16.0.1发给100.3.3.1的ping包,从包中信息可以看到源地址转换成了公网口IP地址。
在这里插入图片描述

下面这个包是在Master的公网口抓取的发给分部的包,可以看到其安全协议是ESP,源目IP地址分别为隧道两端的地址。
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐