畢業(yè)設(shè)計(jì)(論文)-校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
畢業(yè)設(shè)計(jì)(論文)-校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
畢業(yè)設(shè)計(jì)(論文)-校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
畢業(yè)設(shè)計(jì)(論文)-校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
畢業(yè)設(shè)計(jì)(論文)-校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

陜西理工學(xué)院畢業(yè)設(shè)計(jì)題目校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_____學(xué)生姓名學(xué)號________所在學(xué)院物理與電信工程學(xué)院___________________專業(yè)班級電子1202班__________________________指導(dǎo)教師_______________________________完成地點(diǎn)物電學(xué)院計(jì)算機(jī)信息處理分室____________2016年6月1日

畢業(yè)論文﹙設(shè)計(jì)﹚任務(wù)書院(系)物電學(xué)院專業(yè)班級電子信息工程學(xué)生姓名__一、畢業(yè)論文﹙設(shè)計(jì)﹚題目校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)______二、畢業(yè)論文﹙設(shè)計(jì)﹚工作自__2016__年_3_月10日起至_2016__年6月20日止三、畢業(yè)論文﹙設(shè)計(jì)﹚進(jìn)行地點(diǎn):物電學(xué)院計(jì)算機(jī)信息處理分室__四、畢業(yè)論文﹙設(shè)計(jì)﹚的內(nèi)容要求:隨著網(wǎng)絡(luò)的普及,人們的日常交流和生活將越來越多的依靠網(wǎng)絡(luò)來完成。無論是網(wǎng)上業(yè)務(wù)洽談,還是網(wǎng)上購物,都不可避免地面臨安全性問題。本設(shè)計(jì)要求學(xué)生對網(wǎng)絡(luò)互連協(xié)議—TCP/IP協(xié)議存在的安全問題及Internet網(wǎng)的不安全性進(jìn)行分析,并利用VisualC++作為開發(fā)工具,設(shè)計(jì)了一個(gè)基于包過濾技術(shù)的防火墻系統(tǒng)。五、畢業(yè)論文﹙設(shè)計(jì)﹚應(yīng)收集資料及參考文獻(xiàn):[1]徐孝凱,張紀(jì)勇.C++面向?qū)ο蟪绦蛟O(shè)計(jì):VC++6.0運(yùn)行環(huán)境[M].天津大學(xué)出版社2009.[2]汪曉平,鐘軍.VC++網(wǎng)絡(luò)通信協(xié)議分析與應(yīng)用實(shí)現(xiàn)[M].北京:人民郵電出版社,2003.[3]王艷平,張?jiān)?Windows網(wǎng)絡(luò)與通信程序設(shè)計(jì)[M].北京:人民郵電出版社,2006.[4]AndrewS.Tanenbau.計(jì)算機(jī)網(wǎng)絡(luò)(第四版)[M].北京:清華大學(xué)出版社,2004.[5]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)(第五版)[M].北京:電子工業(yè)出版社,2012.[6]朱桂英.張?jiān)罺isualC++網(wǎng)絡(luò)編程開發(fā)與實(shí)踐[M].清華大學(xué)出版社.2013.六、畢業(yè)論文﹙設(shè)計(jì)﹚的進(jìn)度安排:3月2日——3月29日:查閱資料,完成初步設(shè)計(jì)方案和開題報(bào)告。4月1日——4月26日:根據(jù)網(wǎng)絡(luò)防火墻系統(tǒng)的工作原理,給出設(shè)計(jì)方案,及軟件流程圖。4月29日——5月24:并在軟件環(huán)境下進(jìn)行運(yùn)行調(diào)試,進(jìn)一步完善系統(tǒng)功能,整理資料;5月27日——6月7日:撰寫、修改畢業(yè)設(shè)計(jì)論文。6月10日——6月15日:打印論文準(zhǔn)備并完成答辯。指導(dǎo)教師簽名系(教研室主任簽名專業(yè)負(fù)責(zé)人簽名批準(zhǔn)日期校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(陜西理工學(xué)院物理與電信工程學(xué)院電子信息工程專業(yè),2012級2班,陜西漢中723000)指導(dǎo)教師:[摘要]隨著互聯(lián)網(wǎng)的普及,網(wǎng)絡(luò)用戶的日益增多。網(wǎng)絡(luò)安全問題變得日趨重要,人們對于互聯(lián)網(wǎng)的安全性也就越來越關(guān)注。防火墻的種類很豐富,本設(shè)計(jì)主要基于Filter-HookDriver回調(diào)函數(shù)與在VisualC++6.0的環(huán)境下對TCP/IP協(xié)議的漏洞進(jìn)行分析,用IP識別并標(biāo)記的規(guī)則來實(shí)現(xiàn)包過濾,從而達(dá)到防火墻的效果。作為維護(hù)網(wǎng)絡(luò)的安全性關(guān)鍵設(shè)施,防火墻采取在可靠與不可靠網(wǎng)絡(luò)之間建立障礙的目的,并落實(shí)相應(yīng)的安全策略。[關(guān)鍵字]防火墻;IP;VisualC++6.0;Filter-HookDriver;DesignandimplementationofcampusnetworkfirewallsystemXiaoXukun(Grade12,Class02,Majorelectronicsandinformationengineering,SchoolofPhysicsandTelecommunicationEngineering,ShaanxiUniversityofTechnology,HanZhong723000,Shaanxi)Tutor:LiJuyeAbstract:WiththepopularityofInternetandthegrowingnetworkusers.Networksecurityproblemiscoming,Increasinglyimportant,peoplearepayingmoreattentiononthesecurityofNetwork.TherearevariousFirewallonInternet.ThisdesignmainlyanalyzetheloopholesofTCP/IPprotocolandisbasedontheenvironmentofVisualC++6.0.ThroughIPrecognizingandmarkingrulesaccomplishingpacketfiltering,soasakindofFirewall.Asthekeyfacilitythatmaintainsthenetworksecurity,firewallstakethepurposeofstablinganobstaclebetweentrustandtrustlessnetwork,andputcorrespongdingsafetystrategyintopractice.Keywords:Firewall;IP;VisualC++6.0;Filter-HookDriver;

目錄1引言 11.1背景 11.2研究目的 11.3開發(fā)環(huán)境及語言 11.3.1VisualC++ 11.3.2開發(fā)語言VC++ 21.3.3Winsock 21.4防火墻原理 32防火墻的類型 42.1防火墻的結(jié)構(gòu) 42.1.1Packetfilter 52.1.2Proxy 62.2防火墻的發(fā)展趨勢和現(xiàn)狀 63防火墻技術(shù)的設(shè)計(jì)和實(shí)現(xiàn) 73.1防火墻的設(shè)計(jì) 73.1.1回調(diào)函數(shù) 73.1.2程序的結(jié)構(gòu)與類 73.2程序流程圖 83.3設(shè)計(jì)的實(shí)現(xiàn) 83.3.1Filter-HookDriver的注冊 83.3.2主程序框架的設(shè)計(jì) 93.4設(shè)計(jì)細(xì)節(jié) 114軟件測試 135結(jié)束語 14致謝 15參考文獻(xiàn) 16附錄A 17附錄B 22第1引言防火墻是在一個(gè)整體系統(tǒng),他主要是設(shè)置在網(wǎng)絡(luò)之間的安全區(qū)域內(nèi)或是不同網(wǎng)絡(luò)之間,它的作用是操控網(wǎng)絡(luò)與網(wǎng)絡(luò)之間的訪問,可以根據(jù)設(shè)置的訪問規(guī)則控制網(wǎng)絡(luò)信息的傳輸。它的本體也有相當(dāng)程度的抗入侵能力[1]。防火墻必在保證內(nèi)部網(wǎng)絡(luò)運(yùn)作的同時(shí),防范未經(jīng)同意的外部節(jié)點(diǎn)訪問內(nèi)部網(wǎng)絡(luò)。雖然Firewall的類型有各種各樣的。但就原理基本可以分為兩類,一類基于Packetfilter(包過濾型)原理,另一種基于ProxyService(代理服務(wù))原理。區(qū)分他們的原理在于基于Packetfilter的防火墻一般來說直接將報(bào)文轉(zhuǎn)發(fā),它在用戶是完全開放狀態(tài),速度較快,而基于Proxy的Firewall則不是如此,它通過代理服務(wù)來建立連接,它可以有更強(qiáng)的身份驗(yàn)證(Authentication)和注冊(log)功能。1.1背景校園網(wǎng)是一個(gè)開放的、控制機(jī)構(gòu)相對較弱的網(wǎng)絡(luò),惡意的攻擊時(shí)常會侵入網(wǎng)絡(luò)中的計(jì)算機(jī)系統(tǒng)。校園網(wǎng)的數(shù)據(jù)傳輸是基于TCP/IP通信協(xié)議進(jìn)行的,這些協(xié)議缺乏使傳輸過程中的信息不被竊取的安全措施。校園網(wǎng)上的通信業(yè)務(wù)大多數(shù)使用的是Windows操作系統(tǒng)來支持,Windows操作系統(tǒng)中存在一定的安全脆弱性問題,會直接影響安全服務(wù)。隨著校園內(nèi)計(jì)算機(jī)應(yīng)用的大范圍普及,介入校園網(wǎng)節(jié)點(diǎn)日益增多,而這些借點(diǎn)大部分都沒有采取一定的保護(hù)措施,隨時(shí)有可能造成病毒泛濫、信息丟失、數(shù)據(jù)損壞、網(wǎng)絡(luò)被攻擊、系統(tǒng)癱瘓等嚴(yán)重后果。1.2研究目的隨著越來越多的校園網(wǎng)投入運(yùn)行和連入Internet,校園網(wǎng)的安全管理問題越來越突出,為保證網(wǎng)絡(luò)的安全性,保證信息和數(shù)據(jù)的安全性也同時(shí)保護(hù)了信息管理系統(tǒng),必須確保有安全和堅(jiān)強(qiáng)的防火墻系統(tǒng)。目前,防火墻產(chǎn)品在市面上有各種,“XX電腦管家等”這些產(chǎn)品都包含有包過濾功能和安全審核等功能,有些還有入侵監(jiān)測、代理、IP轉(zhuǎn)換、鎖定地址等功能,性能能不一,但大多數(shù)都不是很便宜,為了節(jié)省開銷,同時(shí)又要求網(wǎng)絡(luò)的安全運(yùn)行得意保障,因此,設(shè)計(jì)并實(shí)現(xiàn)經(jīng)濟(jì)實(shí)用的復(fù)合型多功能防火墻系統(tǒng)是最好的辦法,應(yīng)用實(shí)踐證明,這樣的系統(tǒng)在一定程度上能夠保證校園網(wǎng)絡(luò)的安全需求。1.3開發(fā)環(huán)境及語言本文中防火墻的開發(fā)使用的語言是C++和Winsock網(wǎng)絡(luò)編程,使用的軟件是VisualC++6.0。1.3.1VisualC++VisualC++6.0,簡稱VC或者VC6.0,是Microsoft推出的一款C++編譯器,將人用語言翻譯為“機(jī)器語言”的應(yīng)用程序。VisualC++是一個(gè)可視化軟件開發(fā)工具并伴隨有強(qiáng)大的輔助功能。自1993年Microsoft公司推出VisualC++1.0后,隨著其新版本的更迭,VisualC++已成為專業(yè)軟件工程師開發(fā)軟件的首選。雖然微軟公司推出了VisualC++.NET(VisualC++7.0),但它似乎有非常大的兼容性問題,只適用于Windows2000、WindowsXP和WindowsNT4.0。所以實(shí)際中,更多的是以VisualC++6.0為平臺。VisualC++6.0不僅是一個(gè)C++編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrateddevelopmentenvironment,IDE)。VisualC++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)2]。AppWizard、類向?qū)lassWizard等開發(fā)工具。這些工具通過一個(gè)被稱為DeveloperStudio的組件整合為和諧的開發(fā)環(huán)境。主要部分:DeveloperStudio,這是一個(gè)高度集成開發(fā)平臺,我們的工作99%都是依附于它完成的,由于它的標(biāo)題是“MicrosoftVisualC++”,大多數(shù)人就直接認(rèn)為,那便是VisualC++了。其實(shí)并不是這樣,盡管DeveloperStudio提供了一個(gè)很完整的編輯器和Wizard,但事實(shí)上它沒有編譯和程序鏈接的功能,真正完成這些工作的。DeveloperStudio并不是用于VC專屬的,它也同樣可以用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。所以不要把DeveloperStudio當(dāng)成VisualC++,它充其量只能是算作VisualC++的一個(gè)殼子而已。這一點(diǎn)請切記!MFC。從理論上來講,MFC也不是專屬于VisualC++,BorlandC++,C++Builder和SymantecC++同樣的可以處理MFC。同時(shí),用VisualC++編寫程序代碼也并不一定要用MFC,只要可以,用VisualC++來編寫SDK程序,或是使用STL,ATL,一樣沒有限制。不過,VisualC++本來就是為MFC打造的,VisualC++中的許多特征和語言擴(kuò)展功能也是為MFC而設(shè)計(jì)的,所以用VisualC++而不用MFC就等于放棄了VisualC++中絕大的一部分功能。即使這樣,VisualC++也不等于MFC。PlatformSDK。這才是VisualC++和整個(gè)VisualStudio的核心和靈魂,雖然我們很少能直接接觸到它。大致說來,PlatformSDK是以MicrosoftC/C++編譯器為精華(不是VisualC++,看清楚了),配合MASM,輔以其他一些工具和文檔資料[3]。1.3.2開發(fā)語言VC++底層開發(fā)最適合使用的是C語言,其與運(yùn)行速度密不可分。運(yùn)行在底層的程序要有很高的效率,C語言對于內(nèi)存的處理具有這個(gè)能力。其中Winsock可以進(jìn)行網(wǎng)絡(luò)通信的編寫。1.3.3Winsock從1991年的1.0版到1995年的2.0.8版,經(jīng)過不斷完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成為Windows網(wǎng)絡(luò)編程的事實(shí)上的標(biāo)準(zhǔn)。以U.C.Berkeley大學(xué)BSDUNIX中流行的Socket接口為范例定義了一套microsoftWindows下網(wǎng)絡(luò)編程接口。它不僅包含了人們所熟悉的BerkeleySocket風(fēng)格的庫函數(shù);也包含了一組針對Windows的擴(kuò)展庫函數(shù),以使程序員能充分地利用Windows消息驅(qū)動機(jī)制進(jìn)行編程。WindowsSockets規(guī)范本意在于提供給應(yīng)用程序開發(fā)者一套簡單的API,并讓各家網(wǎng)絡(luò)軟件供應(yīng)商共同遵守。此外,在一個(gè)特定版本W(wǎng)indows的基礎(chǔ)上,WindowsSockets也定義了一個(gè)二進(jìn)制接口(ABI),以此來保證應(yīng)用WindowsSocketsAPI的應(yīng)用程序能夠在任何網(wǎng)絡(luò)軟件供應(yīng)商的符合WindowsSockets協(xié)議的實(shí)現(xiàn)上工作。因此這份規(guī)范定義了應(yīng)用程序開發(fā)者能夠使用,并且網(wǎng)絡(luò)軟件供應(yīng)商能夠?qū)崿F(xiàn)的一套庫函數(shù)調(diào)用和相關(guān)語義。遵守這套WindowsSockets規(guī)范的網(wǎng)絡(luò)軟件,我們稱之WindowsSockets兼容的,而WindowsSockets兼容實(shí)現(xiàn)的提供者,我們稱之為WindowsSockets提供者。一個(gè)網(wǎng)絡(luò)軟件供應(yīng)商必須百分之百地實(shí)現(xiàn)WindowsSockets規(guī)范才能做WindowsSockets兼容。任何能夠與WindowsSockets兼容實(shí)現(xiàn)協(xié)同工作的應(yīng)用程序就被認(rèn)為是具有WindowsSockets接口。我們稱這種應(yīng)用程序?yàn)閃indowsSockets應(yīng)用程序。WindowsSockets規(guī)范定義并記錄了如何使用API與Internet協(xié)議族(通常我們指的是TCP/IP)連接,要特別指出的是所有的WindowsSockets都對流的套接口和數(shù)據(jù)報(bào)的套接口支持。應(yīng)用程序是調(diào)用WindowsSockets的API實(shí)現(xiàn)相互之間的通信。WindowsSockets還應(yīng)用下層的網(wǎng)絡(luò)通訊協(xié)議功能和操作系統(tǒng)的調(diào)用完成實(shí)際的通訊工作。套接口:通信的基礎(chǔ)是套接口(Socket),一個(gè)套接口是通信的一端。在這一端上你可以找到與其對應(yīng)的一個(gè)名字。一個(gè)正在被使用的套接口都有它的類型和與其相關(guān)的進(jìn)程。套接口存在于通訊域中。通訊域是為了處理一般的線程通過套接口通訊而引進(jìn)的一種抽象概念。套接口通常和同一個(gè)域中的套接口交換數(shù)據(jù)(數(shù)據(jù)交換也可能穿越域的界限,但這時(shí)一定要執(zhí)行某種解釋程序)WindowsSockets規(guī)范支持單一的通訊域,即Internet域。各種進(jìn)程使用這個(gè)域互相之間用Internet協(xié)議族來進(jìn)行通訊(WindowsSockets1.1以上的版本支持其他的域,例如WindowsSockets2)。套接口可以根據(jù)通訊性質(zhì)分類;這種性質(zhì)對于用戶是可見的。應(yīng)用程序一般僅在同一類的套接口間通訊。不過只要底層的通訊協(xié)議允許,不同類型的套接口間也照樣可以通訊。用戶目前可以使用兩種套接口,即流套接口和數(shù)據(jù)報(bào)套接口。流套接口提供了雙向的,有序的,無重復(fù)并且無記錄邊界的數(shù)據(jù)流服務(wù)。數(shù)據(jù)報(bào)套接口支持雙向的數(shù)據(jù)流,但并不保證是可靠,有序,無重復(fù)的。也就是說,一個(gè)從數(shù)據(jù)報(bào)套接口接收信息的進(jìn)程有可能發(fā)現(xiàn)信息重復(fù)了,或是和發(fā)出時(shí)的次序不同。數(shù)據(jù)報(bào)套接口的一個(gè)重要特征是它保留了記錄邊界。對于這一特征,數(shù)據(jù)報(bào)套接口應(yīng)用了與現(xiàn)在許多包交換網(wǎng)絡(luò)(例如以太網(wǎng))非常相似的模型[4]。1.4防火墻原理防火墻是由軟件和硬件設(shè)備組合而成、在內(nèi)部網(wǎng)和外部網(wǎng)之間、專用網(wǎng)與公共網(wǎng)之間的界面上構(gòu)造的保護(hù)屏障,是一種獲取安全性方法的形象說法,使得Internet與Internet之間建立起一個(gè)安全網(wǎng)關(guān)(SecurityGateway),這樣保護(hù)內(nèi)部網(wǎng)系統(tǒng)免受非法用戶的攻擊。防火墻基本是由訪問規(guī)則、包過濾結(jié)構(gòu)、應(yīng)用網(wǎng)關(guān)和驗(yàn)證工具4個(gè)模塊組成。防火墻就是一個(gè)位于計(jì)算機(jī)和它所連接的網(wǎng)絡(luò)之間的系統(tǒng)。該計(jì)算機(jī)流入流出的所有網(wǎng)絡(luò)通信均要經(jīng)過此防火墻。網(wǎng)絡(luò)中的“防火墻”是一項(xiàng)將和內(nèi)部系統(tǒng)和外部公共網(wǎng)絡(luò)(如Internet)區(qū)別開的的方法,實(shí)際上是一種將內(nèi)部隔離在外部的技術(shù)。防火墻是在兩個(gè)網(wǎng)絡(luò)系統(tǒng)通信時(shí)執(zhí)行的一種訪問控制規(guī)則,它能允許你“允許”的人和數(shù)據(jù)進(jìn)入你的網(wǎng)絡(luò),同時(shí)將你“不允許”的人和數(shù)據(jù)擋在外面,最大程度地阻止公共網(wǎng)絡(luò)中的惡意用戶來訪問你的網(wǎng)絡(luò)。換句話說,如果不透過防火墻,公司內(nèi)部系統(tǒng)網(wǎng)絡(luò)的人就無法訪問Internet,Internet上的人也不能與公司內(nèi)部的人進(jìn)行通訊[5]。2防火墻的類型常見的“防火墻”從原理上分有兩類,分別是應(yīng)用于網(wǎng)絡(luò)層的防火墻和應(yīng)用在應(yīng)用層的防火墻。網(wǎng)絡(luò)層防火墻:可以將網(wǎng)絡(luò)層的防火墻視為一種對IP封包進(jìn)行過濾的工序,運(yùn)作在底層的TCP/IP協(xié)議堆棧段上。我們通過列舉的方式,只讓符合規(guī)定的數(shù)據(jù)包通過,其他的一律禁止通過防火墻。這些規(guī)則一般是可以通過管理員自由定義或者自由修改的。但是有些防火墻系統(tǒng)也可能只能套用已經(jīng)存儲或是設(shè)置了的內(nèi)置的規(guī)則。我們也能以其他的角度來制定防火墻規(guī)則,只要封包不符合任何一項(xiàng)“否定規(guī)則”,就予以通過?,F(xiàn)在的操作系統(tǒng)及網(wǎng)絡(luò)設(shè)備基本上都已內(nèi)置了防火墻的功能,版本性能比較現(xiàn)金的防火墻能利用封包的多種屬性來進(jìn)行過濾,比方說源IP地址、源端口號、目的IP地址和目的端口號、服務(wù)的類型等,也能經(jīng)由通信的協(xié)議、TTL值、來源的網(wǎng)域名稱或者網(wǎng)段等屬性來進(jìn)行過濾。應(yīng)用層防火墻:應(yīng)用層的防火墻是在TCP/IP堆棧的“應(yīng)用層”上工作,你通過使用瀏覽器時(shí)所產(chǎn)生的數(shù)據(jù)流或是FTP時(shí)的數(shù)據(jù)流都是歸屬于這一層。應(yīng)用層的防火墻可以攔截進(jìn)入某應(yīng)用程序的所有數(shù)據(jù)包,并且封鎖其他的數(shù)據(jù)包(通常是直接將封包丟棄)。理論上,這一類的防火墻可以完全杜絕外部的數(shù)據(jù)入侵到受保護(hù)的系統(tǒng)中。防火墻通過監(jiān)測所有的數(shù)據(jù)包并找出不符合規(guī)則的部分,不過就實(shí)現(xiàn)而言,這個(gè)方法即繁鎖又雜亂,故而大部分防火墻不會考慮以這種方法設(shè)計(jì)。XML防火墻是一種新形態(tài)的應(yīng)用層防火墻[6]。2.1防火墻的結(jié)構(gòu)分組包過濾技術(shù)的基礎(chǔ)是網(wǎng)絡(luò)中的分包傳輸技術(shù)。網(wǎng)絡(luò)上的數(shù)據(jù)是分組以“包”的形式傳輸?shù)模總€(gè)封包都包含數(shù)據(jù)的源地址、目的地址、TCP/UDP源端口和目的端口等信息。分組包過濾技術(shù)就是根據(jù)系統(tǒng)內(nèi)部預(yù)先設(shè)計(jì)的過濾邏輯條件,查核數(shù)據(jù)流中的每一組數(shù)據(jù),依據(jù)數(shù)據(jù)包的源地址、目標(biāo)地址、TCP/UDP源端口號和目的端口號以及數(shù)據(jù)包頭中的標(biāo)志位來確定是否允許通過,拒絕非安全站點(diǎn)的數(shù)據(jù)的來源。通過采用這種技術(shù)的防火墻的核心在于包過濾算法的設(shè)計(jì)。例如:在以太網(wǎng)中,得到的數(shù)據(jù)包大致是如下結(jié)構(gòu):以太幀頭14個(gè)字節(jié),放在PUCHAR結(jié)構(gòu)數(shù)組的第0個(gè)元素到第13個(gè)元素中,其中前六個(gè)字節(jié)是目的MAC地址,之后是六個(gè)字節(jié)源MAC地址,最后兩個(gè)字節(jié)是協(xié)議類型,通常的協(xié)議類型有0x080x00->IP,0x080x06->ARP,0x080x35->RARP,所以,可以通過數(shù)組的第12個(gè)元素和第13個(gè)元素來判斷協(xié)議類型,過濾規(guī)則就是在這個(gè)基礎(chǔ)之上建立。如果要過濾特定協(xié)議,只要在相應(yīng)的字節(jié)讀取數(shù)據(jù),判斷是否符合要過濾的規(guī)則即可[7]。分組過濾技術(shù)的優(yōu)點(diǎn)是邏輯簡單、速度快、易于安裝和使用,網(wǎng)絡(luò)性能和透明性好且價(jià)格便宜,它通常安裝在路由器上。路由器是內(nèi)部網(wǎng)絡(luò)與Internet連接必不可少的設(shè)備,因此在原有網(wǎng)絡(luò)上增加這樣的防火墻不需要很多額外的費(fèi)用。分組過濾技術(shù)的缺點(diǎn)有二:一是非法訪問一旦突破防火墻,即可對主機(jī)上的軟件和配置漏洞進(jìn)行擊;二是數(shù)據(jù)包的源地址、目的地址以及IP的端口號都在數(shù)據(jù)包的頭部,很有可能被竊聽或假冒,且由于不同操作系統(tǒng)環(huán)境下TCP和UDP端口號所代表的應(yīng)用服務(wù)協(xié)議類型有所不同,故兼容性差【7】。應(yīng)用網(wǎng)關(guān)技術(shù)是建立在網(wǎng)絡(luò)應(yīng)用層上的協(xié)議過濾,它針對特別的網(wǎng)絡(luò)應(yīng)用服務(wù)協(xié)議即數(shù)據(jù)過濾協(xié)議,并且能夠?qū)?shù)據(jù)包分析并形成相關(guān)的報(bào)告。應(yīng)用網(wǎng)關(guān)對某些易于登錄和控制的輸入輸出通信環(huán)境進(jìn)行嚴(yán)格控制,以防止內(nèi)部數(shù)據(jù)被竊取。另外,應(yīng)用層網(wǎng)關(guān)還負(fù)責(zé)對網(wǎng)絡(luò)交流的信息進(jìn)行記錄,比如用戶登錄的時(shí)間,登錄的網(wǎng)址,用戶頻繁使用的網(wǎng)絡(luò)界面等。數(shù)據(jù)包過濾和應(yīng)用網(wǎng)關(guān)防火墻之間擁有一個(gè)共通性,它們都是根據(jù)特定的邏輯判定來決定是否對數(shù)據(jù)包放行。如果滿足邏輯條件,則防火墻內(nèi)和外的計(jì)算機(jī)系統(tǒng)之間建立直接聯(lián)系,防火墻外的用戶就有直接了解防火墻內(nèi)部的網(wǎng)絡(luò)結(jié)構(gòu)和運(yùn)行狀態(tài)的機(jī)會,這有利于實(shí)施非法訪問和攻擊。應(yīng)用網(wǎng)關(guān)技術(shù)的優(yōu)點(diǎn)是可以在LAN機(jī)器上被透明配置、保護(hù)在一個(gè)或多個(gè)外部IP地址之后的許多機(jī)器,簡化管理任務(wù)、用戶到LAN的出入可以通過打開和關(guān)閉NAT防火墻/網(wǎng)關(guān)上的端口來限制。應(yīng)用網(wǎng)關(guān)技術(shù)的缺點(diǎn)是一旦用戶從防火墻外連接了服務(wù),則無法防止其蓄意活動。代理服務(wù)也稱鏈路級網(wǎng)關(guān)或TCP通道。它是針對數(shù)據(jù)包過濾和應(yīng)用網(wǎng)關(guān)技術(shù)存在的缺點(diǎn)而引入的防火墻技術(shù),其特點(diǎn)是將所有跨越防火墻的網(wǎng)絡(luò)通信鏈路分為兩段。防火墻內(nèi)外計(jì)算機(jī)系統(tǒng)間應(yīng)用層的"鏈接",由兩個(gè)終止代理服務(wù)器上的"鏈接"來實(shí)現(xiàn),外部計(jì)算機(jī)的網(wǎng)絡(luò)鏈路只能到達(dá)代理服務(wù)器,從而起到了隔離防火墻內(nèi)外計(jì)算機(jī)系統(tǒng)的作用。此外,代理服務(wù)也對過往的數(shù)據(jù)包進(jìn)行分析、注冊登記,形成報(bào)告,同時(shí)當(dāng)發(fā)現(xiàn)被攻擊跡象時(shí)會向網(wǎng)絡(luò)管理員發(fā)出警報(bào),并保留攻擊痕跡。代理服務(wù)技術(shù)的優(yōu)點(diǎn)是使管理員擁有對LAN之外的應(yīng)用程序和協(xié)議功能的控制權(quán)、某些代理服務(wù)器可以緩存數(shù)據(jù),因此當(dāng)客戶存取頻繁請求的數(shù)據(jù)時(shí),這些數(shù)據(jù)就可以從本地緩存調(diào)出而不必使用互聯(lián)網(wǎng)連接,這有助于減少不必要的帶寬用量、代理服務(wù)可以被密切地監(jiān)視和記錄,從而允許在網(wǎng)絡(luò)資源用量方面進(jìn)行更嚴(yán)格的控制。代理服務(wù)技術(shù)的缺點(diǎn)是代理通常是應(yīng)用程序特有的(HTTP、telnet等)或在協(xié)議方面有限制的(多數(shù)代理只能用于TCP連接的服務(wù))、應(yīng)用程序服務(wù)無法在代理后面運(yùn)行,因此用戶的應(yīng)用程序服務(wù)器必須使用另一種網(wǎng)絡(luò)保安措施、代理可能會成為網(wǎng)絡(luò)的瓶頸,因?yàn)樗械恼埱蠛蛡鬏敹家?jīng)過一個(gè)中介而不是讓客戶直接連接遠(yuǎn)程服務(wù)【7】。2.1.1Packetfilter包過濾技術(shù)(IPFilteringorpacketfiltering)的技術(shù)依據(jù)在于利用路由器監(jiān)視并將網(wǎng)絡(luò)上流出流入的不符合規(guī)則IP包進(jìn)行過濾,拒絕發(fā)送和接受可以的數(shù)據(jù)包。因?yàn)镮nternet的網(wǎng)絡(luò)鏈接很多都要應(yīng)用路由器,所以Router成為內(nèi)部與外部通信的必經(jīng)端口,Router的制造商在Router上加入IP過濾功能,過濾用路由器也可以被稱為包過濾路由器或篩選路由器(PacketFilterRouter)。一般的防火墻就是這樣一個(gè)具備包過濾功能結(jié)構(gòu)的簡單路由器,這種Firewall應(yīng)該是能夠滿足安全性要求的,但合理的前提是合理的規(guī)則配置??梢砸粋€(gè)或者一組包過濾數(shù)據(jù)規(guī)則是否完全嚴(yán)密及是否必要是很難被人為判斷或判定的,因此在安全要求較高的場合,一般還要配合應(yīng)用其它的安保技術(shù)來加強(qiáng)安全性。包過濾技術(shù)是指網(wǎng)絡(luò)設(shè)備(路由器或防火墻)根據(jù)包過濾規(guī)則檢查所接收的每個(gè)數(shù)據(jù)包,做出允許數(shù)據(jù)包通過或丟棄數(shù)據(jù)包的決定。包過濾規(guī)則主要基于IP包頭信息設(shè)置,包括如下內(nèi)容:TCP/UDP的源或目的端口號協(xié)議類型:TCP、UDP、ICMP等源或目的IP地址數(shù)據(jù)包的入接口和出接口數(shù)據(jù)包中的信息如果與某一條過濾規(guī)則相匹配并且該規(guī)則允許數(shù)據(jù)包通過,則該數(shù)據(jù)包會被轉(zhuǎn)發(fā),如果與某一條過濾規(guī)則匹配但規(guī)則拒絕數(shù)據(jù)包通過,則該數(shù)據(jù)包會被丟棄。如果沒有可匹配的規(guī)則,缺省規(guī)則會決定數(shù)據(jù)包是被轉(zhuǎn)發(fā)還是被丟棄。簡單包過濾:是對單個(gè)包的檢查,目前大部分路由器商品都能夠提供這樣的功能,所以如果你已經(jīng)擁有邊界路由器,那么完全沒有再購買一個(gè)具有簡單包過濾的防火墻產(chǎn)品的必要。由于這類技術(shù)無法跟蹤TCP的狀態(tài),所以對TCP協(xié)議的控制是有缺陷的,比如當(dāng)你的這樣的產(chǎn)品上設(shè)置了僅允許從內(nèi)到外的TCP訪問時(shí),一些以TCP應(yīng)答包的形式進(jìn)行攻擊。簡單包過濾的產(chǎn)品由于其保護(hù)的不完善[8]。狀態(tài)檢測包過濾:利用特制的狀態(tài)監(jiān)測表跟蹤每一對網(wǎng)絡(luò)會話的狀態(tài),對每一個(gè)數(shù)據(jù)包的檢查不僅根據(jù)規(guī)則表,又考慮到數(shù)據(jù)包是否滿足通信所處的狀態(tài)。因此提供了對傳輸層更完整的控制能力。同時(shí)又因?yàn)橐幌盗屑夹g(shù)優(yōu)化性能的采用,狀態(tài)檢測包過濾的性能也顯然要比簡單包過濾產(chǎn)品更優(yōu),尤其是在一些復(fù)雜規(guī)則的大型網(wǎng)絡(luò)上。優(yōu)勢:包過濾路由器能夠協(xié)助保護(hù)整個(gè)網(wǎng)絡(luò)系統(tǒng)。大部分Internet防火墻系統(tǒng)只需要一個(gè)包過濾路由器;它的運(yùn)行速度快、執(zhí)行效率高。進(jìn)行包過濾所需要的時(shí)間很短或甚至不需要什么時(shí)間,因?yàn)榘^濾路由器只對數(shù)據(jù)包報(bào)頭相應(yīng)的字段進(jìn)行檢查,一般情況下不查看數(shù)據(jù)報(bào)除報(bào)頭外的內(nèi)容,而且某些核心區(qū)域是由專門的硬件實(shí)現(xiàn)的,如果通信所需的負(fù)載合適而且已經(jīng)定義的過濾規(guī)則很少的話,則對路由器性能沒有多大影響;包過濾路由器對于終端用戶和應(yīng)用程序是透明的。當(dāng)數(shù)據(jù)包過濾路由器執(zhí)行決定讓數(shù)據(jù)包通行時(shí),它和普通路由器沒什么區(qū)分,甚至用戶沒有意識到它的存在,因此不需要專門的用戶培訓(xùn)或在每主機(jī)上設(shè)置特別的軟件。劣勢:定義與配置包過濾器很大程度上是一項(xiàng)繁雜且很難的工作。因此網(wǎng)絡(luò)管理員需要詳細(xì)的學(xué)習(xí)和了解Internet各種類型的服務(wù)、包頭的格式和他們所希望的特定查找值的計(jì)算。若是一定要支持復(fù)雜的過濾規(guī)則要求的情況下,過濾規(guī)則的集合可能會形成很復(fù)雜的情況,而且沒有什么可以用來檢驗(yàn)過濾規(guī)則正確性的工具。路由器對數(shù)據(jù)包的吞吐量會與過濾數(shù)量成反比。路由器用來從每一個(gè)數(shù)據(jù)包中拿出目的IP地址、查詢一個(gè)相對簡單的路由表,然后將數(shù)據(jù)包正向運(yùn)行到適當(dāng)轉(zhuǎn)發(fā)接口。如果可執(zhí)行過濾,路由器還得對每個(gè)包執(zhí)行一遍所有的過濾規(guī)則【9】。這有可能造成CPU的資源的大量占用,而且可能會影響一個(gè)完全飽和的系統(tǒng)性能。2.1.2Proxy這種防火墻通過代理(Proxy)技術(shù)參加到一個(gè)有著TCP連接的全過程當(dāng)中。數(shù)據(jù)包經(jīng)由處理后從內(nèi)部發(fā)出,就好比是給防火墻設(shè)置了一個(gè)外部網(wǎng)卡一般,從而可以達(dá)到將內(nèi)部。這一種類型的防火墻被公認(rèn)為網(wǎng)絡(luò)安全性最可靠的防火墻。代理防火墻為它們所支持的協(xié)議提供全面的協(xié)議意識安全分析。相比于那些只考慮數(shù)據(jù)包頭信息的產(chǎn)品,這使得它們能做出更安全的判定。例如,特定的支持FTP的代理防火墻,它能夠監(jiān)視實(shí)際流出命令通道的FTP命令,并能夠停止任何禁止的活動。由于服務(wù)器被代理防火墻所保護(hù),而且代理防火墻允許協(xié)議意識記錄,這使得識別攻擊方法以及備份現(xiàn)有記錄更容易。代理防火墻增加安全性也是要付出代價(jià)的。額外的代價(jià)是為每個(gè)會話建立兩個(gè)連接所需的花費(fèi),加上應(yīng)用層驗(yàn)證請求所需的時(shí)間,以及性能的降低。你可以將錢花費(fèi)在代理服務(wù)器上,但在真正的高帶寬網(wǎng)絡(luò)上仍有可能到達(dá)瓶頸??赡苣鷷l(fā)現(xiàn)為您的網(wǎng)絡(luò)正確安裝以及配置所需的代理是困難的,還可能很難使VPN(虛擬專用網(wǎng))通過代理防火墻工作。優(yōu)勢:代理的基礎(chǔ)是將兩個(gè)端口的直接通訊隔斷并在中間建立起轉(zhuǎn)發(fā)系統(tǒng),任何的通信都要經(jīng)由代理的轉(zhuǎn)發(fā),用戶任何情況下都不可以建立直接的TCP連接,應(yīng)用層經(jīng)由協(xié)議的會話過程筆記滿足代理的安全規(guī)則要求,對于不同的應(yīng)用協(xié)議,代理防火墻提供了不同的對應(yīng)用層控制的能力供用戶選擇??梢赃@樣說,狀態(tài)監(jiān)測包過濾技術(shù)規(guī)范了網(wǎng)絡(luò)層和傳輸層的安全行為,而應(yīng)用代理則是規(guī)范了特殊的應(yīng)用協(xié)議上的安全行為[10]。劣勢:代理防火墻的技術(shù)發(fā)展遠(yuǎn)沒有包過濾技術(shù)活躍,靈魂與精華上基本什么都沒有變,僅僅是增添了不同種類的協(xié)議,為了克服代理技術(shù)種類相當(dāng)有限的不足,多數(shù)代理防火墻也提供了狀態(tài)檢測包過濾的能力在同一時(shí)間,每當(dāng)用戶遇到的防火墻陌生的應(yīng)用協(xié)議時(shí),就通過使用包過濾的方式對其檢查。但是目前很難將這兩者的安全策略完全全結(jié)合在一起,所以復(fù)合型的產(chǎn)品一般情況下更難以配置和調(diào)試[10]。2.2防火墻的發(fā)展趨勢和現(xiàn)狀狀態(tài)檢測包過濾技術(shù)和代理這兩種技術(shù)現(xiàn)在仍舊是防火墻市場中通常采用的主流技術(shù),但這兩種技術(shù)正在形成一種融合的趨勢,演變的結(jié)果也許會導(dǎo)致一種新的結(jié)構(gòu)名稱的出現(xiàn)。在NetEye防火墻中以狀態(tài)監(jiān)測包過濾為基本創(chuàng)建了一種暫時(shí)稱之為“流過濾”的結(jié)構(gòu),它基本的原理是防火墻處于外部包過濾的情況,運(yùn)行在鏈路層或者IP層,在不違反規(guī)則的情況下,兩個(gè)端口可以直接的房分,不過對于隨意一個(gè)不違反規(guī)則的訪問在防火墻內(nèi)部都有兩個(gè)層的會話且是完全獨(dú)立的會話,數(shù)據(jù)是按照“流”的形態(tài)從一個(gè)會話去向另一個(gè)會話,因?yàn)榉阑饓τ趹?yīng)用層的策略部署在“流”的中間,因此可以在任何時(shí)候在應(yīng)用層替代服務(wù)器或者是客戶端的會話通信,從而起到了和代理型防火墻類似的控制性功能,比方說網(wǎng)眼防火墻系統(tǒng)對于SMTP的處理,防火墻系統(tǒng)完成完全的對郵件的存儲并且轉(zhuǎn)發(fā),并實(shí)現(xiàn)的各種攻擊的防范功能[11]。“流過濾”的另一個(gè)優(yōu)越的性能在于,占用資源更少且運(yùn)行效率更加高效,若是你需求一個(gè)能夠支持?jǐn)?shù)量相當(dāng)之大的并發(fā)性訪問,同時(shí)又需要有相當(dāng)于代理技術(shù)的作用在應(yīng)用層的防護(hù)能力的系統(tǒng),“流過濾”結(jié)構(gòu)是最好的選擇。隨著技術(shù)發(fā)展了這么多年,已經(jīng)成為了網(wǎng)絡(luò)信息安全中最為成熟的技術(shù)支持,是信息安全管理員手中最有效的盾牌。而且防火墻本身的核心思想與技術(shù)仍然在隨著時(shí)代的發(fā)展而進(jìn)步著,事實(shí)上,沒有哪一個(gè)安全手段或是技術(shù)能夠停工永久的保障,因?yàn)榫W(wǎng)絡(luò)在進(jìn)步,應(yīng)用在進(jìn)步,攻擊的手段在變化。對于防火墻來說,技術(shù)的不斷進(jìn)步才是真實(shí)的保障。3防火墻技術(shù)的設(shè)計(jì)和實(shí)現(xiàn)要開發(fā)防火墻工具,需要現(xiàn)建立驅(qū)動程序。通過使用IP過濾驅(qū)動,可以開發(fā)出應(yīng)用廣泛的網(wǎng)絡(luò)安全產(chǎn)品。在進(jìn)行驅(qū)動開發(fā)時(shí),大多數(shù)都是選擇Filter-HookDriver。3.1防火墻的設(shè)計(jì)程序主要大致分為如下幾個(gè)部分:載入IP協(xié)議過濾驅(qū)動程序Filter-HookDriver;在CAddRuleDlg類的函數(shù)OnAddsave()中添加過濾規(guī)則,并用AddFilter()函數(shù)將此過濾規(guī)則添加到Filter-HookDrvier中去;啟動防火墻,進(jìn)行數(shù)據(jù)包過濾;創(chuàng)建程序主窗體結(jié)構(gòu),在這之前與已經(jīng)導(dǎo)入過濾規(guī)則的Filter-HookDriver用PreCreateWindow()建立關(guān)系,提供可視化操作。3.1.1回調(diào)函數(shù)Filter-HookDriver是Windows2000、WindowsXP等系統(tǒng)自帶的內(nèi)核模式驅(qū)動,它的結(jié)構(gòu)是一個(gè)典型的內(nèi)核模式驅(qū)動結(jié)構(gòu)。在Windows2000heWindowsXP中,在“System32\drivers”目錄下的IPfiltdrv.sys是Microsoft提供的IP協(xié)議過濾驅(qū)動程序。它允許用戶注冊自己的IP數(shù)據(jù)報(bào)處理函數(shù)。在MSDN中有關(guān)于這方面內(nèi)容的簡短說明,位于Filter-HookDriverReference章節(jié)中。這一部分說明文檔論述了Filter-Hook驅(qū)動程序?qū)崿F(xiàn)的回調(diào)函數(shù)和該驅(qū)動程序用以注冊回調(diào)函數(shù)的I/O控制碼。回調(diào)函數(shù)是是這類驅(qū)動程序的主體部分。操作系統(tǒng)提供的IP過濾驅(qū)動程序使用這個(gè)過濾鉤子來判斷IP數(shù)據(jù)包的處理方式[12]。typedefPF_FOWORD_ACTION(*PacketFileterExtensionPtr)(unsignedchar*PacketHeader,unsignedchar*Packet,unsignedintPacketLength,unsignedintRecvInterfaceIndex,unsignedintSendInterfaceIndex,IPAddrRecvLinkNextHop,IPAddrSendLinkNextHop);該類型就是過濾鉤子的回調(diào)函數(shù),它決定所有傳過來的IP數(shù)據(jù)包的命運(yùn)——是繼續(xù)傳遞,還是丟掉,或者允許IP過濾驅(qū)動程序繼續(xù)處理。3.1.2程序的結(jié)構(gòu)與類IPFilter是定義過濾規(guī)則的結(jié)構(gòu)體,此結(jié)構(gòu)體將通常過濾數(shù)據(jù)包要考慮的包頭信息都包括進(jìn)去了。filterList規(guī)則列表的建立。程序主要包括的類:CFireView、CAddRuleDlg、CAboutDlg、TDriver。在程序中,IP過濾協(xié)議驅(qū)動程序由TDriver類的LoadDriver()函數(shù)載入,同時(shí)完成對驅(qū)動程序的初始化,嵌入到Window中作為系統(tǒng)的服務(wù),而IP包處理函數(shù)通過啟動IP過濾協(xié)議驅(qū)動程序函數(shù)StartDriver()和對IP過濾協(xié)議驅(qū)動程序進(jìn)行I/P操作放入本類中[13]。完成核心的驅(qū)動載入,過濾規(guī)則類后,顯示程序界面用到的類是CFireView。3.2程序流程圖查看過濾結(jié)果判斷APP是否載入啟動驅(qū)動服務(wù)啟動防火墻添加過濾規(guī)則載入?載入Filter-HookDriver查看過濾結(jié)果判斷APP是否載入啟動驅(qū)動服務(wù)啟動防火墻添加過濾規(guī)則載入?載入Filter-HookDriverNY防火墻開始過濾防火墻開始過濾NY圖3.1防火墻運(yùn)行流程圖3.3設(shè)計(jì)的實(shí)現(xiàn)要實(shí)現(xiàn)防火墻的真正運(yùn)行,驅(qū)動的注冊是核心中的核心。3.3.1Filter-HookDriver的注冊因?yàn)榘^濾必須在驅(qū)動實(shí)現(xiàn)相應(yīng)的過濾操作,所以首先需要在Microsoft提供的IP協(xié)議過濾驅(qū)動程序匯總注冊自己的IP數(shù)據(jù)包函數(shù),注冊IP數(shù)據(jù)包處理函數(shù)后,一旦收到或者發(fā)送數(shù)據(jù)包時(shí),IP協(xié)議驅(qū)動程序會自動調(diào)用注冊的IP數(shù)據(jù)包處理函數(shù),達(dá)到過濾目的。注冊需經(jīng)過這幾個(gè)步驟:載入IP協(xié)議過濾驅(qū)動程序;創(chuàng)建服務(wù)并用StartDriver啟動服務(wù);跟防火墻程序交互,判斷是否要執(zhí)行過濾;完成操作后,防火墻的StopDriver函數(shù)停止服務(wù)。過濾規(guī)則的建立與過濾規(guī)則導(dǎo)入進(jìn)Filter-HookDriver。對過濾規(guī)則的不同修改可以使導(dǎo)入進(jìn)Filter-HookDriver的規(guī)則實(shí)現(xiàn)不同功能。數(shù)據(jù)包過濾的基本步驟可以通過CAddRuleDlg類中的OnAddsave()表明:首先展開收到的數(shù)據(jù)包包頭(PacketHeader);檢查數(shù)據(jù)包中的相關(guān)協(xié)議(protocol),并于設(shè)定的過濾規(guī)則進(jìn)行比較;如果協(xié)議一致,則檢查源和目的地址;如果協(xié)議是TCP,則檢查端口;最終決定該數(shù)據(jù)包是通過還是丟棄[14]。3.3.2主程序框架的設(shè)計(jì)基本程序的功能需要,設(shè)計(jì)如下幾個(gè)框體:圖3.2端口掃描器圖3.3功能界面圖3.4界面按鈕執(zhí)行后的應(yīng)用程序界面為。圖3.5主界面他們的控件及驅(qū)動程序代碼在類CFirewall中,具體代碼見附錄:A。該APP和驅(qū)動之間的互通圖關(guān)系圖如下應(yīng)用程序FireView.cppAddRuleDlg.cpp驅(qū)動程序Filter-Hook應(yīng)用程序FireView.cppAddRuleDlg.cpp驅(qū)動程序Filter-HookDriverPreCreateWindowAddFilterDeviceIOControl圖3.6驅(qū)動與應(yīng)用交互原理其中,PreCreateWindow表明FireView.cpp首先載入驅(qū)動;AddFilter表明導(dǎo)入過濾規(guī)則;3.4設(shè)計(jì)細(xì)節(jié)在IP協(xié)議過濾驅(qū)動程序與應(yīng)用程序交互的過程中,有兩個(gè)設(shè)計(jì)是務(wù)必要考慮的。緩存:在驅(qū)動程序接收到過濾規(guī)則或APP回應(yīng)后,起碼有一個(gè)緩沖以便臨時(shí)存儲信息,再等待處理。緩存不需要很大,只要能在得到時(shí)間片之前緩沖區(qū)不溢出就可以了,實(shí)踐中大約能存儲幾十個(gè)報(bào)文就行了[15]。緩沖的方式是一個(gè)先進(jìn)先出的隊(duì)列,考慮方便實(shí)現(xiàn)靜態(tài)存儲的環(huán)形隊(duì)列,也就是說不必每次分配內(nèi)存,而是一次性分配好一大塊內(nèi)存,做環(huán)形使用。上述方式是采用數(shù)組的方式組織緩沖,為每一個(gè)報(bào)文供應(yīng)一個(gè)最大報(bào)文長度的空間。因?yàn)榫彌_區(qū)數(shù)目有限,因此這種方式可以滿足需要,如果要考慮到減少空間的浪費(fèi),那么可以按每個(gè)報(bào)文的實(shí)際長度存儲,上面的算法便不能滿足這種方式。在網(wǎng)卡接收IP報(bào)文發(fā)送過程中,驅(qū)動程序緩存報(bào)文,用時(shí)間通知應(yīng)用層有報(bào)文需要處理,那么應(yīng)用層可以通過IO方式或者共享內(nèi)存方式取得此報(bào)文。事實(shí)證明,在100Mbps速率下,以上兩種方式都可以滿足需要,最為漸變的方式就是使用有緩沖的IO方式,不過IO方式因?yàn)橐淮沃荒馨l(fā)送一個(gè)報(bào)文,100Mbps網(wǎng)絡(luò)速度下降為70%~80%,10Mbps不會有影響。也就是說,主機(jī)發(fā)出的最大速度只有70%的網(wǎng)絡(luò)速度,這和應(yīng)用程序發(fā)送不超過MTU的UDP數(shù)據(jù)報(bào)的速度是一樣的,對TCP來說,由于是雙向通信,損失更大,大約為40%~60%的速度。多數(shù)時(shí)候,我們考慮共享內(nèi)存方式,因?yàn)闇p少了系統(tǒng)調(diào)用的開銷可以避免速度下降,在進(jìn)行通信時(shí)還必須注意數(shù)據(jù)包發(fā)送的速度控制。發(fā)送數(shù)據(jù)時(shí)對發(fā)送速度的控制:當(dāng)向IP協(xié)議過濾驅(qū)動程序發(fā)送報(bào)文時(shí)。一般來說,驅(qū)動程序緩存這些報(bào)文,并且通知IP應(yīng)用發(fā)送成功的狀態(tài),處理完畢后再進(jìn)行抉擇。如此,報(bào)文的存儲速度要比網(wǎng)卡發(fā)送的速度快很多,可是IP應(yīng)用將以存儲的速度進(jìn)行報(bào)文的發(fā)送。這樣就會導(dǎo)致緩存的極具消耗,之后的數(shù)據(jù)報(bào)只好丟棄,這樣一來,UDP不能正常的發(fā)送工作。TCP由于可以進(jìn)行適應(yīng)網(wǎng)絡(luò)狀況,仍舊可以在這種情況下工作,速度在70%左右[16]。因此,必須有一個(gè)辦法避免這種狀況。驅(qū)動將這些報(bào)文進(jìn)行緩存,通知IP應(yīng)用發(fā)送狀態(tài)未決定。直到最后處理完畢再告訴IP應(yīng)用完成了發(fā)送,這樣協(xié)調(diào)了發(fā)送的速度。這樣的方法也伴隨一個(gè)問題就是驅(qū)動程序必須在發(fā)送超時(shí)的情況下放棄對這些緩沖報(bào)文的所有權(quán)。4軟件測試軟件測試結(jié)果如下圖,圖4.1軟件運(yùn)行結(jié)果該軟件與XP與2000系統(tǒng)下正常工作,可以進(jìn)行IP識別并控制ping的通斷。5結(jié)束語本設(shè)計(jì)基于Filter-HookDriver設(shè)計(jì)的數(shù)據(jù)包過濾防火墻,結(jié)合它的工作原理和特點(diǎn),在WindowsXP/2000環(huán)境下使用Filter-HookDriver創(chuàng)建過濾函數(shù),并利用設(shè)定好過濾規(guī)則對訪問的數(shù)據(jù)包進(jìn)行過濾,實(shí)現(xiàn)防火墻的功能。優(yōu)點(diǎn)是可以自選設(shè)定過濾規(guī)則,阻止特定的IP地址和端,并且可以選擇需要阻止的協(xié)議而達(dá)到保護(hù)系統(tǒng)安全的功能。本軟件中的過濾規(guī)則需要用戶自己手動添加與注冊,無法自動識別是不足之處,但I(xiàn)P的識別與ping隔斷能力還是可以正常運(yùn)行的。致謝畢業(yè)設(shè)計(jì)已經(jīng)接近了尾聲,這也意味著我的大學(xué)生活就要結(jié)束了,學(xué)生活一晃而過,回首走過的歲月,心中倍感充實(shí),當(dāng)我寫完這篇畢業(yè)論文的時(shí)候,有一種如釋重負(fù)的感覺,感慨良多。這次的畢業(yè)設(shè)計(jì),對于培養(yǎng)我們理論聯(lián)系實(shí)際的設(shè)計(jì)思想;訓(xùn)練綜合運(yùn)用機(jī)械設(shè)計(jì)和有關(guān)先修課程的理論,結(jié)合生產(chǎn)實(shí)際反系和解決工程實(shí)際問題的能力;鞏固、加深和擴(kuò)展有關(guān)機(jī)械設(shè)計(jì)方面的知識等方面有重要的作用。寫作畢業(yè)論文是一次再系統(tǒng)學(xué)習(xí)的過程,畢業(yè)論文的完成,同樣也意味著新、生活的開始。希望大家在將來的生活中繼續(xù)追逐最初的夢想,永不放棄。

