◆汪海濤 石靈心 戴宏明
(1.廣東科貿(mào)職業(yè)學(xué)院信息與自動(dòng)化學(xué)院 廣東 510620;2.廣東輕工職業(yè)技術(shù)學(xué)院管理學(xué)院 廣東510300)
在網(wǎng)絡(luò)系統(tǒng)中,時(shí)常需要根據(jù)網(wǎng)絡(luò)管理者的意圖,讓某些滿足條件的數(shù)據(jù)包可以通過,不滿足條件的數(shù)據(jù)包拒絕通過,這時(shí)就需要用到ACL。ACL 即訪問控制列表,通過定義ACL,可以實(shí)現(xiàn)數(shù)據(jù)包的過濾規(guī)則[1]。
ACL 的類別可以分為:標(biāo)準(zhǔn)ACL 和擴(kuò)展ACL。標(biāo)準(zhǔn)ACL 只檢查數(shù)據(jù)包的源地址,擴(kuò)展ACL 檢查數(shù)據(jù)包的源地址、目的地址、協(xié)議、端口。首先,根據(jù)網(wǎng)絡(luò)管理者的意圖定義好ACL,然后將ACL綁定在數(shù)據(jù)包通過三層設(shè)備的某個(gè)接口,那么這個(gè)ACL 過濾規(guī)則便生效了。在特殊情況下,網(wǎng)絡(luò)管理者要求過濾規(guī)則是用戶對(duì)Ⅰnternet發(fā)起請(qǐng)求的回路信息可以通過,但是來自Ⅰnternet 對(duì)用戶的主動(dòng)訪問被拒絕,就需要使用自反ACL 這一特殊功能[2]。
自反訪問列表ACL(Reflexive Access Lists),Reflexive 翻譯過來即自反的意思。自反ACL 會(huì)根據(jù)一個(gè)方向的訪問控制列表,自動(dòng)生成另一個(gè)反方向的控制列表,該反方向的控制列表和原本控制列表的源地址和目的地址反轉(zhuǎn),而且源端口號(hào)和目的端口號(hào)也相應(yīng)反轉(zhuǎn)的一個(gè)列表[3]。有的情況下,這個(gè)反轉(zhuǎn)的列表還匹配了時(shí)間限制,過了有效時(shí)間就會(huì)超時(shí),這個(gè)新創(chuàng)建的自反列表就會(huì)消失,這樣極大地提高了網(wǎng)絡(luò)的安全性[4]。
自反ACL 不能直接應(yīng)用到路由器或者是三層交換機(jī)的接口,而是“嵌套”在接口所使用的擴(kuò)展命名ACL 中,然后網(wǎng)絡(luò)管理者將這個(gè)擴(kuò)展命名的ACL 綁定到三層設(shè)備的某個(gè)接口。自反ACL 不能單獨(dú)定義,只能在擴(kuò)展命名ACL 中定義。自反ACL 不可以在編號(hào)ACL 或標(biāo)準(zhǔn)命名ACL 中定義,也不能在其他協(xié)議ACL 中定義[5]。
自反ACL 的特點(diǎn)是讓出站數(shù)據(jù)包的目的地收到數(shù)據(jù)包后,發(fā)出的相應(yīng)的應(yīng)答流量回到該出站數(shù)據(jù)包的源地址。網(wǎng)絡(luò)管理者制定規(guī)則時(shí),允許這種應(yīng)答流量通過,并返回到出站數(shù)據(jù)包的源地址。但拒絕來自外部用戶對(duì)源地址主動(dòng)發(fā)起的數(shù)據(jù)流量[6]。
網(wǎng)絡(luò)管理員使用自反ACL 來允許從內(nèi)部網(wǎng)絡(luò)發(fā)起會(huì)話的ⅠP應(yīng)答流量,同時(shí)拒絕外部網(wǎng)絡(luò)發(fā)起的主動(dòng)ⅠP 流量。因此,自反ACL 應(yīng)用在網(wǎng)絡(luò)三層設(shè)備中,使得網(wǎng)絡(luò)管理者可以動(dòng)態(tài)管理會(huì)話流量。三層設(shè)備檢查出站的數(shù)據(jù)包,就會(huì)在臨時(shí)ACL 中添加條目以允許針對(duì)該出站的應(yīng)答數(shù)據(jù)包進(jìn)入[7]。自反ACL 只創(chuàng)建臨時(shí)條目,當(dāng)新的會(huì)話開始,有用戶數(shù)據(jù)包出站,這些條目將自動(dòng)產(chǎn)生,當(dāng)應(yīng)答信息返回到源地址,本次會(huì)話結(jié)束時(shí)三層設(shè)備自動(dòng)刪除這些條目[8]。
自反ACL 相比基本的ACL 具有以下幾個(gè)優(yōu)點(diǎn):
(1)自反ACL 使用簡單。與標(biāo)準(zhǔn)和擴(kuò)展ACL 相比,他對(duì)網(wǎng)絡(luò)傳輸中的數(shù)據(jù)包實(shí)施更強(qiáng)的控制。自反ACL 是允許高層會(huì)話信息的ⅠP 數(shù)據(jù)包過濾規(guī)則。
(2)自反ACL 可以較安全的保護(hù)內(nèi)部網(wǎng)絡(luò),因?yàn)樗梢宰柚箯耐獠烤W(wǎng)絡(luò)主動(dòng)發(fā)起的訪問內(nèi)部用戶的流量,但是外網(wǎng)對(duì)內(nèi)網(wǎng)用戶的應(yīng)答流量可以通過。
(3)自反ACL 是臨時(shí)產(chǎn)生的,有用戶數(shù)據(jù)包出站,這些自反ACL 將自動(dòng)產(chǎn)生,當(dāng)Session 結(jié)束時(shí),自反ACL 就被自動(dòng)刪除。
(4)自反ACL 不能直接被定義為列表號(hào)或者是名稱,而是嵌套在一個(gè)擴(kuò)展命名訪問列表下的。
本項(xiàng)目以自反ACL 技術(shù)為核心,實(shí)現(xiàn)局域網(wǎng)內(nèi)部用戶可以訪問外網(wǎng)用戶,但外網(wǎng)用戶不能主動(dòng)發(fā)起對(duì)局域網(wǎng)用戶的訪問,保護(hù)局域網(wǎng)內(nèi)部用戶的安全。方案建設(shè)過程中,各個(gè)路由器之間運(yùn)行路由協(xié)議,在路由器的接口上綁定自反ACL 時(shí)需要注意允許路由協(xié)議之間的路
由更新信息的通過,不然會(huì)造成整個(gè)網(wǎng)絡(luò)的路由通訊故障。
本方案的網(wǎng)絡(luò)系統(tǒng)分為內(nèi)部網(wǎng)和外網(wǎng),R1 為內(nèi)部網(wǎng)的路由器,PC1 為內(nèi)網(wǎng)網(wǎng)的用戶電腦,R3 為外部網(wǎng)的路由器,PC2 為外部網(wǎng)用戶電腦。R2 處于內(nèi)部網(wǎng)和外網(wǎng)的邊界,在R2 上配置自反ACL 并綁定在R2 的S1/2 接口上。實(shí)現(xiàn)內(nèi)部網(wǎng)用戶PC1 可以訪問外部網(wǎng)用戶PC2 并得到應(yīng)答信息,但是外部網(wǎng)用戶PC2 不能主動(dòng)發(fā)起對(duì)內(nèi)部網(wǎng)用戶PC1 的訪問請(qǐng)求。R1、R2 和R3 之間運(yùn)行OSPF 協(xié)議,全部工作在area0 區(qū)域。內(nèi)部網(wǎng)用戶PC1 的ⅠP 網(wǎng)段是192.168.1.0/24,外網(wǎng)PC2 的ⅠP 網(wǎng)段是200.1.1.0/24,R1 和R2 之間的網(wǎng)段是1.1.1.0/24,R2 和R3 之間的網(wǎng)段是2.2.2.0/24。
整個(gè)系統(tǒng)的拓?fù)鋱D如圖1 所示。
圖1 系統(tǒng)拓?fù)鋱D
4.3.1 先配置各個(gè)接口ⅠP 地址
配置R1 的ⅠP 地址,R1 上配置兩個(gè)接口的ip 地址,一個(gè)是局域網(wǎng)口f0/0,該接口ip 地址作為內(nèi)網(wǎng)用戶PC1 的默認(rèn)網(wǎng)關(guān),另一個(gè)是廣域網(wǎng)口s1/0,該接口提供時(shí)鐘。R2 和R3 的接口ⅠP 配置和R1 類似,配置局域網(wǎng)口和廣域網(wǎng)口ⅠP 地址(如圖2 所示)。
圖2 配置接口的ip
4.3.2 配置OSPF 協(xié)議
在R1、R2 和R3 上啟用OSPF 協(xié)議,網(wǎng)絡(luò)系統(tǒng)中的所有網(wǎng)段都工作在area 0 區(qū)域。具體配置如圖3 所示。
圖3 OSPF 協(xié)議配置
4.3.3 自反ACL 的配置
自反ACL 當(dāng)有出站數(shù)據(jù)包時(shí),就臨時(shí)產(chǎn)生一個(gè)訪問性條目,該條目是有生存周期的,Session 結(jié)束則該條目被刪除。首先在R2 上配置臨時(shí)性訪問條目的生存時(shí)間,R2(config)#ip reflexive-list timeout 400,生存期為400s。然后,在R2 上配置ACLOUT 和ACLⅠN 兩個(gè)擴(kuò)展命名的列表,嵌套自反的ACL。具體配置如圖4 所示。
圖4 自反ACL 配置
注意ACLOUT 和ACLⅠN 兩個(gè)擴(kuò)展命名的控制列表里面都允許了對(duì)ospf 協(xié)議流量的通過,避免了由于訪問控制列表而導(dǎo)致整個(gè)網(wǎng)絡(luò)發(fā)生通信故障。定義好兩個(gè)列表后,將這兩個(gè)擴(kuò)展命名列表分別綁定到路由器R2 廣域網(wǎng)口s1/2 的out 和in 兩個(gè)方向,這樣自反ACL就可以生效了。
4.3.4 系統(tǒng)測試結(jié)果
最后,設(shè)置內(nèi)部網(wǎng)計(jì)算機(jī)PC1 的ⅠP 地址為192.168.1.1,默認(rèn)網(wǎng)關(guān)為192.168.1.254。設(shè)置外部網(wǎng)計(jì)算機(jī)PC2 的ⅠP 地址為200.1.1.1,默認(rèn)網(wǎng)關(guān)為200.1.1.254。打開PC1 的DOS 窗口,使用ping 命令發(fā)起對(duì)外部網(wǎng)PC2 的訪問,測試內(nèi)部網(wǎng)主機(jī)能否訪問外部網(wǎng)主機(jī)。發(fā)出四個(gè)數(shù)據(jù)包,收到四個(gè)數(shù)據(jù)包,數(shù)據(jù)通信正常,如圖5 所示。表明內(nèi)部網(wǎng)主機(jī)可以任意發(fā)起對(duì)外部網(wǎng)主機(jī)的訪問,并得到外網(wǎng)主機(jī)的回饋信息。
圖5 內(nèi)網(wǎng)可以訪問外網(wǎng)的測試結(jié)果
然后,打開PC2 的DOS 窗口,使用ping 命令發(fā)起對(duì)內(nèi)部網(wǎng)PC1的主動(dòng)訪問,測試外部網(wǎng)主機(jī)能否主動(dòng)訪問內(nèi)部網(wǎng)主機(jī)。發(fā)出四個(gè)數(shù)據(jù)包,丟棄四個(gè)數(shù)據(jù)包,顯示無法到達(dá)的主機(jī),如圖6 所示。表明系統(tǒng)的自反ACL 包過濾防火墻禁止外部網(wǎng)主機(jī)主動(dòng)發(fā)起對(duì)內(nèi)部網(wǎng)主機(jī)的訪問。
圖6 外網(wǎng)不能主動(dòng)發(fā)起對(duì)內(nèi)網(wǎng)訪問的測試結(jié)果
ACL 技術(shù)分類較多,本文重點(diǎn)論述了自反ACL 技術(shù),分析了自反ACL 和其他ACL 應(yīng)用的不同點(diǎn),自反ACL 列表定義的方法。在本文的系統(tǒng)方案中,左邊為內(nèi)部網(wǎng)環(huán)境,右邊為外部網(wǎng)絡(luò)環(huán)境,根據(jù)網(wǎng)絡(luò)管理者意圖,要求內(nèi)部網(wǎng)用戶可以訪問外網(wǎng)用戶,并且訪問過程中產(chǎn)生的外網(wǎng)用戶回饋內(nèi)網(wǎng)用戶信息可以通過,但是外網(wǎng)用戶主動(dòng)發(fā)起對(duì)內(nèi)部網(wǎng)用戶信息被防火墻拒絕。最后,系統(tǒng)利用自反ACL 技術(shù)成功實(shí)現(xiàn)單一方向防火墻方案效果。