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