參考文獻(xiàn)[1]廖春盛.校園網(wǎng)絡(luò)防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].華南師范大學(xué)學(xué)報(bào),2000.[2]徐孝凱,張紀(jì)勇.C++面向?qū)ο蟪绦蛟O(shè)計(jì):VC++6.0運(yùn)行環(huán)境[M].天津大學(xué)出版社2009.[3]郎銳,羅發(fā)根.VisualC++網(wǎng)絡(luò)通信程序開發(fā)指南[M].北京:機(jī)械工業(yè)出版社,2004[4]朱桂英,張?jiān)?VisualC++網(wǎng)絡(luò)編程開發(fā)與實(shí)踐[M].清華大學(xué)出版社,2013.[5]吳桂華.目前防火墻中的最新技術(shù)及發(fā)展[J].消費(fèi)電子,2014.[6]MFry,AGhosh.ApplicationLayerNetworking[J]ComputerNetworks,1999.[7]裴衣非.計(jì)算機(jī)網(wǎng)絡(luò)的安全屏障——防火墻技術(shù)的研究[J].科技信息,2009.[8]徐兵.網(wǎng)絡(luò)防火墻結(jié)構(gòu)[J].中國有線電視,2004[9]AndrewS.Tanenbau.計(jì)算機(jī)網(wǎng)絡(luò)(第四版)[M].北京:清華大學(xué)出版社,2004.[10]曹斌,網(wǎng)絡(luò)防火墻的體系結(jié)構(gòu)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2001[11]王艷平,張?jiān)?Windows網(wǎng)絡(luò)與通信程序設(shè)計(jì)[M].北京:人民郵電出版社,2006.[12]IETFRFC.networkAddresstranslate—FriendlyApplicationDesignGuidelines[S],1918.[13]胡曉軍,高宏偉.編著VisualC++高級開發(fā)范例解析[M].電子工業(yè)出版社,2002.[14]IETFRFC2663.IPNetworkAddressTraslator(NAT)Terminologyandconsideration[S].[15]周明天,汪文勇.編著TCP/IP網(wǎng)絡(luò)原理與技術(shù)[M]北京:清華大學(xué)出版社,1993.[16]D.D.Clark,D.L.ArchitecturalConsiderationforaNewGenerationofProtocol[S]Proc.ACMStgcomm,1990.

