李國芳
(廣州衛生學校,廣東廣州,510450)
計算機安全是全球網絡中最重要的課題,計算機安全與管理,特別是關系國計民生的項目,例如銀行、航空、電網、科研等都是計算機安全維護的核心和重點。當前影響到計算機網絡的因素有很多,不少因素有可能是有意、也可能是人為造成的,因此研究網絡安全造成的因素有很現實的意義。
防火墻(英文:firewall)是一項協助確保信息安全的設備,會依照特定的規則,允許或是限制傳輸的數據通過。其主要指的是一個由軟件和硬件設備組合而成、在內部網和外部網之間、專用網與公共網之間的界面上構造的保護屏障。
隨著互聯網技術的發展,防火墻的技術也在不斷更新換代,當前防火墻的分類和功能已經有了明顯的提升,從其功能而言,我們可以直接劃分為兩大類:包過濾防火墻和應用級防火墻。
又叫網絡級防火墻,因為它的整個檢測工作主要是在網絡層運行的。其主要是通過檢測網絡中收發的包地址、協議、端口等信息,通過判斷該包是否符合發放要求來決定該包是否能夠通過。一般而言,路由器中就包含著這樣的網絡級防火墻。
應用級防火墻主要的工作內容是檢測進入的數據包,通過網關復制傳遞數據,防止受信主機與非受信主機間直接建立聯系。
應用級防火墻在實際使用中,由于在網絡中通過防火墻訪問Internet,,因此一旦網絡不穩定或者網絡存在故障時,可能會出現多次登錄、數據延遲等問題。因此可知,使用應用級防火墻的協議代理軟件,其效率遠遠不及網絡防火墻。
包過濾防火墻和應用級防火墻是網絡防火墻中最常見的兩種防毒方式,它們都是通過分析數據包、根據規則解析數據包,并將數據包再次傳遞,從而有效的方式病毒的侵入,維護網絡安全。
當前市面上的防火墻主要有如下幾種功能來確保網絡安全:
包過濾是防火墻所要實現的最基本功能,現在的防火墻已經由最初的地址、端口判定控制,發展到判斷通信報文協議頭的各部分,以及通信協議的應用層命令、內容、用戶認證、用戶規則甚至狀態檢測等等。
在防火墻結合網絡配置和安全策略對相關數據分析完成以后,就要作出接受、拒絕、丟棄或加密等決定(target)。如果某個訪問違反安全規定,審計和報警機制開始起作用,并作記錄,報告等等。
防火墻管理界面一般是對防火墻進行配置、管理和監控、查閱當前狀態等。防火墻管理界面設計直接關系到防火墻的使用方便性和安全性。
網絡地址轉換似乎已經成了防火墻的“標配”,絕大多數防火墻都加入了該功能。 目前防火墻一般采用雙向NAT:SNAT和DNAT。SNAT用于對內部網絡地址進行轉換,對外部網絡隱藏起內部網絡的結構,使得對內部的攻擊更加困難;并可以節省IP資源,有利于降低成本。DNAT主要實現用于外網主機對內網和DMZ區主機的訪問。
流量控制對于防火墻技術而言是較為簡單的統計功能,其主要可以分為基于單個IP地址控制或者基于用戶控制。基于IP地址控制是對整個防火墻的網絡接口流量進行統一的控制,而基于用戶控制是通過判斷用戶登錄的用戶名進行分析每個用戶的使用流量,從而有效的方式某些應用程序或者用戶占用資源過多而造成資源的浪費。
為了能夠更清晰的闡述防火墻在防毒過程中的變化,本文就有狀態防火墻的算法進行了闡述,當然防火墻的實際算法不止這一種,但是基于此算法我們還能夠看出防火墻的整個工作狀態。
整個包過濾防火墻在收集到數據包頭信息之后,會對其進行數據解析,通過與規則庫中的安全規則進行匹配之后,確認該數據包是否需要丟棄或者放行,因此,在此一過程中,CheckPoint首先提出了一種新的防火模式——有狀態防火墻。其主要基于一個基本事實,即網絡中大部分數據都是通過面向連接的TCP協議進行傳輸,只要控制整個連接過程就可以認為該信息通信過程是可信的,有狀態防火墻的數據處理流程如下圖1所示。

