用包過濾技術實現個人防火牆

2021-04-01 18:58:46 字數 4372 閱讀 7414

王永彪 徐凱聲 

隨著網路的迅速發展,各種各樣的網路軟體也隨之出現,人們的生活和學習對網路的依賴也越來越多,但問題也接踵而來,**被攻擊,病毒氾濫,個人資訊被竊取,使人們面臨這樣乙個問題:網路是否安全?

防火牆是一種用於在兩個網路間進行訪問控制的裝置,防火牆系統防範的物件是來自被保護的網路的外部的對網路安全的威脅,它通過檢測、限制、更改跨越防火牆的資料流,盡可能的實現對外部網路的安全保護。

而包過濾技術是防火牆最基本的實現技術,具有包過濾技術的裝置是用來控制內、外網路資料流入和流出,包過濾技術的資料報大部分是基於tcp/ip協議平台的,對資料流的每個包進行檢查,根據資料報的源位址、目的位址、tcp和ip的埠號,以及tcp的其他狀態來確定是否允許資料報通過。

截獲資料報是實現乙個防火牆的第一步,截獲資料報的方法有很多種,既可以在使用者態下攔截網路資料報,又可以在核心狀態下進行資料報截獲。

在使用者態下進行網路資料報攔截有以下幾種方法:

(1)winsock layered service provider (lsp)。

(2)windows 2000 包過濾介面。

(3)替換系統自帶的winsock動態連線庫。

很顯然,在使用者態下可以很簡單的進行資料報攔截,但其最致命的缺點就是只能在winsock層次上進行,而對於網路協議棧中底層協議的資料報無法進行處理。對於一些木馬和病毒來說很容易避開這個層次的防火牆。

因此大多數的個人防火牆選擇利用網路驅動程式來實現的。例如用中間層驅動程式來截獲資料報。

中間層驅動介於協議層驅動和小埠驅動之間,它能夠截獲所有的網路資料報(如果是乙太網那就是以太幀)。ndis中間層驅動的應用很廣泛,不僅僅是個人防火牆,還可以用來實現vpn,nat,pppoverethernet以及vlan。中間層驅動的概念是在window nt sp4之後才有的,因此對於windows9x來說無法直接利用中間層驅動的功能。windows ddk提供了兩個著名的中間層驅動例子:passthru以及mux。開發人員可以在passthru的基礎上進行開發,mux則實現了vlan功能。目前個人防火牆的產品還很少用到這種技術,主要的原因在於中間層驅動的安裝過於複雜,尤其是在windows nt下。windows 2000下可以通過程式實現自動安裝,但是如果驅動沒有經過數字簽名的話,系統會提示使用者是否繼續安裝。中層層驅動功能強大,應該是今後個人防火牆技術的趨勢所在,特別是一些附加功能的實現。

圖1.   ndis驅動程式模型

(1)應用程式建立一事件event;

(2)應用程式通過createfile建立驅動程式例項;

(3)把該事件的控制代碼傳給驅動程式;

(4)驅動程式通過devicecontrol函式接受event的控制代碼;

(5)應用程式通過deviceiocontrol函式傳遞控制驅動程式的訊息;

(6)驅動程式通過dispatch歷程得到應用程式傳來的訊息,然後根據訊息型別進行不同的服務;

(7)把結果資料放入共享記憶體區,設定event事件通知應用程式所請求的事情已經辦完;

(8)應用程式通過waitforsingleobject來獲知事件發生;

(9)應用程式在共享記憶體區獲得資料,並重置該事件。

圖2  驅動程式與應用程式通訊模型

包過濾防火牆的過濾規則集由若干條規則組成,它應涵蓋對所有出入防火牆的資料報的處理方法,
對於沒有明確定義的資料報,應該有乙個預設處理方法;過濾規則應易於理解,易於編輯修改;
同時應具備一致性檢測機制,防止衝突。ip包過濾的依據主要是根據ip包頭部資訊如源位址和目的位址進行過濾,
如果ip頭中的協議字段表明封裝協議為icmp、tcp或udp,那麼再根據icmp頭資訊(型別和**值)、
tcp頭資訊(源埠和目的埠)或udp頭資訊(源埠和目的埠)執行過濾,其他的還有mac位址過濾。
應用層協議過濾要求主要包括ftp過濾、基於rpc的應用服務過濾、基於udp的應用服務過濾要求以及動態包過濾技術等。
在一般情況下,我們可以從以下幾個方面來進行訪問規則的設定:

