網站首頁 工作範例 辦公範例 個人範例 黨團範例 簡歷範例 學生範例 其他範例 專題範例

畢業論文範文:個人防火牆的實現

欄目: 畢業論文模板 / 釋出於: / 人氣:1.56W

摘 要:論文通過介紹如何運用包過濾技術實現個人防火牆,深入的剖析了個人防火牆中所用到的各種技術,並重點介紹了通過微軟的ndis 中間驅動程式實現網路封裝包,以及驅動程式與應用程式之間的通訊方法.

畢業論文範文:個人防火牆的實現

關鍵詞:包過濾技術 ndis 中間層驅動程式

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

而防火牆正是網路的保護傘,形形色色的防火牆很多,本文通過介紹包過濾技術實現個人防火牆,使大家對防火牆的知識有進一步的瞭解。

一、防火牆和包過濾技術簡介

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

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

二、截獲網路封裝包

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

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

(1)winsock layered service provider (lsp)。

(2)windows 2017 包過濾介面。

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

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

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

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

圖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 流進 工作時間 8080 ie

詢問 tcp 流進 工作時間 1080 ie

拒絕 ip 流出 工作時間 80 ie

圖3 一個典型的規則表

五、記錄和報警

防火牆處理完整日誌的方法:防火牆規定了對於符合條件的報文做日誌,應該提供日誌資訊管理和儲存方法。

提供自動日誌掃描:指防火牆是否具有日誌的自動分析和掃描功能,這可以獲得更詳細的統計結果,達到事後分析、亡羊補牢的目的。

提供自動報表、日誌報告書寫器:防火牆實現的一種輸出方式,提供自動報表和日誌報告功能。

動作 開始時間

-結束時間 協議 進流量 出流量 本地ip:埠-

遠端ip:埠 應用程式 備註

放行 21:54 -

22:00 tcp 200 400

ie

放行 22:01-

22:10 ip 250 100

ie

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

警告通知機制:防火牆應提供告警機制,在檢測到入侵網路以及裝置運轉異常情況時,通過告警來通知管理員採取必要的措施,包括e-mail、呼機、手機等。

提供簡要報表(按照使用者id或ip 地址):防火牆實現的一種輸出方式,按要求提供報表分類列印。

提供實時統計:防火牆實現的一種輸出方式,日誌分析後所獲得的智慧統計結果,一般是圖表顯示。

用包過濾技術實現防火牆較為容易,具有比較好的網路安全保障功能,但也存在不足之處,由於過濾技術中無法包括使用者名稱,而僅僅是客戶機的ip地址,那麼如果要過濾使用者名稱就不能使用包過濾技術了,另外,由於包過濾技術遵循”未禁止就允許通過”的規則,因此,一些未經禁止的包的進出,可能對網路產生安全威脅。今後防火牆的發展會朝著簡單化、安全化方向邁進, 綜合包過濾和應用代理的功能,達到兩者的有效結合,實現新型加密演算法的設計,使資料的傳輸更加安全, 會和ids、病毒檢測等相關安全產品聯合起來,充分發揮各自的長處,協同配合,共同建立一個有效的安全防範體系。

參考文獻:

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

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

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