關於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,與預想的結果相同。
實驗就告一段落,給個教訓就是,深入了理解網絡協議,不要完全信任模擬器軟件,能有真實環境儘量在真實環境中測試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章