邱洪濤
摘 要 在對分布式防火墻體系結(jié)構(gòu)及策略分發(fā)的實現(xiàn)方案研究基礎(chǔ)上,針對分布式防火墻體系結(jié)構(gòu)及協(xié)同防御架構(gòu)研究中構(gòu)建的新型三層分布式防火墻的體系結(jié)構(gòu)中“推送”、“索取”以及“查詢”的策略分發(fā)機制,本文對匯聚防火墻以及邊界防火墻“查詢”策略的部分給予實現(xiàn)。
關(guān)鍵詞 分布式 防火墻 策略分發(fā)
中圖分類號:TP393.08文獻標識碼:A
0引言
在對分布式防火墻策略分發(fā)的實現(xiàn)方案研究的基礎(chǔ)上,針對分布式防火墻體系結(jié)構(gòu)及協(xié)同防御架構(gòu)研究中構(gòu)建的新型三層分布式防火墻的體系結(jié)構(gòu)中“推送”、“索取”以及“查詢”的策略分發(fā)機制,本文對匯聚防火墻以及邊界防火墻“查詢”策略的部分給予實現(xiàn)。
1運行環(huán)境
策略控制中心管理主機:Windows2008操作系統(tǒng)、SQL Server 2008、Apache Web服務器、Apache SOAP工具包;終端防火墻:Redhat Linux9、Netfilter/iptables防火墻。
Netfilter是Linux網(wǎng)絡(luò)防火墻實現(xiàn)的基礎(chǔ),它提供了一個抽象、通用化的框架。
Iptables組件是一種工具,也稱為用戶空間,它使插入、修改和除去數(shù)據(jù)包過濾表中的規(guī)則變得容易。通過使用用戶空間,可以構(gòu)建自己的定制規(guī)則,這些規(guī)則存儲在內(nèi)核空間的數(shù)據(jù)包過濾表filter表中。當數(shù)據(jù)包進入系統(tǒng)時,系統(tǒng)首先根據(jù)路由表決定數(shù)據(jù)包發(fā)給哪一條鏈。
2系統(tǒng)的總體設(shè)計
2.1服務器端的總體設(shè)計
服務器端包括代理層、功能層和數(shù)據(jù)層。
2.1.1代理層
代理層提供分布式防火墻管理的Web界面,管理員通過瀏覽器完成管理工作。管理工作具體包括:(1)組的管理,添加、修改、刪除、顯示組。(2)防火墻管理:添加、修改、刪除、顯示防火墻。(3)防火墻的配置管理,包括策略管理:在防火墻中添加、修改、刪除、顯示策略。(4)發(fā)布策略及發(fā)布失敗處理。(5)性能監(jiān)測及日志察看。(6)用戶管理及登錄認證。
2.1.2功能層
功能層包括身份驗證模塊、日志管理模塊、策略制定模塊、策略實施模塊。
(1)身份驗證模塊。當防火墻端發(fā)起獲取策略請求時,須首先對防火墻的身份進行驗證,然后查看策略文件,決定是否允許對方的請求。身份驗證模塊通過系統(tǒng)密碼、一次性密碼、證書等身份驗證方案來提供安全保障。主要包括:用戶身份驗證、客戶身份驗證和會話身份驗證。用戶身份驗證可以提供Http,F(xiàn)TP,Telnet和Rlogin連接固有的身份驗證,它直接利用了這些應用層協(xié)議內(nèi)部的身份驗證功能。客戶身份驗證可以向那些自身未提供身份驗證功能的服務提供身份驗證。會話身份驗證可以提供對遠程端點主機的身份驗證,主要采用證書鑒別的形式。每種驗證類型都將維護一個驗證連接表,只有在連接初始化時才進行身份驗證。身份驗證后就可以建立連接,并將相關(guān)的連接信息寫入連接表中。對于連接建立以后的過程中進行的后續(xù)分組交換,將根據(jù)源/目標IP地址及源/目標TCP/UDP端口這樣的參數(shù)進行身份識別,并和連接表內(nèi)某條己有連接進行匹配。
(2)日志管理模塊。日志管理模塊實現(xiàn)以下幾種功能:①日志收集記錄,定期從各主機收集日志文件,然后把所有文件所包含的信息導入到日志庫中。②日志文件定位,實現(xiàn)用戶自己定義條件的日志查詢,查看系統(tǒng)的運行狀況,查找異常等。③日志輪換,允許用戶循環(huán)使用自己的日志文件,即用戶可以關(guān)閉現(xiàn)有的已經(jīng)較大的日志文件,換成一個新的、空日志文件。進行日志輪換的時候,當前打開的日志文件會被關(guān)閉并且另存為一個新文件,文件名由用戶手工配置或自動生成,其中包括當前的日期和時間標記,以保證用戶知道日志文件輪換的時間。④實現(xiàn)導出、清除日志文件功能,可以將當前的日志記錄項導出為ASCLL格式,并刪除多余的和過時的數(shù)據(jù)等。⑤阻擋連接,對日志庫進行分析,如果檢測到異常行為,可以阻擋未經(jīng)授權(quán)的訪問。可以通過添加IP黑名單、關(guān)閉主機的某項服務、關(guān)閉主機的所有網(wǎng)絡(luò)通信、關(guān)閉網(wǎng)關(guān)的所有網(wǎng)絡(luò)通信等方式實施阻擋。
(3)策略制定模塊。在策略制定模塊中,應根據(jù)業(yè)務的實時性變化,包括有以下功能:①策略的添加;策略的修改;策略的刪除;策略的顯示等;②網(wǎng)絡(luò)對象的管理:將用戶可以訪問的網(wǎng)絡(luò)資源定義為對象,這可以使系統(tǒng)管理員用域名、子網(wǎng)形式進行描述網(wǎng)絡(luò)資源。
(4)策略實施模塊。策略實施模塊主要實施以下功能:①服務器端使用關(guān)系數(shù)據(jù)庫SQL server保存策略信息,用XML描述的策略存入該數(shù)據(jù)庫中,因此要建立XML元素到數(shù)據(jù)庫表的對應關(guān)系;②需要將防火墻策略信息進行SOAP封裝和編碼,并發(fā)布為防火墻端可訪問的SOAP服務;指定防火墻獲取SOAP服務所使用的方法。
2.1.3數(shù)據(jù)層
數(shù)據(jù)層主要包括數(shù)據(jù)庫管理系統(tǒng)。防火墻策略通過一些格式轉(zhuǎn)換工具轉(zhuǎn)化為XML格式的文件并映射存儲到關(guān)系數(shù)據(jù)庫里。
2.2防火墻端的總體設(shè)計
防火墻端包括代理層、邏輯功能層、物理功能層。
2.2.1代理層
代理層提供防火墻端管理的Web界面,管理員通過瀏覽器完成管理工作。管理工作具體包括:(1)從服務器端查詢最新的策略信息。(2)請求和接收新的策略。(3)調(diào)用解析器將策略轉(zhuǎn)成內(nèi)部可識別的代碼交給iptables執(zhí)行。(4)策略請求及策略執(zhí)行失敗的處理。(5)日志查看。
2.2.2邏輯功能層
邏輯功能層為防火墻功能的邏輯實現(xiàn),包括策略請求模塊和策略解析兩個子模塊。
(1)策略請求模塊。策略請求模塊主要實施以下功能:①從服務器端查看最新的策略信息,以確定是否要獲取新的策略。②設(shè)置策略請求的細節(jié):創(chuàng)建一個遠程RPC調(diào)用對象;設(shè)置遠程對象的URI;設(shè)置從服務器端調(diào)用策略的方法名;設(shè)置SOAP編碼的風格;創(chuàng)建URL對象;發(fā)送SOAP PRPC請求的具體操作等。
(2)策略解析子模塊。策略解析子模塊主要負責調(diào)用解析器將策略轉(zhuǎn)成內(nèi)部可識別的代碼交給下層的iptables執(zhí)行。本文采用DOM接口將描述防火墻策略規(guī)則的XML對象轉(zhuǎn)換成LINUX下的可執(zhí)行腳本。
2.2.3物理功能層
物理功能層為防火墻功能的真正實現(xiàn)。本文采用Netfilter/iptables作為客戶端的策略執(zhí)行組件。iptables接收進入系統(tǒng)的數(shù)據(jù)包,對每一個數(shù)據(jù)包,遍歷防火墻規(guī)則庫,尋找有無與之符合的規(guī)則。對匹配的包進行的處理可有以下幾種:丟棄、拒絕、轉(zhuǎn)發(fā)、跳到其他鏈、進行時間限制、放入隊列中等待用戶空間的程序進行處理、記入日志等。
前述服務器/防火墻端體系結(jié)構(gòu)有以下特性:(1)使用相同的語言描述策略,提供一致的界面,減輕管理員的管理難度。(2)防火墻無論是獨立使用還是在分布式環(huán)境中使用,用戶看到的是同樣的界面。(3)防火墻的邏輯實現(xiàn)和物理實現(xiàn)分開,代碼可以重用,降低產(chǎn)品開發(fā)的工作量。這樣的服務器、防火墻端體系結(jié)構(gòu)在用統(tǒng)一的語言描述信息時,可以使分布式防火墻管理系統(tǒng)的開發(fā)與具體的防火墻系統(tǒng)開發(fā)分開,易于與分布式入侵檢測集成實現(xiàn)網(wǎng)絡(luò)動態(tài)防護,易于與網(wǎng)絡(luò)管理系統(tǒng)集成。
3小結(jié)
本文設(shè)計了基于分布式防火墻策略發(fā)布系統(tǒng),詳細描述了服務器端和防火墻端的體系結(jié)構(gòu)及各子功能模塊,并對此系統(tǒng)的關(guān)鍵技術(shù)進行了實現(xiàn),論證了基于分布式防火墻策略分發(fā)方案的技術(shù)可行性。
參考文獻
[1] 楊楚華.防火墻體系結(jié)構(gòu)研究[J].軟件導刊,2007.
[2] 楊楚華.分布式防火墻體系結(jié)構(gòu)及協(xié)同防御架構(gòu)研究[D].武漢:湖北工業(yè)大學,2008.