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

來源:瑞文範文網 1.58W

摘 要:論文通過介紹如何運用包過濾技術實現個人防火牆,深入的剖析了個人防火牆中所用到的各種技術,並重點介紹了通過微軟的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

熱門標籤