本文主要是以對象的方式和管理連接整個實體,每個實體是一個對象,對象都是有生命周期、屬性和實現方法。
實體的產生過程:每個Client和Server之間連接的三次握手過程,構成一個實體的產生,這是一個臨時過程,一旦連接成功,防火墻將會生成一個完整的實體,連接失敗,防火墻將會釋放奔馳連接所占用的資源。
實體的狀態:實體之間的記錄連接記錄著當前實體的狀態(例如:雙方連接序號、確認數據狀態、連接信息狀態等),隨著通信環節的反復,不斷更新實體狀態。
實體的運行方法:對于非連接請求的數據包,如果它不屬于任何一個實體裝填,則被直接丟棄,對于某一實體的數據包,實體大都會檢測符合TCP/IP協議的狀態轉換規格。
這樣,實體的功能決定了防火墻過濾功能的強度,匹配算法的效率決定了防火墻的整體效率。下面對算法的實現和性能做進一步的分析。
防火墻效率的關鍵在于規則庫的匹配而有狀態防火墻把主要負載從規則庫匹配轉移到了連接實體在實體集的匹配文中提出了基于哈希表的實體管理機制分析表明算法空間復雜性為O(n)時間復雜性為O(1)可以作為防火墻比較理想的算法
1)算法
設哈希函數的輸入為Packet Key (或Entity Key)按如下規則構造哈希函數Hash():
(1)Addr =sa+da,記為 Addr[ 0..32 ],33bit
(2)Port =sp+dp 記為 Port[ 0..16 ], 17bit
(3)構造位數組 Key[ 0..59 ]= [ Addr[ 0..32 ],0*0,Port[ 0..16 ]]
(4)對Key[ 0..59 ]分三段進行折疊異或運算,取結果為Result[ 0..19 ],20bit等效運算如圖4 所示:2)算法實現
綜合以上論述下面給出算法實現的主體框架
int Process struct Packet packet
{
if packet (3way hand shake packet)
return EntityBuildProc(packet); // 判斷為3 次握手數據轉對應處理程序
if EntitySet[Hash(packet)]== NULL
return 1 // 在哈希表中匹配實體失敗丟棄數據包
if (entity = GetEntity(EntitySet[Hash(packet),packet])== NULL
return 1 // 在沖突鏈表中匹配實體失敗丟棄數據包
if entity.CheckState (Packet)== OK // 檢查實體當前狀態
{
entity.ChangeState (Packet)// 修改實體當前狀態
return 0 // 接受合法數據包
}
return 1
}
int CheckState (Packet)
{
check TCP flag consistency
check Sequence Number
check Acknowledgment Number
extended check behavior // 擴展功能例如基于內容的過濾
}
防火墻技術從總體而言還處于一個發展階段。要真正的實現其主動、自動抵御外來侵入,還需要對網絡進行更多的設置和保護。因此,密切關注防火墻的最新發展,對推動lntemet在我國的健康發展有著重要的意義。

[1]張鳴,高楊.計算機網絡安全與防火墻技術研究.河南:黃河水利職業技術學院學報,2011
[2]曹進,張平.現代網絡安全與防火墻研究.北京:中國科技信息,2006
[3]趙新亭.計算機網絡防火墻技術研究.北京:中國新技術新產品,2008
[4]胡道元,閔京華.網絡安全技術[M].北京:清華大學出版社,2004
[5]王竹林,張勝.網絡安全實踐[M].西安:電子科技大學出版社,2004
[6]袁家政.計算機網絡安全與應用技術.北京:清華大學出版社,2005
[7]常紅.網絡安全技術與反黑客.北京:冶金工業出版社,2004