(石家莊郵電職業(yè)技術(shù)學院,河北 石家莊 050021)
訪問控制列表(Access Control List,ACL)技術(shù)是一種簡單的靜態(tài)包過濾防火墻技術(shù),它能夠通過數(shù)據(jù)包的源地址、目的地址、源端口號、目的端口號、協(xié)議類型等一系列的匹配條件對網(wǎng)絡中的流量進行識別并過濾,從而達到對特定流量進行控制以保護內(nèi)部網(wǎng)絡安全的目的。
網(wǎng)絡地址轉(zhuǎn)換(Network Address Translation,NAT)技術(shù)最初是作為緩解 IPv4地址空間緊張的一種解決方案引入的,其主要作用就是通過將私有 IP地址轉(zhuǎn)換為合法公有IP地址,使私有網(wǎng)絡中的主機可以通過共享少量的公有 IP地址訪問Internet。另外,NAT技術(shù)在客觀上屏蔽了企業(yè)內(nèi)部網(wǎng)絡的真實IP地址,一定程度上保護了內(nèi)部網(wǎng)絡不受到外部網(wǎng)絡的主動攻擊。
由于網(wǎng)絡一般既會有安全的需求,又會有節(jié)約IP地址的需求,因此ACL與NAT往往會被同時應用在網(wǎng)絡中。而ACL與NAT又都要求應用在企業(yè)網(wǎng)絡與Internet相連的網(wǎng)絡邊界上,應用位置重疊,這時候就必須要考慮到ACL與NAT的執(zhí)行順序關系,從而確定ACL是對內(nèi)部本地地址進行約束還是對內(nèi)部全局地址進行約束。
作為當前兩大主流的網(wǎng)絡設備生產(chǎn)商,H3C公司的網(wǎng)絡設備和CISCO公司的網(wǎng)絡設備(包括銳捷、神州數(shù)碼等公司的類CISCO設備)在對ACL與NAT的執(zhí)行順序處理上存在較大的差異,這就要求網(wǎng)絡管理人員必須要了解不同廠商設備的處理情況,從而確保ACL能夠在保護合法流量的同時有效的防范來自Internet的惡意流量攻擊。
在進行執(zhí)行順序驗證之前,首先需要搭建一個簡單的實驗網(wǎng)絡,如圖1所示。
圖1 執(zhí)行順序?qū)嶒灳W(wǎng)絡
將內(nèi)部網(wǎng)絡主機PC1和PC2的IP地址分別靜態(tài)轉(zhuǎn)換到內(nèi)部全局地址202.207.120.20和202.207.120.30上。具體配置如下:
配置完成后,在PC1或PC2上可以PING通PC3,并且在路由器上使用display nat session命令可以看到內(nèi)部本地地址192.168.1.2到內(nèi)部全局地址202.207.120.20、內(nèi)部本地地址192.168.1.3到內(nèi)部全局地址202.207.120.30之間的映射關系。
在路由器上配置基本ACL并進行應用,具體配置如下:
從上面的配置可以看出,ACL 2000中的規(guī)則rule 0的定義是拒絕源IP地址為內(nèi)部本地地址192.168.1.2的數(shù)據(jù)流量,該 ACL被應用在了路由器的 Ethernet 0/1接口的outbound方向上。
配置完成后,在PC1上使用PING命令測試到達PC3的連通性,會發(fā)現(xiàn)無法連通。在路由器上執(zhí)行命令 display acl 2000,顯示結(jié)果如下:
從顯示的結(jié)果可以看出,PC1發(fā)出的流量命中了規(guī)則rule 0,因而被拒絕。因此我們通過推斷可知,在H3C路由器某個接口上同時存在出站ACL和NAT時,出站流量應該是先去匹配出站ACL,然后再進行地址的轉(zhuǎn)換。
首先將ACL 2000從路由器上刪除掉,然后配置高級ACL并進行應用,具體配置如下:
從上面的配置可以看出,ACL 3000中的規(guī)則rule 0的定義是拒絕目的IP地址為內(nèi)部本地地址192.168.1.2的數(shù)據(jù)流量,該 ACL被應用在了路由器的 Ethernet 0/1接口的inbound方向上。
配置完成后,在PC3上使用命令“ping 202.207.120.20”測試到達PC1的連通性,會發(fā)現(xiàn)無法連通。在路由器上執(zhí)行命令display acl 3000,顯示結(jié)果如下:
從顯示的結(jié)果可以看出,PC3發(fā)出的流量命中了規(guī)則rule 0,因而被拒絕。因此我們通過推斷可知,在H3C路由器某個接口上同時存在入站ACL和NAT時,入站流量應該是先進行地址的轉(zhuǎn)換,然后去匹配入站ACL。
依然使用圖1所示的實驗網(wǎng)絡,并進行NAT的配置。
在路由器上配置與第2.1節(jié)類似的標準ACL,具體配置如下:
配置完成后,在PC1上使用PING命令測試到達PC3的連通性,會發(fā)現(xiàn)能夠連通。而如果將上面標準ACL的第一條規(guī)則修改為deny host 202.207.120.20,即將約束條件從內(nèi)部本地地址修改為內(nèi)部全局地址,再次進行測試,則PC1將無法連通PC3。
在路由器上執(zhí)行命令 show access-lists 1,顯示結(jié)果如下:
從顯示的結(jié)果可以看出,PC1發(fā)出測流量命中了第一條規(guī)則,而該規(guī)則是對內(nèi)部全局地址進行的約束??梢娫贑ISCO路由器某個接口上同時存在出站ACL和NAT時,出站流量應該是先進行地址的轉(zhuǎn)換,然后再去匹配出站ACL。
首先將access-list 1刪除掉,然后配置與第2.2節(jié)類似的擴展ACL,具體配置如下:
配置完成后,在PC3上使用命令“ping 202.207.120.20”測試到達PC1的連通性,會發(fā)現(xiàn)能夠連通。而如果將上面標準 ACL的第一條規(guī)則修改為 deny ip any host 202.207.120.20,即將約束條件從內(nèi)部本地地址修改為內(nèi)部全局地址,再次進行測試,則PC3將無法連通PC1。
在路由器上執(zhí)行命令 show access-lists 100,顯示結(jié)果如下:
從顯示的結(jié)果可以看出,PC3發(fā)出測流量命中了第一條規(guī)則,而該規(guī)則是對內(nèi)部全局地址進行的約束??梢娫贑ISCO路由器某個接口上同時存在入站ACL和NAT時,入站流量應該是先匹配入站ACL,然后再進行地址的轉(zhuǎn)換。
通過具體的實驗驗證可知,H3C設備和CISCO設備在對ACL與NAT的執(zhí)行順序處理上完全相反。由于在實際的網(wǎng)絡中可能存在來自不同廠商的設備,因此在進行具體的ACL策略應用前一定要了解具體設備對ACL與NAT的執(zhí)行順序,以確保ACL的有效性。
[1]杭州華三通信技術(shù)有限公司.路由與交換技術(shù) 第 1卷(下冊)[M].北京:清華大學出版社,2011.
[2]Cisco Systems公司.思科網(wǎng)絡技術(shù)學院教程[M].北京:人民郵電出版社,2010.
[3]田庚林,田華,張少芳.計算機網(wǎng)絡安全與管理[M].北京:清華大學出版社,2010.