关于Ensp中路由器启动防火墙的一点小问题

原来的一个实验环境,可以让学生理解网络基础中各网络协议的重要性。具体实验环境是Ensp软件中,添加工程,包含一个路由器两个PC机,如下图所示,路由器连接192.168.0.0和192.168.1.0这两个网段,PC也都设置了相应的网关,它们也就能互相ping通。我希望在路由器上配置防火墙功能,使PC1能ping通PC2,而PC2不能ping通PC1。
关于Ensp中路由器启动防火墙的一点小问题
我们先进行理论分析,如果上图中PC1 ping PC2,ping命令调用ICMP协议,那么PC1 发送echo-request消息,PC2向PC1发送echo-reply消息。要想实现PC1能ping通PC2,而PC2不能ping通PC1这一目地,就需要在路由器AR2的GE0/0/0接口允许echo-request消息,而禁止echo-reply消息。
但是我就掉坑里了,一言难尽。我把过程写下了,供同学们参考。
首先华为路由器配置防火墙功能和老版本的华为路由器不太一样了,也和华三的设备不太一样,和华为硬件防火墙的配置类似,但又不完全一样。都是先建立区域,把接口加入区域,配置访问控制列表,建立区域间策略,最后测试。
1、建立区域
[AR3]interface g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 192.168.0.1 24
[AR3-GigabitEthernet0/0/0]q
[AR3]interface g0/0/1
[AR3-GigabitEthernet0/0/1]ip add 192.168.1.1 24
[AR3-GigabitEthernet0/0/1]q
[AR3]firewall zone company
[AR3-zone-company]priority 10
[AR3-zone-company]q
[AR3]firewall zone outside
[AR3-zone-outside]priority 5
[AR3-zone-outside]q
路由器的防火墙区域安全优先级为1-15之间,15优先级最高。硬件防火墙优先级为1-100,100优先级最高。
2、把接口加入区域:
把接口G0/0/0加入区域company,G0/0/1加入区域outside。
[AR3]interface g0/0/0
[AR3-GigabitEthernet0/0/0]zone company
[AR3-GigabitEthernet0/0/0]q
[AR3]interface g0/0/1
[AR3-GigabitEthernet0/0/1]zone outside
[AR3-GigabitEthernet0/0/1]q
3、建立高级访问控制列表
高级访问控制列表中允许任何源到任何目的的echo-reply;
[AR3]acl 3000
[AR3-acl-adv-3000]rule permit icmp icmp-type echo-reply
[AR3-acl-adv-3000]q
4、建立区域间安全策略
建立区域company和outside之间的安全策略,启动防火墙功能,把acl3000应用到入方向。
[AR3]firewall interzone company outside
[AR3-interzone-company-outside]firewall enable
[AR3-interzone-company-outside]packet-filter 3000 inbound
[AR3-interzone-company-outside]display this
[V200R003C00]
#
firewall interzone company outside
firewall enable
packet-filter 3000 inbound
#
[AR3-interzone-company-outside]q
[AR3]
配置完成后,按照预想现在应该是PC1能ping通PC2,而PC2不能ping通PC1。结果是对的,完美,马上任务完成。
接着我就想咱应该再用一条命令,使用了这条命令,PC2就能ping通PC1了,那效果就杠杠滴。说干就干,在acl中添加命令允许icmp协议的echo-request。
[AR3-acl-adv-3000]rule permit icmp icmp-type echo-request
结果应该是PC1和PC2之间都通的,马上就应该喝着茶庆祝了,结果PC1能ping通PC2,而PC2还是不能ping通PC1。
分析原理不应该呀!
5、现在开始排错
先查看acl3000的内容是否正确:
[AR3-acl-adv-3000]display this
[V200R003C00]
#
acl number 3000
rule 5 permit icmp icmp-type echo
rule 10 permit icmp icmp-type echo-reply
#
return
[AR3-acl-adv-3000]
没有毛病,继续查看防火墙区域配置是否正确:
[AR3]display firewall zone
zone outside
priority is 5
interface of the zone is (total number 1):
GigabitEthernet0/0/1
zone company
priority is 10
interface of the zone is (total number 1):
GigabitEthernet0/0/0
zone Local
priority is 15
interface of the zone is (total number 0):
total number is : 3
没有毛病,继续查看防火墙区域之间策略:
[AR3]display firewall interzone
interzone company outside
firewall enable
packet-filter default deny inbound
packet-filter default permit outbound
packet-filter 3000 inbound
total number is : 1
[AR3]
防火墙区域之间策略也么有问题,默认的策略内部区域company允许访问外部区域outside,而外部区域outside不允许访问内部区域company。配置的包过滤入方向允许了acl3000。按说现在外部能ping通内部,内部能无障碍访问外部区域。但现在内部访问外部可以,而外部区域ping内部区域不通,不合理啊!
继续测试:
建立acl3001,允许整个icmp协议。
[AR3]acl 3001
[AR3-acl-adv-3001]rule
[AR3-acl-adv-3001]rule permit icmp
[AR3-acl-adv-3001]
然后在防火墙之间策略上应用。
[AR3]firewall interzone company outside
[AR3-interzone-company-outside]firewall enable
[AR3-interzone-company-outside]undo packet-filter 3000 inbound
[AR3-interzone-company-outside]packet-filter 3001 inbound
[AR3-interzone-company-outside]display this
[V200R003C00]
#
firewall interzone company outside
firewall enable
packet-filter 3001 inbound
#
[AR3-interzone-company-outside]q
[AR3]
现在测试PC1和PC2之间都能ping通了。按说应该结束了,但这不是我想要的结果,不能这么完。接着用wireshark抓包分析一下。两种包,分别如下:
关于Ensp中路由器启动防火墙的一点小问题
图1 echo-request
关于Ensp中路由器启动防火墙的一点小问题
图2 echo-reply
数据包还是icmp的echo-request和echo-request这两种类型。那么问题来了为什么acl3000允许这两种包PC2到PC1不能通过;而acl3001允许icmp协议,这两种包就能通过呢?
我就陷入了凝思苦想啊,揪掉了无数根头发之后,我猜了一下,是不是Ensp这个模拟器的防火墙功能不支持检查ICMP等协议的类型?
我继续用tcp协议测试,确实是不行(为了缩短篇幅,此处就不再演示过程)。
所以我就可以确定Ensp这个模拟器功能有bug,或者说是功能不完备!
那我辛辛苦苦想的这个流程,咋办,讲课时没有真实设备啊。
那咱就费点劲换华三的模拟器HCL v2.1,拓扑图如下图,其中MSR36-20_1作为路由器,MSR36-20_5和MSR36-20_6模拟PC机。
关于Ensp中路由器启动防火墙的一点小问题
MSR36-20_1的配置信息如下
<H3C>display current-configuration
#
version 7.1.075, Alpha 7571
#
sysname H3C
#
interface GigabitEthernet0/0
port link-mode route
combo enable copper
ip address 192.168.0.1 255.255.255.0
packet-filter 3000 inbound
#
interface GigabitEthernet0/1
port link-mode route
combo enable copper
ip address 192.168.1.1 255.255.255.0
上面加粗字体部分表示是应用了访问控制列表ACL3000。
[H3C]display acl 3000
Advanced IPv4 ACL 3000, 2 rules,
ACL's step is 5
rule 0 permit icmp icmp-type echo
rule 5 deny icmp icmp-type echo-reply
ACL3000的具体命令为允许echo,拒绝echo-reply。
实验结果MSR36-20_6能ping通MSR36-20_5,MSR36-20_5不能ping通MSR36-20_6,与预想的结果相同。
实验就告一段落,给个教训就是,深入了理解网络协议,不要完全信任模拟器软件,能有真实环境尽量在真实环境中测试。

猜你喜欢

转载自blog.51cto.com/25167/2120188
今日推荐