用訪問控制列表實現(xiàn)網(wǎng)絡(luò)單向訪問 |
發(fā)布時間: 2012/7/4 17:08:22 |
簡易拓撲圖(所有子網(wǎng)掩碼均為255.255.255.0): PC(10.1.1.2)---E0(10.1.1.1)[RouterA]S0(192.1.1.1)---S1(192.1.1.2)[RouterB] 做網(wǎng)絡(luò)的單向訪問其實實現(xiàn)的是防火墻的基本功能:我是內(nèi)網(wǎng),你是外網(wǎng),我能訪問你,但你不能訪問我。 所以現(xiàn)在假設(shè)RouterA的E0口所連網(wǎng)段為內(nèi)網(wǎng)段,RouterA S0所連的網(wǎng)段為外網(wǎng)段,還假設(shè)我想做的是內(nèi)網(wǎng)的PC機能ping通外網(wǎng)RouterB的S1口,但RouterB卻ping不進我的內(nèi)網(wǎng)。 用ACL來實現(xiàn)類似的單向訪問控制需要用到一種特殊的ACL,叫Reflexive ACL。Reflexive ACL的配置分為兩個部分,一部分是outbound的配置,一部分是inbound的配置。 在繼續(xù)下面的說明之前,先說點題外話。在最開始想到單向訪問問題時,我(也包括其它一些我的同事)自然的就這么想:那我在E0口上允許PC的流量進來,然后再在S0口上禁止RouterB的流量進來不就行了?看上去好像沒什么問題,但一試就知道其實是不行的。為什么不行呢,因為很多人都忽略了這么一個問題:即絕大多數(shù)的網(wǎng)絡(luò)流量都是有去有回的,上面的方法只解決了去的問題,但這個流量在到達RouterB后,RouterB還需要返回這個流量給PC,這個返回的流量到了RouterA的S0口,但上面的方法卻在S0口上禁止了RouterB的流量進來,回來的流量被擋住了,通訊失敗。 好,下面再切回來。Reflexive ACL中outbound的部分決定了我出去的哪些內(nèi)網(wǎng)網(wǎng)絡(luò)流量是需要被單向訪問的,inbound部分決定了這些流量在返回后能被正確的識別并送給內(nèi)網(wǎng)發(fā)起連接的PC機。 Reflexive ACL中outbound的部分: ip access-list extended outbound_filter permit icmp any any reflect icmp_traffic permit ip any any !---注意在Reflexive ACL中只能用named方式的ACL,不能用numbered方式的ACL。 !---基本配置和普通ACL并沒有什么太多不同,不同之處是reflect icmp_traffic,它的意思是這條ACE作為單向流量來處理,并且給了一個名稱叫icmp_traffic,icmp_traffic在inbound部分被引用。 !---permit ip any any并不是必要的,加在這里是為了另一個測試,下面會說明。 Reflexive ACL中inbound的部分: ip access-list extended inbound_filter evaluate icmp_traffic deny ip any any log !---inbound的配置有和普通ACL有點不同了,第一句evaluate icmp_traffic對上述outbound配置中的icmp_traffic進行了引用,也就是說,它要檢查從外網(wǎng)進來的流量,如果這個流量確實是從內(nèi)網(wǎng)發(fā)起的對外訪問的返回流量,那么允許這個流量進來。
本文出自:億恩科技【www.artduck.net】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |