实验中所有设备的地址配置都如图上标注(下图有处地方错了,防火墙的下行口左边连接的是VLAN10,右边是VLAN20)。
设备名称对应表
设备名称 | 对应设备 |
---|---|
F1000_1 | FW |
S5820V2-54QS-GE_2 | SW1 |
S5820V2-54QS-GE_3 | SW2 |
MSR36-20_4 | Master |
MSR36-20_5 | ISP |
MSR36-20_6 | Branch |
软件为HCL v5.7.1模拟器
交换设备为S5820V2-54QS
路由设备为MSR36_20
防火墙为F1060
按照拓扑图所示配置,业务网段全配置在设备的loopback接口,配置过程略。
OSPF的区域划分为,和防火墙直连的网段全部选告进area 0,业务交换机上的业务网段宣告进area 1。
[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
[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 #可以直接聚合这四个业务网段
<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
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
将接口加入到对应的安全区域
[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
采用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
[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
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
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
# 使用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
# 使用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
在这一步可能有人会提出问题为什么配置了两条ACL,而且第一条还要拒绝?
这是一个很值得思考的问题,单独做NAT的话,第一条策略确实显得多余了,但是在这里出口路由器不仅仅用于NAT,还被用做IPsec VPN。我们知道IPsec需要配置感兴趣流来抓取本端私网到达对端私网的流量,NAT转换抓取的同样也是本端私网流量,且NAT的优先级高于IPsec的优先级,如此一来会导致需要被IPsec封装的流量被NAT抓取且当做正常流量导向了公网。
所以为了避免这种情况,我们需要在用于匹配NAT的ACL再加上一条ACL用于匹配IPsec的感兴趣流,成功匹配则将其丢弃,这样即使访问对端私网的流量到达了NAT也会被其丢弃,同时也不会影响NAT的正常工作。
本配置通过IKE自动协商IPsec SA,工作模式采用主模式、安全协议采用ESP、封装方式采用隧道封装
[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 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
# 创建预共享秘钥
[Master]ike keychain key1
# 指定对端地址,设置秘钥为123456
[Master-ike-keychain-key1]pre-shared-key address 100.2.2.2 255.255.255.0 key simple 123456
# 创建模板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转换集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安全策略
[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
[Master]interface GigabitEthernet0/1
# 应用ipsec安全策略
[Master-GigabitEthernet0/1]ipsec apply policy policy1
# 配置感兴趣流
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
#
注意点:由于路由器和交换机默认会使用包的出接口地址作为源地址发起请求,因此测试需要使用-a参数带源地址发起ping请求。
SW1上的总部业务网段能访问ISP
分部上的业务网段也能访问ISP
SW1业务网段和SW2业务网段能互访
SW1的业务网段和SW2的业务网段能和分部实现互访
SW1业务网段<—>分部业务网段
SW2业务网段<—>分部业务网段
防火墙上的OSPF邻居信息
wireshark抓包信息
下面是在Master的公网口进行抓包,。该包是172.16.0.1发给100.3.3.1的ping包,从包中信息可以看到源地址转换成了公网口IP地址。