(1)禁止一切源路由尋徑的ip包通過;

(2)ip包的源位址和目的位址;

(3)ip包中tcp與udp的源埠和目的埠;

(4)執行協議;

(5)ip包的選擇。

動作

協議

方向

訪問時間

遠端ip

應用程式

備註

放行

ip

流進

工作時間

202.114.165.240

8080

ie

詢問

tcp

流進

工作時間

202.114.165.192

1080

ie

拒絕

ip

流出

工作時間

202.114.204.153

80

ie

圖3 乙個典型的規則表

防火牆處理完整日誌的方法:防火牆規定了對於符合條件的報文做日誌,應該提供日誌資訊管理和儲存方法。
提供自動日誌掃瞄:指防火牆是否具有日誌的自動分析和掃瞄功能,這可以獲得更詳細的統計結果,達到事後分析、亡羊補牢的目的。
提供自動報表、日誌報告書寫器:防火牆實現的一種輸出方式,提供自動報表和日誌報告功能。
動作開始時間

結束時間

協議

進流量

出流量

本地ip:

遠端ip:

應用程式

備註

放行

21:54 -

22:00

tcp

200

400

202.114.165.240:80

202.114.165.225:80

ie

放行

22:01-

22:10

ip

250

100

202.114.165.240:80

202.114.165.193:80

ie

圖4 乙個典型的日誌記錄表

警告通知機制:防火牆應提供告警機制,在檢測到入侵網路以及裝置運轉異常情況時,通過告警來通知管理員採取必要的措施,包括e-mail、呼機、手機等。
提供實時統計:防火牆實現的一種輸出方式,日誌分析後所獲得的智慧型統計結果,一般是圖表顯示。
用包過濾技術實現防火牆較為容易,具有比較好的網路安全保障功能,但也存在不足之處,由於過濾技術中無法包括使用者名稱,而僅僅是客戶機的ip位址,那麼如果要過濾使用者名稱就不能使用包過濾技術了,另外,由於包過濾技術遵循」未禁止就允許通過」的規則,因此,一些未經禁止的包的進出,可能對網路產生安全威脅。今後防火牆的發展會朝著簡單化、安全化方向邁進, 綜合包過濾和應用**的功能,達到兩者的有效結合,實現新型加密演算法的設計,使資料的傳輸更加安全, 會和ids、病毒檢測等相關安全產品聯合起來,充分發揮各自的長處,協同配合,共同建立乙個有效的安全防範體系。

參考文獻:

[1]  terry william ogletree.  防火牆原理與實施[m] .  北京: 機械工業出版社,2001

[2]  謝希仁.   計算機網路技術[m] .     北京: 電子工業出版社,1999

[3]  chris cant.  windows wdm裝置驅動程式開發指南[m].  北京:機械工業出版社,2000  

防火牆實現URL過濾原理

對於url過濾 1.http url過濾 2.https url過濾 1.http url過濾 http請求和服務埠 80 實現原理 iptables 規則在協議棧中獲取到http請求報頭中的host欄位 攔截目地埠為80的包,布配host欄位的值是否是設定過慮的url 如果是則dorp掉,否則放行...

iptables 包過濾型防火牆(1)

概述 firewall 防火牆,隔離工具 工作於主機或網路的邊緣,對於進出本主機或網路的報文根據事先定義好的檢查規則作匹配檢測,對於能夠被規則所匹配到的報文做出相應處理的元件 主機防火牆 主機自己使用的防火牆 網路防火牆 放在流量必經之處的的防火牆 ipfw ip防火牆 ipchains 鏈 ipt...

超級保鏢 國外精品個人防火牆親密接觸

不少將其稱為 麥咖啡 可見此軟體的獨特品味。這款軟體由mcafee公司推出,它可以有效防範internet的黑客和木馬程式等攻擊。軟體提供了安全設定助手和設定嚮導,易用性不錯,並且軟體的操作介面非常美觀。mcafee的功能設計相當簡潔規整,防火牆規則 應用程式規則 入侵檢測規則和事件日誌等四個主要的...