附錄A:ResearchofNetworkSecurityandFirewallsTechniquesNowwiththecomputernetworkande-commerceusedwidely,networksecurityhasbecomeanimportantproblemthatwemustconsiderandresolve.Moreandmoreprofessions.enterprisesandindividualssurferfromthesecurityproblemindifferentdegree.theyarelookingforthemorereliablesafetysolution.Inthedefensesystemadoptedbynetworksecurityatpresent,thefirewallsstandtheveryimportantposition.AllthefirewallshavethefunctiontofiltertheIPaddress.ThistaskcheckstheIPpacket,makesthedecisionwhethertoreleaseortoabandonitaccordingtothesourceaddressanddestinationaddressoftheIP.thereisafirewallbetweentwonetworksections,anUNIXcomputerisononesideofthefirewall,andtheothersideisaPCclient.WhilethePCclientasksatelnetrequestfortheUNIXcomputer,theclientprocedureoftelnetinthePCproducesaTCPpacketandpassesthepackettothelocalprotocolstacktopreparetosend.TheprotocolstackfillsitinoneIPpacket.then,sendsittoUNIXcomputerthroughthepathdefinedbytheTCP/IPstackofPC.TheIPpacketcan'treachtheUNIXcomputeruntilitpassesthefirewallbetweenthePCandtheUNIXcomputer.Asthekeyfacilitythatmaintainsthenetworksecurity.firewallstakethepurposeofestablishinganobstaclebetweentrustandtrustlessnetwork,andputcorrespondingsafetystrategyintopractice.TheapplicationfirewallisaveryefficientmeansofnetworksecurityonInternet,itisinstalledbetweenthetrustandtrustlessnetwork,canisolatetheconnectionbetweenthetrustandtruslessnetwork,anddoesn’thamperpeople’saccesstotheriskareaatthesametime.Firewallcanmonitorthetrafficflowinginandoutfromthenetworktofinishthetaskseeminglyimpossible;itonlyallowsthesafeandcheckedinformationtoenterinto,andmeanwhileresistsonthedatathatmaybringaboutthethreattoenterprise.Asthefaultanddefectofthesecurityproblembecomemoreandmoregeneral,theinvasiontothenetworknotonlycomesfromthesuperattackmeans,butalsomaybefromthelower-levelmistakesorimproperpasswordselectionsontheconfiguration.So,thefunctionofthefirewallsispreventingthecommunicationthatnothopedandauthorizedpassesinandoutofthenetworkprotected.forcingthecompaniestostrengthentheirownnetworksecuritypolicy.Thegeneralfirewallscanachievethefollowingpuroposes:First,restrainingothersfromenteringtheinsidenetwork,filteringtheunsafeserviceandillegaluser;Second,preventingtheinvadersfromclosingtoyourdefenseinstallation;Third,limtingtheusertoaccessthespecialsite;Fourth,providingconvenienceformonitoringtheInternetsecurity.Anintegratedfirewallssystemusuallyconsistsofscreeningrouterandproxyserver.Thescreeingrouterisamulty-portIProuter.itchecktheeachcomingIPpacketaccordingtothegroupregulartojudgewhethertotransmitit.Thescreeningroutergetsinformationfromthepacket.fotexampletheprotocolnumber.theIPaddressandportnumberthatreceivingandsendingmassages.theflagoflinkevensomeotherIPselections.filteringIPpacket.Theproxyserverareserverprocessinthefirewall.itcanreplacethenetworkusertofinishthespecificTCP/IPfunction.Aproxyserverisnaturallyagatewayofapplicationlayer.agatewayoftwonetworksjoinedspecificnetworkapplication.UserscontactwithproxyserverbyoneoftheTCP/IPapplicationsuchasTelnetorFTP.theproxyserverasktheusersforthenameoftheremotehost.whichuserswanttoaccess.Aftertheusershaveansweredandofferedthecorrectusers'identitiesandauthenticationinformation,theproxyservercommunicatestheremotehost,actastherelaybetweentwocommunicationsites.Thewholecoursecanbetotallytransparenttousers.Therearemainlythreetypesinthefirewalls:packetfiltering.applicationgatewaysandstatedetection.Packetfilteringfirewallworksonthenetworklayer.itcanfilterthesourceaddress.destinationaddress.sourceportanddestinationportofTCP/IPdatapacket.Ithasadvantagessuchasthehigherefficiency.transparenttouser.andusersmightnotfeeltheexistenceofthepackerfilteringfirewall,unlessheistheillegaluserandhasbeenrefused.Theshortcomingsarethatitcan'tensurethesecuritytomostservicesandprotocols,unabletodistinguishthedifferentusersofthesameIPaddresseffectively,anditisdifficulttobeconfigured,monitoredandmanaged.can'tofferenoughdailyrecordsandwarning.Theapplicationgatewaysfirewallperformsitsfunctionontheapplicationlayer,itconnectswithspecificmiddle-joint(firewall)byaclientprocedure,andthenthemiddle-jointconnectswiththeserveractually.Unlikethepacketfilteringfirewall.whenusingthefirewallofthiskind.thereisnodirectconnectionbetweentheoutsidenetworks.soevenifthematterhashappenedinthefirewall.theoutsidenetworkscan'tconnectwithnetworksprotected.Theapplicationgatewayfirewalloffersthedetaileddailyrecordsandauditingfunction,itimprovedthesecurityofthenetworkgreatly.andprovidesthepossibilitytoimprovethesecurityperformanceoftheexistingsoftwaretoo.Theapplicationgatewaysfirewallsolvesthesafetyproblembasedonthespecificapplicationprogram.theproductsbasedonProxywillbeimprovedtoconfiguretheserviceincommonuseandnon-standardport.However.solongastheapplicationprogramneedsupgrading.theusersbasedonProxywillfindthattheymustbuynewProxyserver.Asatechniqueofnetworksafety.Firewallcombinedwithproxyserverhassimpleandpracticalcharacteristics,canreachacertainsecurityrequestincaseofnotrevisingtheoriginalnetworkapplicationsystem.However.ifthefirewallsystemisbrokenthrough.thenetworkprotectedisinhavingnostateofprotecting.AndifanenterprisehopestolaunchthebusinessactivityonInternetandcarryoncommunicationwithnumerouscustomers.itcan'tmeetthedemands.Inaddition,thefirewallbasedonProxyServicewilloftenmakestheperformanceofthenetworkobviouslydrop.Thethirdgenerationoffirewalltakesthedetectiontechniqueofstateasthecore,comb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論