版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘要防火墻是網(wǎng)絡(luò)平安研究的一個重要容,數(shù)據(jù)包捕獲是包過濾型防火墻的前提,本文對基于linux主機的個人防火墻的數(shù)據(jù)包捕獲模塊進展了研究,重點論述數(shù)據(jù)包捕獲模塊的構(gòu)造、組成以及功能。首先對信息平安及防火墻的重要性進展論述,并給出防火墻的詳細分類;然后分析了基于linux主機的個人防火墻總體設(shè)計及軟硬件平臺原理,接著論述linux下的數(shù)據(jù)包捕獲模塊構(gòu)造與原理,并詳述其具體實現(xiàn)步驟關(guān)鍵詞:防火墻linux,數(shù)據(jù)包捕獲模塊,包過濾Abstractfirewallnetworksecurityisanimportantcontentoftheresearch,thepacketfilterpacketc
2、aptureisthepremiseoffirewall,thispaperisbasedonpersonalfirewallofhostLinuxpacketcapturemodulewasstudied,andfocusesonthepacketcapturesmodulestructure,positionandfunction.Firsttoinformationsecurityandtheimportanceofthefirewallisdiscussedindetail,andgivesthefirewall.ThenbasedontheanalysisofthemainLinux
3、personalfirewallsoftwareandhardwareplatformandoveralldesignprinciple,thendiscussestheLinuxpacketcapturemodulestructureandprinciple,anddiscussitsspecificimplementationsteps.keywords:firewalllinux;packetcaptures;thepacketfiltermodules目錄緒論1第一章LINUX系統(tǒng)2 TOC o 1-5 h z HYPERLINK l bookmark8 o Current Docum
4、ent LINUX系統(tǒng)簡介2 HYPERLINK l bookmark10 o Current Document LINUX的特點3 HYPERLINK l bookmark12 o Current Document 第二章防火墻簡介5傳統(tǒng)防火墻及其缺陷5 HYPERLINK l bookmark16 o Current Document 分布式防火墻5第三章LINUX防火墻的幾種常見功能9包過濾9代理9IP偽裝11一個LINUX防火墻實例12 TOC o 1-5 h z HYPERLINK l bookmark28 o Current Document 第四章防火墻系統(tǒng)15 HYPERLIN
5、K l bookmark30 o Current Document 4.1防火墻系統(tǒng)總體設(shè)計15 HYPERLINK l bookmark32 o Current Document 第五章基于LINUX的數(shù)據(jù)包捕獲模塊16 HYPERLINK l bookmark34 o Current Document 基于LINUX的數(shù)據(jù)包捕獲模塊構(gòu)造16 HYPERLINK l bookmark36 o Current Document 基于LINUX的數(shù)據(jù)包捕獲模塊原理分析16 HYPERLINK l bookmark38 o Current Document 第六章數(shù)據(jù)包捕獲模塊設(shè)計19 HYPER
6、LINK l bookmark40 o Current Document 數(shù)據(jù)包捕獲模塊設(shè)計流程19 HYPERLINK l bookmark42 o Current Document 數(shù)據(jù)包捕獲模塊實現(xiàn)19 HYPERLINK l bookmark44 o Current Document 第七章程序中用到的構(gòu)造體21 HYPERLINK l bookmark46 o Current Document 7.1程序中用到的一些構(gòu)造體解析21致辭23參考文獻:24緒言網(wǎng)絡(luò)防火墻技術(shù)是一種用來加強網(wǎng)絡(luò)之間控制,防止外部網(wǎng)絡(luò)用戶以非法手段通過外部網(wǎng)絡(luò)進入部網(wǎng)絡(luò),部網(wǎng)絡(luò)資源,保護部網(wǎng)絡(luò)操作環(huán)境的特殊網(wǎng)
7、絡(luò)互聯(lián)設(shè)備。它對兩個或多個網(wǎng)絡(luò)之間傳輸?shù)臄?shù)據(jù)包按照一定的平安策略來實施檢查,以決定網(wǎng)絡(luò)之間的通信是否被允許,并監(jiān)視網(wǎng)絡(luò)運行狀態(tài)。根據(jù)防火墻所采用的技術(shù)不同,可以將它分為四種根本類型:包過濾型、網(wǎng)絡(luò)地址轉(zhuǎn)換一net、代理型和監(jiān)測型。包過濾型產(chǎn)品是防火墻的初級產(chǎn)品,具技術(shù)依據(jù)是網(wǎng)絡(luò)中的分包傳輸技術(shù)。包過濾技術(shù)的優(yōu)點是簡單實用,實現(xiàn)本錢較低,在應(yīng)用環(huán)境比擬簡單的情況下,能夠以較小的代價在一定程度上保證系統(tǒng)的平安絡(luò)地址轉(zhuǎn)換是一種用于把ip地址轉(zhuǎn)換成臨時的、外部的、注冊的ip地址標準。它允許具有私有ip地址的部網(wǎng)絡(luò)因特網(wǎng)。代理型防火墻也可以被稱為代理效勞器,它的平安性要高于包過濾型產(chǎn)品,并已經(jīng)開場向應(yīng)用
8、層開展。代理型防火墻的優(yōu)點是平安性較高,可以針對應(yīng)用層進展偵測和掃描,對付基于應(yīng)用層的侵入和病毒都十分有效。其缺點是對系統(tǒng)的整體性能有較大的影響,而且代理效勞器必須針對客戶機可能產(chǎn)生的所有應(yīng)用類型逐一進展設(shè)置,大大增加了系統(tǒng)管理的復(fù)雜性。監(jiān)測型防火墻是新一代的產(chǎn)品,能夠?qū)Ω鲗拥臄?shù)據(jù)進展主動的、實時的監(jiān)測,在對這些數(shù)據(jù)加以分析的根底上,監(jiān)測型防火墻能夠有效地判斷出各層中的非法侵入。同時,這種檢測型防火墻產(chǎn)品一般還帶有分布式探測器,這些探測器安置在各種應(yīng)用效勞器和其他網(wǎng)絡(luò)的節(jié)點之中,不僅能夠檢測來自網(wǎng)絡(luò)外部的攻擊,同時對來自部的惡意破壞也有極強的防作用。監(jiān)測型防火墻在平安性上已超越了包過濾型和代理
9、效勞器型防火墻,但其實現(xiàn)本錢較高?;趯ο到y(tǒng)本錢與平安技術(shù)本錢的綜合考慮,用戶可以選擇性地使用某些監(jiān)測型技術(shù)。第一章Linux系統(tǒng)Linux系統(tǒng)簡介Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng)。我們通常所說的Linux,指的是GNU/Linux,即采用Linux核的GNU操作系統(tǒng)。GNU代表GNUsNotUnix。它既是一個操作系統(tǒng),也是一種規(guī)。Linux最早由LinusTorvalds在1991年開場編寫。在這之前,RichardStallman&J立了FreeSoftwareFoundationFSF組織以及GNU工程,并不斷的編寫創(chuàng)立GNU程序程序的許可方式均為GPL:Gene
10、ralPublicLicense。在不斷的有程序員和開發(fā)者參加到GNU組織中后,變造就了今天我們所看到的Linux!Linux是一個核。然而一個完整的操作系統(tǒng)不僅僅是核而已。所以許多個人、組織和企業(yè)開發(fā)了基于GNU/Linux的Linux發(fā)行版。今天有不計其數(shù)的發(fā)行版可供人們選擇使用,雖然不夠統(tǒng)一的標準給不同版本的使用者在技術(shù)上的相互溝通帶來了一定的麻煩,但歸根結(jié)底“自由、開源、團結(jié)互助的理念是Linux愛好者們共同的向往。Linux的特點有很多人現(xiàn)在都在學(xué)習(xí)和研究Linux。作為當(dāng)今一種新興和流行的操作系統(tǒng)的前身來源與強大的UNIX。而那個芬蘭小伙子一開場就沒把它定位成一種操作系統(tǒng)。但是Li
11、nux的作用在今天已越來越重要了。想接觸和學(xué)習(xí)它,就要先了解它的特點。讓我們一起來了解一下吧:.自由開源軟件首先,Linux可以說是作為開放源碼的自由軟件的代表,作為自由軟件,它有如下兩個特點:一是它開放源碼并對外免費提供,二是愛好者可以按照自己的需要自由修改、復(fù)制和發(fā)布程序的源碼,并公布在Internet上,因此Linux操作系統(tǒng)可以從互聯(lián)網(wǎng)上很方便地免費下載得到,這樣你還可以省下購置Windows操作系統(tǒng)的一筆不小的資金。且由于可以得到Linux的源碼,所以操作系統(tǒng)的部邏輯可見,這樣就可以準確地查明故障原因,及時采取相應(yīng)對策。在必要的情況下,用戶可以及時地為Linux打“補丁,這是其它操作
12、系統(tǒng)所沒有的優(yōu)勢。同時,這也使得用戶容易根據(jù)操作系統(tǒng)的特點構(gòu)建平安保障系統(tǒng),不用擔(dān)憂來自那些不公開源碼的“黑盒子式的系統(tǒng)預(yù)留的什么”后門的意外的打擊。而且,Linux上跑的絕大多數(shù)應(yīng)用程序也是免費可得的,用了Linux就再也不用擔(dān)憂背上“使用盜版軟件的黑鍋了。.真正的多任務(wù)多用戶只有很少的操作系統(tǒng)能提供真正的多任務(wù)能力,盡管許多操作系統(tǒng)聲明支持多任務(wù),但并不完全準確,如Windows。而Linux那么充分利用了X86CPU的任務(wù)切換機制,實現(xiàn)了真正多任務(wù)、多用戶環(huán)境,允許多個用戶同時執(zhí)行不同的程序,并且可以給緊急任務(wù)以較高的優(yōu)先級。.價格優(yōu)勢價格其實是影響產(chǎn)品的重要因素,作為開源軟件,它的價格
13、優(yōu)勢不言而喻。4多平臺支持各種CPU,包括Intel,AMD,ARM,Mips等。.強大的網(wǎng)絡(luò)功能實際上,Linux就是依靠互聯(lián)網(wǎng)才迅速開展了起來,Linux具有強大的網(wǎng)絡(luò)功能也是自然而然的事情。它可以輕松地與TCP/IP、LANManager、WindowsforWorkgroups、NovellNetware或WindowsNT網(wǎng)絡(luò)集成在一起,還可以通過以太網(wǎng)或調(diào)制解調(diào)器連接到Internet上。Linux不僅能夠作為網(wǎng)絡(luò)工作站使用,更可以勝任各類效勞器,如X應(yīng)用效勞器、文件效勞器、打印效勞器、效勞器、新聞效勞器等等。.兼容性高Linux對系統(tǒng)兼容性較高,對硬件要求不是很高。支持很多軟硬件
14、平臺。.開發(fā)功能強Linux支持一系列的UNIX開發(fā),它是一個完整的UNIX開發(fā)平臺,幾乎所有的主流程序設(shè)計語言都已移植到Linux上并可免費得到,如C、C+、Fortran77、ADA、PASCAL、Modual2和3、Tcl/TkScheme、SmallTalk/X等。.具有豐富的圖形用戶界面Linux的圖形用戶界面是Xwindow系統(tǒng)。如GNOME、KDE。還有SHELL。Xwindow可以做MSWindows下的所有事情,而且更有趣、更豐富,用戶甚至可以在幾種不同風(fēng)格的窗口之間來回切換。另外它還支持很多的應(yīng)用軟件,這也是它的一大特性。.得意的“代言物下次大家看到得意企鵝造型的時候,不只
15、是要聯(lián)想到QQ。其實Linux也是的哦。10平安性和穩(wěn)定性這點不用多說,Linux的較高平安性和良好的穩(wěn)定性能是它的一大特色。第二章防火墻簡介2.1傳統(tǒng)防火墻及其缺陷防火墻是指設(shè)置在不同網(wǎng)絡(luò)或網(wǎng)絡(luò)平安域之間,根據(jù)一定的平安策略對網(wǎng)絡(luò)間的通信實施控制的一系列部件的組合。傳統(tǒng)意義上的防火墻就是指邊界防火墻,它將網(wǎng)絡(luò)分為網(wǎng)和外網(wǎng)兩局部。它是網(wǎng)絡(luò)間信息傳輸?shù)奈ㄒ怀鋈肟?,能夠根?jù)平安策略控制允許、拒絕、監(jiān)測出入網(wǎng)絡(luò)的信息流,且本身具有較強的抗攻擊能力。它是提供信息平安效勞、實現(xiàn)網(wǎng)絡(luò)和信息平安的重要的、根本的平安裝置。在邏輯上,防火墻是一個別離器,一個限制器,也是一個分析器,有效地監(jiān)控了部網(wǎng)和Intern
16、et之間的任何活動,保證了部網(wǎng)絡(luò)的平安。傳統(tǒng)防火墻依賴于網(wǎng)絡(luò)的拓撲限制,它假定網(wǎng)上的所有主機都是可信任的,而外網(wǎng)上的所有主機都是不可信的。當(dāng)網(wǎng)絡(luò)遵照拓撲限制時,這種模型工作得很好;但是,隨著網(wǎng)絡(luò)連接的擴大和新的網(wǎng)絡(luò)應(yīng)用的開展,這種模型暴露出了越來越多的缺陷,面臨著極大的挑戰(zhàn)。主要表現(xiàn)在:對繞過防火墻的攻擊無能為力;如果防火墻的規(guī)那么設(shè)置不當(dāng),網(wǎng)上的所有主機將暴露在外部攻擊的直接威脅之下。由于信任網(wǎng)上的所有主機,而對來自網(wǎng)絡(luò)部的惡意攻擊、未授權(quán)或無意的誤操作“視而不見。是潛在的通信瓶頸和單一故障點。與端到端加密如VPN有沖突。由于依賴于網(wǎng)絡(luò)拓撲,無法支持移動計算。為了克制上述缺陷,產(chǎn)生了“分布式
17、防火墻DistributedFirewall的概念。2.2分布式防火墻多臺基于主機但受集中管理和配置的防火墻組成了分布式防火墻。在分布式防火墻中,平安策略仍然被集中定義,但是在每一個單獨的網(wǎng)絡(luò)端點例如主機、路由器上實施。分布式防火墻中含有三個必需的組件:描述平安策略的語言。平安地發(fā)布策略的機制。應(yīng)用、實施策略的機制。平安策略語言規(guī)定了哪些通信被允許,哪些通信被制止,它應(yīng)該支持多種類型的應(yīng)用,還應(yīng)支持權(quán)利委派和身份鑒別。策略制定后被發(fā)布到網(wǎng)絡(luò)端點上。策略發(fā)布機制應(yīng)該保證策略在傳輸過程中的完整性和真實性。策略發(fā)布有多種方式,可以直接“推到終端系統(tǒng)上,可以由終端按需獲取,也可以以證書的形式提供應(yīng)用戶
18、。策略實施機制位于要保護的主機上,在處理出入的通信之前,它查詢本地策略再做出允許或制止的決定。分布式防火墻克制了傳統(tǒng)防火墻的缺陷,它的優(yōu)勢在于:在網(wǎng)絡(luò)部增加了另一層平安。有效抵御來自部的攻擊。消除網(wǎng)絡(luò)邊界上的通信瓶頸和單一故障點。支持基于加密和認證的網(wǎng)絡(luò)應(yīng)用。與拓撲無關(guān),支持移動計算。分布式防火墻的前兩個組件從本質(zhì)上說是平安授權(quán)問題。傳統(tǒng)的授權(quán)機制包括控制列表ACL和公鑰證書體系X.509、PKI。但是ACL不適用于開放、動態(tài)的分布式環(huán)境,證書體系在授予權(quán)限、信任模式、委托權(quán)利等方面也不能很好地滿足分布式防火墻的要求。信任管理TrustManagement是解決分布式環(huán)境下授權(quán)、信任問題的一種
19、新思想,它提供了適合網(wǎng)絡(luò)應(yīng)用的開放、動態(tài)、分布特性的平安解決框架。KeyNote是信任管理系統(tǒng)的一個實例。它提供了一種簡練、靈活、易擴展和富于表達能力的語言來描述平安策略SecurityPolicy和平安憑證(SecurityCredential)這種可編程的語言易讀、易寫,而且與應(yīng)用無關(guān),使KeyNote很容易與應(yīng)用系統(tǒng)集成。本地策略綁定了公鑰和直接授權(quán);遠程策略經(jīng)DSA、RSA數(shù)字簽名后作為平安憑證,采用了與平安策略一樣的語法。平安憑證支持間接信任關(guān)系和權(quán)利委派,可以在不受信任的網(wǎng)絡(luò)上傳播、發(fā)布。因此,基于KeyNote實現(xiàn)防火墻的前兩個組件是可行而有效的。防火墻中應(yīng)用的KeyNote體系
20、構(gòu)造中效勞器進程根據(jù)外來的連接請求,調(diào)用KeynoteAPI,將三元組(r,C,P提交給信任管理引擎,該引擎使用通用的、與應(yīng)用獨立的一致性驗證算法,這種深度優(yōu)先算法采用遞歸的方式,試圖在本地或者LDAP效勞器上查找到至少一條能夠滿足請求的策略斷言,從而做出策略是否被滿足的判斷結(jié)果,并返回給效勞器進程。實施策略的組件對進出主機的通信都進展了控制,不但可以保護主機應(yīng)對外來的威脅,而且可以防止非法用戶使用該主機網(wǎng)絡(luò),從而實現(xiàn)了雙向過濾的功能。我們在RedhatLinux7.2kernelver:2.4.7上開發(fā)、實現(xiàn)了分布式防火墻。Linux是當(dāng)前比擬流行的網(wǎng)絡(luò)效勞器平臺,并且具有集成的、良好的平安
21、特性和庫,支持IPseGSSL.同時,利用其開放的源代碼,我們可以修改核使之與KeyNote庫libkeynote。何樣是開放源代碼的)很好地協(xié)作。系統(tǒng)由三個組件構(gòu)成:核擴展集、用戶級守候進程和設(shè)備驅(qū)動程序。我們的例主要著眼于對TCP連接的控制。(1)核擴展KernelExtension。用戶使用connect(和accept(這兩個系統(tǒng)調(diào)用來創(chuàng)立向外的連接以及決定到來的連接請求。我們要根據(jù)策略對這兩個系統(tǒng)調(diào)用加以修改,對某些連接進展過濾。策略上下文PolicyContext是包含與某一連接相關(guān)的所有信息的容器,這些信息包括發(fā)起連接的用戶ID,源IP地址、端口號,目的IP地址、端口號,等等。(
22、2)策略驅(qū)動(PolicyDriver)。這里實現(xiàn)了一個偽設(shè)備驅(qū)動/dev/policy作為核中被修改的系統(tǒng)調(diào)用與用戶空間的守候進程直接通信的渠道。我們把該驅(qū)動視為一個文件,它支持一般的文件操作,如open(),close(),read(),write(),ioctl()。(3)策略守候進程PolicyDaemon。這是一個用戶級進程,負責(zé)根據(jù)平安策略和平安憑證作出決策一一允許還是拒絕連接。我們先說明對外來連接accept(進展過濾的工作流程。第一步:首先,操作系統(tǒng)啟動策略守候進程,并調(diào)用open翻開策略驅(qū)動。策略守候進程讀取本地的包含策略和憑證的文件當(dāng)然,也可以定制進程啟動時即從遠程的LDA
23、P效勞器上下載、更新策略和憑證,opened初始化有關(guān)數(shù)據(jù)構(gòu)造。策略守候進程調(diào)用read(),試圖從策略驅(qū)動中讀取連接請求信息。如果驅(qū)動中沒有請求信息,那么守候進程阻塞。第二步:效勞器進程收到了連接請求,首先調(diào)用accept(。)這個被修改正的系統(tǒng)調(diào)用形成策略上下文并提交到策略驅(qū)動中。效勞器進程阻塞。第三步:此時,read()M回請求消息,策略守候進程被喚醒。它讀取該消息,調(diào)用KeyNote的一致性檢查器pliancechecker根據(jù)本地策略和憑證進展分析。如果未找到與此連接相關(guān)的策略,策略守候進程就聯(lián)系遠程的LDAP效勞器查找、下載相應(yīng)的憑證。假設(shè)策略許可即:找到策略或平安憑證,根據(jù)簽名算
24、法驗證無誤,并且符合憑證斷言,那么允許該連接,假設(shè)在本地及遠程效勞器上均沒有找到相應(yīng)的策略或憑證,或者與策略、憑證的斷言不符,那么拒絕之。策略守候進程調(diào)用write(常自己的決策寫入策略驅(qū)動中。第四步:accept()A策略驅(qū)動中讀取策略守候進程的決策,效勞器進程被喚醒。假設(shè)決策允許,accept(返回非負的套接字描述符;否那么返回-1拒絕該連接請求。對系統(tǒng)向外發(fā)起連接的connect(進展過濾的系統(tǒng)流程與此類似。其它兩個系統(tǒng)調(diào)用的功能是,close關(guān)閉偽設(shè)備驅(qū)動,會釋放已分配資源并禁用分布式防火墻;ioctl()用于核與守候進程之間同步時的錯誤處理。第三章LINUX防火墻的幾種常見功能由于每
25、一個用戶的要求和所處的環(huán)境都不一樣,LINUX防火墻會根據(jù)用的設(shè)置實現(xiàn)各種不同的功能。但一般說來,以下三種功能是大多數(shù)用戶最常用到的。3.1包過濾對數(shù)據(jù)包進展過濾可以說是任何防火墻所具備的最根本的功能,而LINUX防火墻本身從某個角度也可以說是一種“包過濾防火墻。在LINUX防火墻中,操作系統(tǒng)核對到來的每一個數(shù)據(jù)包進展檢查,從它們的中提取出所需要的信息,如源IP地址、目的IP地址、源端口號、目的端口號等,再與已建立的防火規(guī)那么逐條進展比擬,并執(zhí)行所匹配規(guī)那么的策略,或執(zhí)行默認策略,這個過程在圖1中已經(jīng)形象的表現(xiàn)出來。值得注意的是,在制定防火墻過濾規(guī)那么時通常有兩個根本的策略方法可供選擇:一個是
26、默認允許一切,即在承受所有數(shù)據(jù)包的根底上明確地制止那些特殊的、不希望收到的數(shù)據(jù)包;還有一個策略就是默認制止一切,即首先制止所有的數(shù)據(jù)包通過,然后再根據(jù)所希望提供的效勞去一項項允許需要的數(shù)據(jù)包通過。一般說來,前者使啟動和運行防火墻變得更加容易,但卻更容易為自己留下平安隱患。通過在防火墻外部接口處對進來的數(shù)據(jù)包進展過濾,可以有效地阻止絕大多數(shù)有意或無意地網(wǎng)絡(luò)攻擊,同時,對發(fā)出的數(shù)據(jù)包進展限制,可以明確地指定部網(wǎng)中哪些主機可以互聯(lián)網(wǎng),哪些主機只能享用哪些效勞或登陸哪些站點,從而實現(xiàn)對部主機的管理??梢哉f,在對一些小型部局域網(wǎng)進展平安保護和網(wǎng)絡(luò)管理時,包過濾確實是一種簡單而有效的手段。3.2代理LIN
27、UX防火墻的代理功能是通過安裝相應(yīng)的代理軟件實現(xiàn)的。它使那些不具備公共IP的部主機也能互聯(lián)網(wǎng),并且很好地屏蔽了部網(wǎng),從而有效保障了部主機的平安。為了清楚地描述這一重要功能的實現(xiàn)過程,特假設(shè)以下典型情況:steven為部網(wǎng)中一臺IP是勺主機,其上安裝有IE5.0瀏覽器,并配置為使用防火墻主機8080作為代理。firewall就是我們討論的LINUX防火墻,有兩個網(wǎng)絡(luò)接口,分別是部接口eth1=192.168.04外部接口eth0=在日rewall主機上安裝有Web代理軟件“squid,并配置其代理端口為808Q為263的Web效勞器,IP為31Web效勞端口80。如果要從steven主機263的
28、主頁,其具體的通信過程所示:IE通過steven的非專用端口1110在102465535之間隨機生)與防火墻的代理端口8080建立連接,請求”頁面。squid代理接收到請求后,先查找域名”,得到地址3t(4)步驟圖中省略),然后通過防火墻端口1050與該地址的80端口建立一個連接,請求頁面。.263.ne瞰勞器接到請求后將頁面?zhèn)鹘osquid代理。防火墻代理得到頁面后,把數(shù)據(jù)復(fù)制到第一步中所建立的連接上,IE得到數(shù)據(jù)并將“頁面顯示出來。通過以上描述,可以清楚地了解到部主機、LINUX代理防火墻以及外部效勞器之間是如何進展數(shù)據(jù)傳輸?shù)?。steven機發(fā)來的數(shù)據(jù)包經(jīng)由部接口eth1進來后,首先承受IN
29、PUT鏈的“檢查:系統(tǒng)核從中提取出信息,與INPUT鏈中所有適用于eth1接口的過濾規(guī)那么逐個比擬,直到匹配通過。之后,該數(shù)據(jù)包被轉(zhuǎn)發(fā)給本地的代理進程。同樣,代理進程發(fā)送給遠程Web效勞器的數(shù)據(jù)包在從防火墻外部接口發(fā)送出去之前,也要經(jīng)過OUTPUT鏈的“檢查,即與OUTPUT鏈中所有適用于eth0接口的規(guī)那么一一比擬。返回的過程正好與上述相反,在此就不再贅述。為了實現(xiàn)以上過程,我們必須在防火墻規(guī)那么腳本中添加以下規(guī)那么:ipchains-Ainput-iethl-ptcps1110d8080-jACCEPTipchains-Aoutput-ieth0-ptcp-s1050d3180-jACCE
30、PTipchains-Ainput-ieth0-ptcp!-ys3180d1050-jACCEPTipchains-Aoutput-ieth1-ptcp!-y-s8080d1110-jACCEPT從上文對代理功能的原理和實現(xiàn)的表達中,我們可以看出,LINUX防火墻實際上扮演了一個“代理網(wǎng)關(guān)的角色。部主機和遠程效勞器分別都只與防火墻進展連接,而真正的“起點和“終點之間卻毫無聯(lián)系。IP偽裝IP偽裝IPMasquerade是LINUX操作系統(tǒng)自帶的又一個重要功能。通過在系統(tǒng)核增添相應(yīng)的偽裝模塊,核可以自動地對經(jīng)過的數(shù)據(jù)包進展“偽裝,即修改中的源目的IP信息,以使外部主機誤認為該包是由防火墻主機發(fā)出來
31、的。這樣做,可以有效解決使用部保存IP的主機不能互聯(lián)網(wǎng)的問題,同時屏蔽了部局域網(wǎng)。這一點,與前面所講的代理所到達的目的是很類似的。steven主機的IE進程直接與遠程的Web效勞器建立一個連接。當(dāng)數(shù)據(jù)包到達防火墻的部接口后,照樣要例行INPUT鏈的檢查。之后,數(shù)據(jù)包被送到FORWARD鏈,承受系統(tǒng)核的“偽裝處理,即將中的源IP地址改為防火墻外部接口eth0的地址,并在系統(tǒng)中做下記錄,以便一會兒對其回應(yīng)包的目的IP進展“恢復(fù)。這樣,當(dāng)該數(shù)據(jù)包順利從外部接口出來時,其中源IP已被改為202.117.120.。遠程效勞器會認為這是從防火墻的合法地址發(fā)來的,從而對其做1出響應(yīng)。當(dāng)遠程效勞器返回的回應(yīng)包
32、到達防火墻時,先經(jīng)過INPUT鏈,然后會根據(jù)系統(tǒng)關(guān)于IP偽裝的記錄對數(shù)據(jù)包的目的IP進展恢復(fù),即將改為最后再經(jīng)過OUTPUT鏈返回至ijsteven主機。為了實現(xiàn)這個過程,我們必須在防火墻規(guī)那么腳本中添加以下規(guī)那么:ipchains-Ainput-iethl-ptcp-s1110d3180-jACCEPTipchains-Aoutput-ieth0-ptcps1050-d3180-jACCEPTipchains-Ainput-ieth0-ptcp!-y-s3180-d1050-jACCEPTipchains-Aoutput-ieth1-ptcp!-ys3180-d1110-jACCEPTipc
33、hains-Aforward-ieth0s1110-d3180-jMASQ與代理功能比擬而言,IP偽裝不需要安裝相應(yīng)的代理軟件,數(shù)據(jù)包的偽裝對用戶來說都是“透明的,并且整個過程都是在IP層實現(xiàn),因此實現(xiàn)速度較快。缺點是不能對經(jīng)過的數(shù)據(jù)包作詳細的記錄。但一般說來,LINUX防火墻在實際的設(shè)置中常用到的三種功能。用戶在創(chuàng)立自己的防火墻規(guī)那么腳本時,可以根據(jù)自己的需要將這三種功能組合起來實現(xiàn)。一個LINUX防火墻實例以下是我前一段時間為某辦公室搭建的LINUX防火墻的實際配置,給出以供參考。有兩個局域網(wǎng),LAN1地址:5/48為公共網(wǎng)絡(luò)IP,LAN2地址為/255.255.255.為部保存地址。0,
34、LINUX防火墻有兩個部接口:0接LAN1;接LAN2?,F(xiàn)對防火墻進展配置,使LAN2的主機通過IP偽裝互聯(lián)網(wǎng),但只允許使用外部Web代理效勞器4勺1252端口。LAN1中的主機被限制使用幾種常用的互聯(lián)網(wǎng)效勞DNS、SMTP、POP3、HTTP和FTP。下面就是創(chuàng)立的防火墻規(guī)那么腳本:#/etc/rc.d/rc.firewall#!/bin/sheth0-External_interfaceeth1-LAN1_interfaceeth2-LAN2_interfaceechoStartingfirewalling.Flushanyexistingrulesfromallchainsipchain
35、s-F#Setthedefaultpolicytodenyipchains-PinputDENYipchains-PoutputREJECTipchains-PforwardREJECT#Enabletrafficontheloopbackinterfaceipchains-Ainput-ilo-jACCEPTipchains-Aoutput-ilo-jACCEPT#Enablethetrafficontheeth1ipchains-Ainput-ieth1-jACCEPTipchains-Aoutput-ieth1-jACCEPT#thetrafficontheeth2onlyenablli
36、ngusingtheWEBPROXYipchains-Ainput-ieth2-ptcp-s/241024:65535-d41252-jACCEPTipchains-Aoutput-ieth2-ptcp!-y-s41252-d/241024:65535-jACCEPT#Forwardingrulesipchains-Aforward-ieth0-s4/29-jACCEPTipchains-Aforward-ieth0-s/24-jMASQipchains-Aforward-ieth1-d4/29-jACCEPT#EnableoutgoingthepacketsfromLANontheExter
37、nal_Interfaceipchains-Aoutput-ieth0-jACCEPT#EnableiningsomeICMPmessagesoneth1.Dest_Unreachable,Service_Unavailableipchains-Ainput-ieth0-picmp-sany/03-d4/29-jACCEPT2.Time_Exceededipchains-Ainput-ieth0-picmp-sany/011-d4/29-jACCEPT3.Allowoutgoingpingstoanywhereipchains-Ainput-ieth0-picmp-sany/00-d4/29-
38、jACCEPT#EnableProxyof4:1252ipchains-Ainput-ieth0-ptcp!-y-s41252-jACCEPT#DNS(53)(DNS:)clientmodesipchains-Ainput-ieth0-pudp-s53-d4/291024:65535-jACCEPTipchains-Ainput-ieth0-ptcp!-y-s53-d4/291024:65535-jACCEPT#SMTP(25)EnablesendingmailthrougharemoteSMTPgatewayipchains-Ainput-ieth0-ptcp!-y-sany/025-d4/
39、291024:65535-jACCEPT#POP(110)-EnablereceivingmailfromaremotePOPserveripchains-Ainput-ieth0-ptcp!-y-sany/0110-d4/291024:65535-jACCEPT#HTTP(80)-EnableaccessingremoteWEBsitesasaclientipchains-Ainput-ieth0-ptcp!-y-sany/080-d4/291024:65535-jACCEPT#FTP(20,21)-EnableaccessingremoteFTPserversipchains-Ainput
40、-ieth0-ptcp!-y-sany/021-d4/291024:65535-jACCEPTipchains-Ainput-ieth0-ptcp-sany/020-d4/291024:65535-jACCEPTipchains-Ainput-ieth0-ptcp!-y-sany/01024:65535-d4/291024:65535-jACCEPTechodoneexit0第四章防火墻系統(tǒng)4.1防火墻系統(tǒng)總體設(shè)計linux系統(tǒng)下實現(xiàn)軟件防火墻的設(shè)計與應(yīng)用,實質(zhì)上就是基于主機的網(wǎng)絡(luò)平安解決方案。因此,我們完全可以選擇適宜的軟硬件平臺和相應(yīng)的防火墻設(shè)計原理,自己開發(fā)出一套能夠滿足要求的防火墻系統(tǒng)
41、。歸納起來這里要實現(xiàn)的防火墻需要滿足兩大要求:第一,必須能夠?qū)χ鳈C提供平安保護,即對主機與局域網(wǎng)以外的主機進展數(shù)據(jù)傳輸時實施平安保護;第二,必須能夠提供良好的人機接口界面,具有容易操作、容易管理的優(yōu)點??紤]到現(xiàn)有硬件設(shè)備的限制,在保證滿足實驗要求的環(huán)境下盡可能地簡化了實驗環(huán)境。因為該防火墻系統(tǒng)是基于主機設(shè)計的,故只需要一個聯(lián)網(wǎng)的主機即可進展實驗。該系統(tǒng)是在linux環(huán)境下用c語言實現(xiàn)包過濾型軟件防火墻的設(shè)計與應(yīng)用,采用kylix開發(fā)工具進展界面設(shè)計和數(shù)據(jù)庫連接?;趌inux的個人防火墻系統(tǒng)主要具有以下功能:1全程動態(tài)包過濾本防火墻要在linux下實現(xiàn)全程動態(tài)包過濾功能,通過分析數(shù)據(jù)包的地址、
42、協(xié)議、端口對任何網(wǎng)絡(luò)連接當(dāng)前狀態(tài)進展控制,從而提高系統(tǒng)的性能和平安性。2提供日志審計本防火墻配備了日志記錄系統(tǒng)和查詢工具,用于記錄系統(tǒng)管理、系統(tǒng)及針對平安策略的網(wǎng)絡(luò)情況。3防火墻數(shù)據(jù)庫的備份本防火墻制作防火墻過濾數(shù)據(jù)庫,并且管理員可以能動地對該數(shù)據(jù)庫進展設(shè)置。第五章基于linux的數(shù)據(jù)包捕獲模塊基于linux的數(shù)據(jù)包捕獲模塊構(gòu)造數(shù)據(jù)包捕獲模塊用于監(jiān)視和驗證網(wǎng)絡(luò)流量情況,它可以截取或者閱讀網(wǎng)絡(luò)上OSI協(xié)議模型中各個協(xié)議層次上的數(shù)據(jù)包。本文所設(shè)計的數(shù)據(jù)包捕獲程序可以捕獲通過原始套接口(Socket為原始數(shù)據(jù)包(RawPacket)當(dāng)一個數(shù)據(jù)包到達網(wǎng)絡(luò)接口時,數(shù)據(jù)包捕獲程序就直接從緩存區(qū)讀取捕獲的數(shù)
43、據(jù)包,以供數(shù)據(jù)分析和處理時調(diào)用。數(shù)據(jù)捕獲模塊的構(gòu)造如圖1所示:數(shù)據(jù)捕獲圖表1基于linux的數(shù)據(jù)包捕獲模塊原理分析1網(wǎng)卡設(shè)置原理在一個實際的系統(tǒng)中,數(shù)據(jù)的收發(fā)是由網(wǎng)卡來完成的,網(wǎng)卡接收到傳輸來的數(shù)據(jù),網(wǎng)卡的程序接收數(shù)據(jù)幀的目的mac地址,根據(jù)計算機上的網(wǎng)卡驅(qū)動程序設(shè)置的接收模式判斷該不該接收,認為不該接收就丟掉不管。而對于網(wǎng)卡來說一般有四種接收模式:播送模式組播模式、直接方式、混雜模式。數(shù)據(jù)包捕獲程序首先使網(wǎng)絡(luò)接口(網(wǎng)卡)處于混雜狀態(tài),從而可截獲網(wǎng)絡(luò)上的容,并且通過相應(yīng)的軟件處理,可以實時分析這些數(shù)據(jù)的容,為數(shù)據(jù)包過濾作準備。2根本函數(shù)說明本文中在linux主機上用c語言編寫數(shù)據(jù)包捕獲程序,所
44、編寫的程序中用到很多l(xiāng)inux中的預(yù)定義函數(shù),在此節(jié)將對這些根本函數(shù)的功能和使用特點進展說明。1ioctl函數(shù)定義ioctl()函數(shù)非常龐雜,它可以控制各種文件的屬性。它用于控制特殊文件的底層設(shè)備參數(shù),這些特殊文件通常是指終端、套接字和接口。ioctl函數(shù)原型為:intioctl(inthandle,intcmd,int*argdx,intargcx;)2socket函數(shù)定義常用的socket類型有兩種:流式socket(sock_stream)數(shù)據(jù)包式socket(sock_dgra流式是一種面向連接的socket,針對面向連接的tcp效勞應(yīng)用;數(shù)據(jù)報式socket是一種無連接的socket
45、,針對無連接的udp效勞應(yīng)用。socket函數(shù)原型為:intsocket(intdomain,inttype,intprotocol)3recvfrom()函數(shù)定義用recvfrom()函數(shù)來實現(xiàn)接收數(shù)據(jù)包,recvfrom()是具備“阻塞式i/o特性的函數(shù),能夠在沒有數(shù)據(jù)包到達的情況下暫時掛起等待,直至接收到數(shù)據(jù)包后,再激活轉(zhuǎn)入下步處理。recvfrom()函數(shù)的原型為:intrecvfrom(sockets,charfar*buf,intlen,intflags,structsockaddrfar*from,int*fromlen;)本函數(shù)從已連接套接口上接收數(shù)據(jù),并捕獲數(shù)據(jù)發(fā)送源的地址。
46、對于sock_stream類型的套接口,最多可以接收緩沖區(qū)大小個數(shù)據(jù)。如果套接口被設(shè)置為線接收帶外數(shù)據(jù)(選項為so_oobinline),且有帶外數(shù)據(jù)未讀入,那么返回帶外數(shù)據(jù)。應(yīng)用程序可通過調(diào)用ioctlsocket()白socatmark命令來確定是否有帶外數(shù)據(jù)待讀入。對于sock_streami共型套接口,忽略from和fromlen參數(shù)。4一些“字節(jié)順序轉(zhuǎn)換函數(shù)因為網(wǎng)絡(luò)和主機采用的存儲字節(jié)時存順序安排方式的差異,就存在“字節(jié)順序的問題。在網(wǎng)絡(luò)環(huán)境下存儲時,高位字節(jié)存放在存的起始位置,而低字節(jié)那么存放在較高的位置。主機形式的存放順序恰好相反,低位字節(jié)存放在存的起始位置。這就需要以下相應(yīng)的字
47、節(jié)順序轉(zhuǎn)換函數(shù):inet_ntoa():將32位的網(wǎng)絡(luò)二進制數(shù)值轉(zhuǎn)換為可讀十進制形式的帶點分割符的 ip 地址。inet_addr(:) 將帶有分割符的ip地址轉(zhuǎn)換為32位的unsignedlong的格式。ntohs():將網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換為32位的主機字節(jié)順序。ntohl():將網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換成16位的主機字節(jié)順序。htonl():將32位u_long的值由主機字節(jié)順序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)順序。htons():將16位u_long的值由主機字節(jié)順序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)順序。本文設(shè)計的數(shù)據(jù)捕獲程序需要使用sock_packetS備,sock_packet只在基于linux的操作系統(tǒng)中有效定義。為此,美國
48、洛侖茲伯克利國家實驗室編寫了專用于數(shù)據(jù)包截獲的api函數(shù)庫“l(fā)ibpcap。該函數(shù)的設(shè)計目標是統(tǒng)一不同系統(tǒng)上所提供的用于數(shù)據(jù)包截獲的不同類型接口,并使得類似的高層應(yīng)用程序的編寫和移植變得簡單有效,不再需要對每一個應(yīng)用都使用不同的依賴于具體系統(tǒng)的數(shù)據(jù)包截獲模塊。第六章數(shù)據(jù)包捕獲模塊設(shè)計數(shù)據(jù)包捕獲模塊設(shè)計流程我們先說明對外來連接accept(進展過濾的工作流程。第一步:首先,操作系統(tǒng)啟動策略守候進程,并調(diào)用open翻開策略驅(qū)動。策略守候進程讀取本地的包含策略和憑證的文件當(dāng)然,也可以定制進程啟動時即從遠程的LDAP效勞器上下載、更新策略和憑證,opened初始化有關(guān)數(shù)據(jù)構(gòu)造。策略守候進程調(diào)用read
49、(),試圖從策略驅(qū)動中讀取連接請求信息。如果驅(qū)動中沒有請求信息,那么守候進程阻塞。第二步:效勞器進程收到了連接請求,首先調(diào)用accept。這個被修改正的系統(tǒng)調(diào)用形成策略上下文并提交到策略驅(qū)動中。效勞器進程阻塞。第三步:此時,read(M回請求消息,策略守候進程被喚醒。它讀取該消息,調(diào)用KeyNote的一致性檢查器pliancecheckeT根據(jù)本地策略和憑證進展分析。如果未找到與此連接相關(guān)的策略,策略守候進程就聯(lián)系遠程的LDAP效勞器查找、下載相應(yīng)的憑證。假設(shè)策略許可即:找到策略或平安憑證,根據(jù)簽名算法驗證無誤,并且符合憑證斷言,那么允許該連接,假設(shè)在本地及遠程效勞器上均沒有找到相應(yīng)的策略或憑
50、證,或者與策略、憑證的斷言不符,那么拒絕之。策略守候進程調(diào)用write()a自己的決策寫入策略驅(qū)動中。第四步:acceptor策略驅(qū)動中讀取策略守候進程的決策,效勞器進程被喚醒。假設(shè)決策允許,accept(返回非負的套接字描述符;否那么返回-1拒絕該連接請求。對系統(tǒng)向外發(fā)起連接的connect(進展過濾的系統(tǒng)流程與此類似。其它兩個系統(tǒng)調(diào)用的功能是,close關(guān)閉偽設(shè)備驅(qū)動,會釋放已分配資源并禁用分布式防火墻;ioctl()用于核與守候進程之間同步時的錯誤處理。數(shù)據(jù)包捕獲模塊實現(xiàn)該數(shù)據(jù)包捕獲程序用c語言來編寫,程序中用到很多l(xiāng)inux網(wǎng)絡(luò)編程中的函數(shù)。1設(shè)置網(wǎng)絡(luò)接口為混雜模式網(wǎng)絡(luò)接口的混雜模式使
51、得一個網(wǎng)絡(luò)接口設(shè)備從只能讀取目標地址為6字節(jié)mac地址的數(shù)據(jù)包,變?yōu)榭勺x取網(wǎng)絡(luò)播送媒體中的所有數(shù)據(jù)包。該局部通過兩次ioctl函數(shù)調(diào)用實現(xiàn):ioctl(sock,siocgifflags,&ifr)ifr.ifr_flags|=iff_promiscioctl(sock,siocgifflags,&ifr)第一次的ioctl函數(shù)調(diào)用,用來截獲ifr(structifreq)構(gòu)造中所含接口名稱所指接口的標記。第一個參數(shù)是翻開的原始套接字描述符“sock,第二個參數(shù)是所要執(zhí)行的請求操作。第三個參數(shù)是接口請求數(shù)據(jù)構(gòu)造的地址指針,該構(gòu)造中包含了所以進展請求操作的接口名稱值o我們通過將混合標記(iff_
52、promisc)應(yīng)用到接口請求構(gòu)造的標記位變量中來改變接口標記位。操作符“|=將混合標記符與原有的接口標記進展“或操作來設(shè)置新的接口標記。獲得新的接口標記后,將其設(shè)置到實際接口中。第二次的ioctl調(diào)用,將接口設(shè)備設(shè)置為混合模式。正如第一個ioctl調(diào)用是獲得網(wǎng)絡(luò)接口的標記,這次調(diào)用是設(shè)置ifr構(gòu)造中修改正的新標記寫到物理接口上。2翻開socket設(shè)備用socket函數(shù)來翻開socket設(shè)備。sock=socket(af_packet,sock_raw,htons(eth_p_all)domOW用af_packetjg夠既接收鏈路層也接收網(wǎng)絡(luò)層的數(shù)據(jù)包。3接收數(shù)據(jù)使用recvfrom()函數(shù)來
53、實現(xiàn)接收數(shù)據(jù)包:recvfrom(sock,(char*)buf,sizeof(buf),0,(structsockaddr*)&addr,&leni是從翻開的網(wǎng)絡(luò)插座socket讀取數(shù)據(jù)包的地方,但要注意,addr構(gòu)造有一個強制類型轉(zhuǎn)換,以適應(yīng)recvfrom()函數(shù)的語法要求,recvfrom()函數(shù)在成功讀取的情況下返回讀取的字節(jié)數(shù),否那么返回-1。4判斷指針該數(shù)據(jù)包捕獲模塊可以接收到的數(shù)據(jù)包都是原始數(shù)據(jù)包,它們的格式一般先是以太網(wǎng)數(shù)據(jù)幀的頭部,接著是arp或者ip數(shù)據(jù)包的頭部。ip數(shù)據(jù)包后緊跟著tcp或udp、icmp的頭部,最后才是真正要傳輸?shù)臄?shù)據(jù)。于是,在拆分ip數(shù)據(jù)包時,先提取以太網(wǎng)數(shù)據(jù)幀的頭部,再提取ip數(shù)據(jù)包的頭部,然后分析tcp或udp、icmp數(shù)據(jù)包的頭部。最后,從數(shù)據(jù)包提取出需要的數(shù)據(jù)。第七章程
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教新課標八年級歷史下冊月考試卷含答案
- 2025年人教版PEP選擇性必修3化學(xué)上冊月考試卷含答案
- 2025年新世紀版高二歷史下冊月考試卷
- 2025年浙教版八年級地理上冊月考試卷含答案
- 二零二五年度文化展覽館導(dǎo)覽員勞動合同模板4篇
- 二零二五年度環(huán)保設(shè)備銷售合同約定乙方甲方售后服務(wù)賠償細則4篇
- 二零二五年度廚房設(shè)備智能化改造升級合同12篇
- 二零二五年度農(nóng)產(chǎn)品深加工訂單加工合作合同模板3篇
- 2025年度農(nóng)業(yè)科技創(chuàng)新項目合作開發(fā)合同4篇
- 個性化離婚合同樣本下載(2024年修訂版)版B版
- 拉薩市2025屆高三第一次聯(lián)考(一模)語文試卷(含答案解析)
- 《保密法》培訓(xùn)課件
- 回收二手機免責(zé)協(xié)議書模板
- (正式版)JC∕T 60023-2024 石膏條板應(yīng)用技術(shù)規(guī)程
- 人教版高中生物學(xué)新舊教材知識差異盤點
- (權(quán)變)領(lǐng)導(dǎo)行為理論
- 2024屆上海市浦東新區(qū)高三二模英語卷
- 2024年智慧工地相關(guān)知識考試試題及答案
- GB/T 8005.2-2011鋁及鋁合金術(shù)語第2部分:化學(xué)分析
- 不動產(chǎn)登記實務(wù)培訓(xùn)教程課件
- 不銹鋼制作合同范本(3篇)
評論
0/150
提交評論