專利名稱:一種改進防火墻性能的方法
技術領域:
本發(fā)明涉及計算機網(wǎng)絡系統(tǒng)中防火墻安全模型,通過對防火墻多維空間模型和快速搜索方法的運用,提高防火墻的轉(zhuǎn)發(fā)效率。
具體實施例方式
下面結(jié)合具體實施例及相關附圖對本發(fā)明進行詳細描述。應用了多維空間模型的安全規(guī)則樹的產(chǎn)生方法如下1)用戶輸入安全策略步驟;2)對用戶輸入的安全規(guī)則進行空間劃分、語法檢查、語義分析的預處理步驟。3)對經(jīng)過預處理的規(guī)則表進行編譯、優(yōu)化,生成安全策略語義結(jié)構(gòu)樹,并下裝到核心中去的生成步驟。4)對按上述方法生成的防火墻安全策略進行查詢的步驟。
圖1中的網(wǎng)絡環(huán)境是配置了cygergate2.0的一個典型網(wǎng)絡應用環(huán)境,內(nèi)部網(wǎng)用戶可以訪問DMZ區(qū)的dns服務、www服務,可以訪問internet;internet上的用戶可以訪問DMZ區(qū)提供的服務。在防火墻主機上對外部網(wǎng)有三個合法的IP地址,分別是用于用戶對外訪問的159.226.232.254,用于域名服務的159.226.232.73和用作web服務的159.226.232.116,對內(nèi)部網(wǎng)和DMZ各有一個局部IP地址,分別是172.16.1.222(內(nèi)部網(wǎng)),172.16.9.222(DMZ)。一般情況下,圖1的示例中允許以下幾種訪問1.外部網(wǎng)訪問DMZ的服務器,具體為Internet的用戶可以訪問websrv提供的http服務;2.內(nèi)部網(wǎng)用戶訪問外部網(wǎng),具體為內(nèi)部網(wǎng)的普通用戶可以訪問Internet提供的某些服務,3.通常我們并不使用IP地址直接訪問,所以允許內(nèi)部網(wǎng)訪問DMZ的dnssrv提供的域名服務,也允許dnssrv和外部網(wǎng)的域名服務器互相訪問。
下面敘述在這樣的網(wǎng)絡環(huán)境下,怎樣實施eygergate2.0防火墻的安全規(guī)則多維空間模型。首先,用戶輸入安全規(guī)則防火墻在進行包過濾之前,用戶首先對防火墻進行配置,內(nèi)容包括網(wǎng)絡對象,網(wǎng)口對象,規(guī)則表的輸入。網(wǎng)絡對象是構(gòu)成訪問控制規(guī)則的最基本元素。我們給一段ip,或者單個ip起個名字,便于用戶記憶。例如服務器、普通主機、網(wǎng)段等。防火墻就是根據(jù)這些最基本的元素,作為源或者目的來構(gòu)成訪問控制的規(guī)則??蓞⒁娤聢D。
網(wǎng)口對象的配置是讓用戶設定防火墻上的接口的信息,主要包括搜索防火墻的所有網(wǎng)卡信息,設置防火墻的內(nèi)部網(wǎng)卡,外部網(wǎng)卡??蓞⒁娤聢D。
規(guī)則表,規(guī)則表就是用戶制定的訪問控制規(guī)則的集合??蓞⒁娤聢D。
第一條規(guī)則
根據(jù)用戶的輸入生成如下數(shù)據(jù)庫(1)網(wǎng)絡對象管理數(shù)據(jù)庫、(2)網(wǎng)口對象管理數(shù)據(jù)庫、(3)規(guī)則表數(shù)據(jù)庫接著進行空間劃分,它們將服務的端口號以及網(wǎng)絡對象的IP地址劃分成沒有交集的區(qū)域,存放在數(shù)據(jù)庫里,經(jīng)過空間劃分后,網(wǎng)絡對象和服務已經(jīng)被劃分成互不相連的小塊,它們存放在數(shù)據(jù)庫中供下裝函數(shù)使用??臻g劃分的作用是為語法檢查、語義分析做準備,盡量減少語法錯誤、語義沖突、并且使編譯過程簡單化。
用戶輸入控制規(guī)則時按照人的習慣,輸入的規(guī)則會有重復,矛盾的現(xiàn)象,輸入模塊把用戶輸入的規(guī)則進行預處理,得到一個語法上無錯誤、語義上不矛盾的規(guī)則集合。因此,要進行語法語義檢查,即規(guī)則預處理步驟。檢查是否出現(xiàn)下列情況1.對規(guī)則的構(gòu)成元素的檢查包括源和目的不能相同;規(guī)則必須含有源、目的、服務;2.對多條規(guī)則之間的關系的檢查包括規(guī)則之間有語義沖突,則以排在規(guī)則表前頭的規(guī)則具有優(yōu)先權(quán)的原則處理3.檢查避免無效規(guī)則的出現(xiàn)包括內(nèi)部無效地址不經(jīng)網(wǎng)絡地址轉(zhuǎn)換不能訪問外部。
4.檢查以使網(wǎng)絡對象與實際的網(wǎng)絡接口、網(wǎng)絡地址、轉(zhuǎn)換模式相符包括同一條規(guī)則內(nèi)的源或目的應該具有相同的接口、網(wǎng)絡地址、轉(zhuǎn)換模式。
每條規(guī)則要進入數(shù)據(jù)庫必須經(jīng)過這么多檢查,當規(guī)則經(jīng)過檢測后就可以正確的輸入進入數(shù)據(jù)庫了。
若沒有出現(xiàn)上述問題,則進入編譯步驟,生成規(guī)則樹,所述的規(guī)則樹在結(jié)構(gòu)上共有三級Snet、Dnet、Port。規(guī)則樹的作用是使包過濾模塊在逐級查完規(guī)則樹的三級結(jié)構(gòu)后將得到應觸發(fā)的行動類型的信息。生成規(guī)則樹的語義分析具體步驟1.從規(guī)則表數(shù)據(jù)庫中檢索出所有的id∈行動編號的規(guī)則,將這些規(guī)則中的Snet節(jié)點生成一個Snet鏈表,鏈表中的每個節(jié)點都含有id、規(guī)則編號、網(wǎng)絡對象編號信息。
2.同理,從規(guī)則表數(shù)據(jù)庫中檢索出所有id∈行動編號的所有規(guī)則的Dnet節(jié)點,生成一個Dnet鏈表,鏈表中的每個節(jié)點都含有id、規(guī)則編號、網(wǎng)絡對象編號信息。
3.同理,從規(guī)則表數(shù)據(jù)庫中檢索出所有id∈行動編號的所有規(guī)則的服務節(jié)點,生成一個服務鏈表,鏈表中的每個節(jié)點都含有id、規(guī)則編號信息。
4.從Snet鏈表的第一個節(jié)點開始,生成其Dnet鏈表,再生成其Dnet鏈表中的第一個節(jié)點的服務鏈表,并將此服務鏈表生成平衡二叉樹樹,連在Dnet節(jié)點上。則第一個Snet節(jié)點的第一個Dnet節(jié)點的樹已生成。
5.依次,再生成第一個Snet節(jié)點的第二個Dnet節(jié)點的樹,直至第一個Snet節(jié)點的最后一個Dnet節(jié)點的服務樹生成,這時可將第一個Snet節(jié)點的Dnet樹生成,連在這第一個Snet節(jié)點上。
6.類似于步驟4、5,接著處理第二個Snet節(jié)點。直至Snet鏈表中所有Snet鏈表均處理完畢,則將此Snet鏈表生成平衡二叉樹樹。由此規(guī)則樹的三級結(jié)構(gòu)已完成。只需將每一個服務節(jié)點的規(guī)則表查詢結(jié)果中加載網(wǎng)絡地址轉(zhuǎn)換信息。
7.網(wǎng)絡地址轉(zhuǎn)換分析??删唧w分成如下步驟(a)在整個規(guī)則樹的結(jié)構(gòu)已全部生成后,遍歷樹中每一個Snet節(jié)點,對每一個Snet節(jié)點依次處理加載網(wǎng)絡地址轉(zhuǎn)換信息。具體如下讀出每一個Snet的網(wǎng)絡對象id(即網(wǎng)絡對象編號),在網(wǎng)絡對象數(shù)據(jù)庫中根據(jù)網(wǎng)絡對象編號進行逐次查找,將得出所對應的幾項信息有效ip、網(wǎng)卡編號、網(wǎng)絡地址轉(zhuǎn)換模式、網(wǎng)絡地址轉(zhuǎn)換后的ip、Ipsrc。
(b)如果讀出的一個網(wǎng)絡對象編號對應的有效ip=1,即此Ipsrc為合法地址,則不需經(jīng)過網(wǎng)絡地址轉(zhuǎn)換。
這時置該節(jié)點的網(wǎng)絡地址轉(zhuǎn)換模式=0/*0needn’t網(wǎng)絡地址轉(zhuǎn)換*/;再根據(jù)網(wǎng)卡編號在網(wǎng)口對象管理表中查到相應的NIC;將這些NIC、網(wǎng)絡地址轉(zhuǎn)換模式、Ipsrc信息封裝,遍歷此Snet節(jié)點下的每一個Dnet的每一個服務節(jié)點,將每一個服務節(jié)點上已加載的Action信息連同以上的NIC、網(wǎng)絡地址轉(zhuǎn)換模式、Ipsrc信息,一同封裝于fg_RuleResult中,仍加載于每一個服務節(jié)點上。
(c)如果讀出的一個網(wǎng)絡對象編號對應的有效ip=0,即此Ipsrc為局部地址,讀取其網(wǎng)絡地址轉(zhuǎn)換模式,這時網(wǎng)絡地址轉(zhuǎn)換模式的值有兩種可能1hide(隱藏模式);2static src(靜態(tài)源模式);記錄網(wǎng)絡地址轉(zhuǎn)換后的ip(目前對于Hide模式的網(wǎng)絡地址轉(zhuǎn)換,轉(zhuǎn)換后都只對應一個合法IP),置IpAddr=網(wǎng)絡地址轉(zhuǎn)換后的ip;置網(wǎng)絡地址轉(zhuǎn)換模式=hide;記錄NIC;記錄此Snet的Ipsrc。
(d)接著遍歷此Snet節(jié)點下的每一個Dnet節(jié)點,讀出每一個Dnet節(jié)點對應的網(wǎng)絡對象編號。讀出一個網(wǎng)絡對象編號對應的有效ip,當有效ip=0,則對連在此Snet節(jié)點下的此Dnet節(jié)點的下一級服務節(jié)點進行遍歷,在每一個服務節(jié)點的規(guī)則表查詢結(jié)果中將置其網(wǎng)絡地址轉(zhuǎn)換模式=0(no網(wǎng)絡地址轉(zhuǎn)換);將其NIC置為網(wǎng)絡對象編號的NIC,若有效ip=1(Ipdst為合法地址),根據(jù)這個網(wǎng)絡對象編號的值查出其有效ip和網(wǎng)絡地址轉(zhuǎn)換模式,記錄網(wǎng)絡地址轉(zhuǎn)換模式,則在網(wǎng)口對象管理表中繼續(xù)查出其NIC和location,記錄NIC,
(1)若location=0(此Ipdst綁定在內(nèi)部網(wǎng)口上),則查看已記錄的Dnet節(jié)點的網(wǎng)絡地址轉(zhuǎn)換模式,(a)若網(wǎng)絡地址轉(zhuǎn)換模式=0(no網(wǎng)絡地址轉(zhuǎn)換)意味著此Ipdst是放在內(nèi)部的合法IP,不需轉(zhuǎn)換,則置其網(wǎng)絡地址轉(zhuǎn)換模式=0(no網(wǎng)絡地址轉(zhuǎn)換);置其NIC為已記錄的Snet的NIC;封裝。(b)若網(wǎng)絡地址轉(zhuǎn)換模式=3(static dst),此Ipdst是放在內(nèi)部網(wǎng)口的DMZ,要按靜態(tài)目的來轉(zhuǎn)換,則置其網(wǎng)絡地址轉(zhuǎn)換模式=3;置其NIC為此Dnet節(jié)點的NIC。封裝。
(2)若location=1(此Ipdst綁定在外部網(wǎng)口上),則查看在步步驟c中已記錄的NIC、網(wǎng)絡地址轉(zhuǎn)換模式、IpAddr,封裝。
(e)遍歷此Dnet節(jié)點下每一個服務節(jié)點,并將已封裝好的信息加載在每一個服務節(jié)點的規(guī)則表查詢結(jié)果中。
下面對接和附圖2詳細描述規(guī)則樹的查找過程。規(guī)則樹的查找比較簡單,在過濾數(shù)據(jù)包時,從數(shù)據(jù)包中提取包頭信息(ip源地址,ip目的地址,源端口,目的端口),以ip源地址在規(guī)則樹中查找,最終會得到一個指針,以次為根節(jié)點,在子樹空間中繼續(xù)查找ip目的地址;同理,繼續(xù)查目的端口,最后得到一個規(guī)則樹查詢結(jié)果,據(jù)此,包過濾模塊可采取相應的行動。
本發(fā)明可以在許多計算機或計算機組的大量不同操作系統(tǒng)下運行。本發(fā)明闡述的是在防火墻系統(tǒng)上組織過濾規(guī)則,從而提高查找速度的一種改進的通用的模型,對于依此模型在不同硬件平臺上的實現(xiàn),以及以此模型為基礎對此模型進行的進一步的擴充,都屬本發(fā)明的權(quán)益范圍之內(nèi)。例如,此種方法在windows平臺,各種unix平臺,包括solaris,linux,平臺上的實現(xiàn),或者在不同硬件平臺上的實現(xiàn)如pc機,sparc機?;蛘邔Ρ痉椒ǖ囊恍U充,如規(guī)則中對用戶,組的概念的支持、對認證的支持、對審計的支持、記費的支持、對加密的支持、對vpn的支持。以及對以此發(fā)明為基礎建立起來的防火墻系統(tǒng)上的管理界面所作的修改;以及對規(guī)則樹本身某些方面所作的一些修改。都包含有本發(fā)明的權(quán)益。
權(quán)利要求
1.一種改進防火墻性能的方法,包括步驟1)由用戶輸入安全策略步驟;2)對用戶輸入的安全規(guī)則進行空間劃分、語法檢查、語義分析的預處理步驟;3)對經(jīng)過預處理的規(guī)則表進行編譯、優(yōu)化,生成相應的安全策略語義結(jié)構(gòu)樹,并下裝到核心中去的步驟;4)對按上述方法生成的防火墻安全策略按照二叉樹查找方法進行查詢的步驟。
2.如權(quán)利要求1所述的改進防火墻性能的方法,其中步驟2)還進一步包括對規(guī)則中的的地址進行空間劃分的步驟;
3.如權(quán)利要求1所述的改進防火墻安全性能的方法,其中步驟2)還進一步包括生成網(wǎng)絡對象管理數(shù)據(jù)庫、網(wǎng)口對象管理數(shù)據(jù)庫、規(guī)則表數(shù)據(jù)庫的過程;
4.如權(quán)利要求1所述的改進防火墻性能的方法,其中步驟2)還進一步包括對規(guī)則的構(gòu)成元素的檢查。
5.如權(quán)利要求1所述的改進防火墻安全性能的方法,其中步驟2)還進一步包括對多條規(guī)則之間的關系的檢查。
6.如權(quán)利要求1所述的改進防火墻安全性能的方法,其中步驟2)還進一步包括檢查避免無效規(guī)則的出現(xiàn)。
7.如權(quán)利要求1所述的改進防火墻安全性能的方法,其中步驟2)還進一步包括檢查以使網(wǎng)絡對象與實際的網(wǎng)絡接口、網(wǎng)絡地址、轉(zhuǎn)換模式相符。
8.如權(quán)利要求1所述的改進防火墻安全性能的方法,其中步驟3)還進一步包括如下步驟(1)從規(guī)則表數(shù)據(jù)庫中檢索出所有的id∈行動編號的規(guī)則,將這些規(guī)則中的Snet節(jié)點生成一個Snet鏈表,鏈表中的每個節(jié)點都含有id、規(guī)則編號、網(wǎng)絡對象編號信息;(2)同理,從規(guī)則表數(shù)據(jù)庫中檢索出所有id∈行動編號的所有規(guī)則的Dnet節(jié)點,生成一個Dnet鏈表,鏈表中的每個節(jié)點都含有id、規(guī)則編號、網(wǎng)絡對象編號信息;(3)同理,從規(guī)則表數(shù)據(jù)庫中檢索出所有id∈行動編號的所有規(guī)則的服務節(jié)點,生成一個服務鏈表,鏈表中的每個節(jié)點都含有id、規(guī)則編號信息;(4)從Snet鏈表的第一個節(jié)點開始,生成其Dnet鏈表,再生成其Dnet鏈表中的第一個節(jié)點的服務鏈表,并將此服務鏈表生成平衡二叉樹樹,連在Dnet節(jié)點上;則第一個Snet節(jié)點的第一個Dnet節(jié)點的樹已生成;(5)依次,再生成第一個Snet節(jié)點的第二個Dnet節(jié)點的樹,直至第一個Snet節(jié)點的最后一個Dnet節(jié)點的服務樹生成,這時可將第一個Snet節(jié)點的Dnet樹生成,連在這第一個Snet節(jié)點上;(6)類似于步驟4、5,接著處理第二個Snet節(jié)點;直至Snet鏈表中所有Snet鏈表均處理完畢,則將此Snet鏈表生成平衡二叉樹樹;由此規(guī)則樹的三級結(jié)構(gòu)已完成;只需將每一個服務節(jié)點的規(guī)則表查詢結(jié)果中加載網(wǎng)絡地址轉(zhuǎn)換信息;(7)網(wǎng)絡地址轉(zhuǎn)換分析;
9.如權(quán)利要求8所述的改進防火墻安全性能的方法,其中步驟(7)還進一步包括如下步驟(a)在整個規(guī)則樹的結(jié)構(gòu)已全部生成后,遍歷樹中每一個Snet節(jié)點,對每一個Snet節(jié)點依次處理加載網(wǎng)絡地址轉(zhuǎn)換信息,具體如下讀出每一個Snet的網(wǎng)絡對象id(即網(wǎng)絡對象編號),在網(wǎng)絡對象數(shù)據(jù)庫中根據(jù)網(wǎng)絡對象編號進行逐次查找,將得出所對應的幾項信息有效ip、網(wǎng)卡編號、網(wǎng)絡地址轉(zhuǎn)換模式、網(wǎng)絡地址轉(zhuǎn)換后的ip、Ipsrc;(b)如果讀出的一個網(wǎng)絡對象編號對應的有效ip=1,即此Ipsrc為合法地址,則不需經(jīng)過網(wǎng)絡地址轉(zhuǎn)換;這時置該節(jié)點的網(wǎng)絡地址轉(zhuǎn)換模式=0/*0needn’t網(wǎng)絡地址轉(zhuǎn)換*/;再根據(jù)網(wǎng)卡編號在網(wǎng)口對象管理表中查到相應的NIC;將這些NIC、網(wǎng)絡地址轉(zhuǎn)換模式、Ipsrc信息封裝,遍歷此Snet節(jié)點下的每一個Dnet的每一個服務節(jié)點,將每一個服務節(jié)點上已加載的Action信息連同以上的NIC、網(wǎng)絡地址轉(zhuǎn)換模式、Ipsrc信息,一同封裝于fg RuleResult中,仍加載于每一個服務節(jié)點上;(e)如果讀出的一個網(wǎng)絡對象編號對應的有效ip=0,即此Ipsrc為局部地址,讀取其網(wǎng)絡地址轉(zhuǎn)換模式,這時網(wǎng)絡地址轉(zhuǎn)換模式的值有兩種可能1hide(隱藏模式);2static src(靜態(tài)源模式);記錄網(wǎng)絡地址轉(zhuǎn)換后的ip(目前對于Hide模式的網(wǎng)絡地址轉(zhuǎn)換,轉(zhuǎn)換后都只對應一個合法IP),置IpAddr=網(wǎng)絡地址轉(zhuǎn)換后的ip;置網(wǎng)絡地址轉(zhuǎn)換模式=hide;記錄NIC;記錄此Snet的Ipsrc;(d)接著遍歷此Snet節(jié)點下的每一個Dnet節(jié)點,讀出每一個Dnet節(jié)點對應的網(wǎng)絡對象編號;讀出一個網(wǎng)絡對象編號對應的有效ip,當有效ip=0,則對連在此Snet節(jié)點下的此Dnet節(jié)點的下一級服務節(jié)點進行遍歷,在每一個服務節(jié)點的規(guī)則表查詢結(jié)果中將置其網(wǎng)絡地址轉(zhuǎn)換模式=0(no網(wǎng)絡地址轉(zhuǎn)換);將其NIC置為網(wǎng)絡對象編號的NIC,若有效ip=1(Ipdst為合法地址),根據(jù)這個網(wǎng)絡對象編號的值查出其有效ip和網(wǎng)絡地址轉(zhuǎn)換模式,記錄網(wǎng)絡地址轉(zhuǎn)換模式,則在網(wǎng)口對象管理表中繼續(xù)查出其NIC和location,記錄NIC,(1)若location=0(此Ipdst綁定在內(nèi)部網(wǎng)口上),則查看已記錄的Dnet節(jié)點的網(wǎng)絡地址轉(zhuǎn)換模式,(a)若網(wǎng)絡地址轉(zhuǎn)換模式=0(no網(wǎng)絡地址轉(zhuǎn)換)意味著此Ipdst是放在內(nèi)部的合法IP,不需轉(zhuǎn)換,則置其網(wǎng)絡地址轉(zhuǎn)換模式=0(no網(wǎng)絡地址轉(zhuǎn)換);置其NIC為已記錄的Snet的NIC;封裝;(b)若網(wǎng)絡地址轉(zhuǎn)換模式=3(static dst),此Ipdst是放在內(nèi)部網(wǎng)口的DMZ,要按靜態(tài)目的來轉(zhuǎn)換,則置其網(wǎng)絡地址轉(zhuǎn)換模式=3;置其NIC為此Dnet節(jié)點的NIC,封裝;(2)若location=1(此Ipdst綁定在外部網(wǎng)口上),則查看在步步驟c中已記錄的NIC、網(wǎng)絡地址轉(zhuǎn)換模式、IpAddr,封裝;(e)遍歷此Dnet節(jié)點下每一個服務節(jié)點,并將已封裝好的信息加載在每一個服務節(jié)點的規(guī)則表查詢結(jié)果中。
全文摘要
本發(fā)明涉及計算機網(wǎng)絡系統(tǒng)中防火墻安全模型,通過對防火墻多維空間模型和快速搜索方法的運用,提高防火墻的轉(zhuǎn)發(fā)效率。應用了多維空間模型產(chǎn)生安全規(guī)則的產(chǎn)生方法如下1)用戶輸入安全策略步驟;2)對用戶輸入的安全規(guī)則進行空間劃分、語法檢查、語義分析的預處理步驟;3)對經(jīng)過預處理的規(guī)則表進行編譯、優(yōu)化,生成安全策略語義結(jié)構(gòu)樹,并下裝到核心中去的生成步驟。4)對按上述方法生成的防火墻安全策略進行查詢的方法。其中步驟4)可如下操作下裝運行后,防火墻包過濾模塊截獲每一個經(jīng)過防火墻主機的數(shù)據(jù)包,抽取數(shù)據(jù)包中的信息(ip源地址、ip目的地址、源端口號、服務端口號,甚至應用層中的數(shù)據(jù),根據(jù)這些信息在所述的安全規(guī)則多維空間中查找,得到相應的訪問狀態(tài)位,進而采取相應的行動。
文檔編號G06F17/30GK1439985SQ02104228
公開日2003年9月3日 申請日期2002年2月20日 優(yōu)先權(quán)日2002年2月20日
發(fā)明者傅一帆 申請人:華北計算機系統(tǒng)工程研究所