基于旁路的Web訪問監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第1頁(yè)
基于旁路的Web訪問監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第2頁(yè)
基于旁路的Web訪問監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第3頁(yè)
基于旁路的Web訪問監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第4頁(yè)
基于旁路的Web訪問監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、論文題目:基于旁路的web訪問監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名:指導(dǎo)教師:摘 要在實(shí)驗(yàn)室或者辦公室,管理員總是希望學(xué)生或員工可以專心自己的任務(wù),而不去瀏覽觀看與學(xué)習(xí)或工作無(wú)關(guān)的網(wǎng)頁(yè)或網(wǎng)站。因而,當(dāng)學(xué)生或員工輸入無(wú)關(guān)網(wǎng)址時(shí),管理員的服務(wù)器可以搶在其打開網(wǎng)頁(yè)前與其進(jìn)行“握手”并發(fā)送管理員提前準(zhǔn)備好的頁(yè)面,從而阻止了其正常訪問,提高了學(xué)習(xí)工作效率。首先介紹了不良網(wǎng)站對(duì)于正常網(wǎng)絡(luò)的入侵以及危害,通過把網(wǎng)卡設(shè)置為混雜模式實(shí)現(xiàn)了捕獲數(shù)據(jù)包的操作,從而有效的對(duì)于整個(gè)網(wǎng)絡(luò)進(jìn)行監(jiān)聽,通過ip包過濾模塊把http中除get包和post包過濾掉,提取出url地址,然后與事先準(zhǔn)備的數(shù)據(jù)庫(kù)黑名單網(wǎng)址進(jìn)行匹配,來判斷出哪些是

2、對(duì)工作或?qū)W習(xí)無(wú)關(guān)的網(wǎng)址,進(jìn)而攔截其訪問,達(dá)到了凈化網(wǎng)絡(luò)環(huán)境的目的。最后,針對(duì)該系統(tǒng)實(shí)施了詳細(xì)的性能和功能的測(cè)試,使功能完整,且系統(tǒng)的性能有一定的優(yōu)化。關(guān) 鍵 詞:混雜模式 捕獲數(shù)據(jù)包 網(wǎng)頁(yè)title: base on the bypass web access montitoring system deisign and implementationname: supervisor: abstractin the laboratory or office, administrators or employees can always expect students to concentrate

3、 on their own tasks, rather than to browse watch and study or work unrelated pages or sites. thus, when students or staff independent of the input url, the server administrator can grab it on the page in front of their handshake prepared in advance and send the administrator page, thus preventing it

4、s normal access, improve the learning efficiency.first introduced the bad sites for normal network intrusion and damage, the card is set by the operator to achieve a packet capture to promiscuous mode, so as to effectively monitor the entire network through ip packet filtering module in addition to

5、the http get and post package packet filter to extract the url address, and then prepared a database with url blacklist matching to determine which is unrelated to work or study site, thus blocking its access to the network environment to achieve the purpose of purification.finally, a detailed embod

6、iment of the system for testing the performance and functionality, so that the functional integrity and performance of the system with some optimization.key words: library management system; cache; efficient1緒論11.1課題背景61.2國(guó)內(nèi)外發(fā)展現(xiàn)狀61.3本文主要任務(wù)81.4論文的組織結(jié)構(gòu)82.相關(guān)知識(shí)理論92.1 osi參考模型92.2 tcp/ip體系結(jié)構(gòu)102.3 osi與tcp/

7、ip的比較112.4 http協(xié)議122.5 ip協(xié)議132.6數(shù)據(jù)捕獲函數(shù)的一些函數(shù)152.7本章小結(jié)163.需求分析183.1可行性分析183.1.1技術(shù)可行性183.1.2經(jīng)濟(jì)可行性183.1.3社會(huì)可行性193.2系統(tǒng)需求分析193.2.1 功能需求193.2.2 性能需求233.2.3運(yùn)行需求243.2.4安全需求分析244系統(tǒng)設(shè)計(jì)264.1網(wǎng)絡(luò)監(jiān)聽模塊264.2攔截策略控制模塊274.3 ip包分析模塊284.3.1ip包過濾模塊284.3.2網(wǎng)址匹配模塊314.4網(wǎng)頁(yè)攔截模塊324.5數(shù)據(jù)更新模塊344.6消息提示模塊355.系統(tǒng)測(cè)試375.1系統(tǒng)開發(fā)環(huán)境375.2系統(tǒng)測(cè)試376

8、.總結(jié)與展望406.1總結(jié)406.2展望411緒論1.1課題背景隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展,給人們的工作和生活帶來了極大的便利。1970年之后,網(wǎng)絡(luò)環(huán)境日益惡化,網(wǎng)絡(luò)信息安全第一次作為一個(gè)獨(dú)立的學(xué)科來進(jìn)行研究,但是當(dāng)時(shí)側(cè)重的是研究針對(duì)類似于訪問控制安全策略、訪問數(shù)據(jù)加密特定信息系統(tǒng)的一些控制手段。1990年之后,網(wǎng)絡(luò)病毒、黑客攻擊事件泛濫,網(wǎng)絡(luò)非法入侵問題已經(jīng)在全球范圍內(nèi)泛濫,并且呈現(xiàn)出越演越烈的趨勢(shì)。雖然網(wǎng)絡(luò)非法入侵問題給各個(gè)企業(yè)帶來了不同程度的損害,但是計(jì)算機(jī)網(wǎng)絡(luò)搭建了一個(gè)互相溝通學(xué)習(xí)的環(huán)境,包括了各個(gè)學(xué)科和不同領(lǐng)域的知識(shí),能夠很大的提高員工的工作學(xué)習(xí)效率,因此在學(xué)習(xí)工作中應(yīng)用計(jì)算機(jī)網(wǎng)絡(luò)得到

9、了支持。由于網(wǎng)絡(luò)帶來了無(wú)可比擬的方便,許多員工不能正確使用網(wǎng)絡(luò),這樣不能給企業(yè)帶來利益。并且,網(wǎng)絡(luò)除了提供學(xué)習(xí)交流的資料之外,還有很多不利于社會(huì)和個(gè)人正常發(fā)展的內(nèi)容,尤其是對(duì)缺少基本判別能力的青少年的危害不小。所以,這篇論文綜合了網(wǎng)址匹配、過濾技術(shù)和網(wǎng)絡(luò)監(jiān)測(cè)技術(shù),提出了一個(gè)通過web訪問監(jiān)測(cè)途徑,當(dāng)學(xué)生或員工輸入無(wú)關(guān)網(wǎng)址時(shí),管理員的服務(wù)器可以搶在其打開網(wǎng)頁(yè)前與其進(jìn)行“握手”并發(fā)送管理員提前準(zhǔn)備好的頁(yè)面,從而阻止了其正常訪問,提高了學(xué)習(xí)工作效率。通過該方法設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)用戶上網(wǎng)行為監(jiān)控系統(tǒng),該系統(tǒng)不僅能夠?yàn)閱T工過濾掉不健康的網(wǎng)址,還能夠記錄員工上網(wǎng)記錄,及時(shí)察覺并攔截他們的行為,一是能夠幫助員

10、工過濾掉不健康的信息,二是可以監(jiān)視員工的網(wǎng)絡(luò)上的行為動(dòng)機(jī),降低受到攻擊幾率,從而保證工作環(huán)境的安全性。1.2國(guó)內(nèi)外發(fā)展現(xiàn)狀阻止非健康網(wǎng)頁(yè)一般有兩種方法:一是殺毒軟件,另一個(gè)是防火墻。殺毒軟件既可以在本機(jī)上裝載也可以在本機(jī)上卸載,由于這種方法相對(duì)來說比較經(jīng)濟(jì)實(shí)惠,多適用于家長(zhǎng)對(duì)于不太懂計(jì)算機(jī)技術(shù)的孩子防止他們?yōu)g覽不健康的網(wǎng)頁(yè),對(duì)于年齡稍大并且有一部分計(jì)算機(jī)基礎(chǔ)的孩子,殺毒軟件這種方法基本沒有什么用,由于每臺(tái)設(shè)備都要安裝一遍,所以這種方法管理起來有些不方便。 20世紀(jì)90年代,江民殺毒軟件遙遙領(lǐng)先于其他殺毒軟件。到了21世紀(jì)初,江民,瑞星,金山毒霸三足鼎立,再到現(xiàn)在的360,可牛,東方微點(diǎn)等殺毒軟

11、件的擠入,殺毒軟件的發(fā)展呈現(xiàn)多元化的趨勢(shì)。一種方法是防火墻,他部署在受保護(hù)網(wǎng)絡(luò)的邊界,通過一些管理者設(shè)置的原則檢查通過網(wǎng)絡(luò)的流量,來決定是否允許還是拒絕訪問這個(gè)網(wǎng)頁(yè)。這種方法只需安裝在服務(wù)器上,所以管理起來比較方便,但是當(dāng)上網(wǎng)人數(shù)過多的時(shí)候,導(dǎo)致網(wǎng)絡(luò)延遲,成為網(wǎng)絡(luò)的瓶頸。在防止非法網(wǎng)絡(luò)入侵的領(lǐng)域,有兩個(gè)人將永載史冊(cè)。 一是俄羅斯的eugene kaspersky。從1989年,eugene kaspersky進(jìn)行有關(guān)計(jì)算機(jī)病毒現(xiàn)象的研究。20世紀(jì)90年代,他在莫斯科一個(gè)大型計(jì)算機(jī)公司kami的信息技術(shù)中心,在助手的幫助下研發(fā)出了arginine vasopessin反病毒編程程序。kasper

12、sky lab于1997年成立,eugene kaspersky是創(chuàng)始人之一。2000年11月,avp更名為kaspersky anti-virus。eugene kaspersky是caro的成員,該協(xié)會(huì)包括了國(guó)際頂級(jí)的反病毒大師。avp的反病毒引擎和病毒庫(kù),在業(yè)界有很好的殺毒口碑。 另一位是doctor soloman。他創(chuàng)建的doctor soloman,這個(gè)公司曾經(jīng)是歐洲最領(lǐng)先的殺毒軟件公司,接著就被mcafee收購(gòu),成為安全托拉斯nai的一部分。在早些時(shí)候,mcafee與歐洲的同行發(fā)生了不太愉快的合作,但是由于自身殺毒引擎并不具備自己的特色,于是mcafee停用之前的殺毒引擎,轉(zhuǎn)而使

13、用兼并來自于doctor soloman產(chǎn)品的殺毒引擎。2009年6月,微軟開始正式舉行了microsoft security essentials(簡(jiǎn)稱mse)新版殺毒軟件的測(cè)試。此次測(cè)試版僅對(duì)windows xp、vista及windows 7等微軟旗下的三大終端microsoft操作系統(tǒng)提供支持,首批測(cè)試版將僅支持english、brazilian、portuguese語(yǔ)等三種語(yǔ)言種類。本次微軟向用戶提供免費(fèi)的殺毒軟件,是因?yàn)槲④泴?shí)行市場(chǎng)擴(kuò)張和正版推動(dòng)策略。這個(gè)舉動(dòng)可能帶來殺毒軟件市場(chǎng)的震動(dòng),對(duì)于其他公司的殺毒軟件的研發(fā)產(chǎn)生巨大影響。本文所做的彌補(bǔ)了前兩種方法的缺陷,通過監(jiān)聽網(wǎng)絡(luò)上的數(shù)據(jù)

14、,從而分析出哪些網(wǎng)址是不允許被訪問的,攔截這個(gè)網(wǎng)頁(yè)。這個(gè)方法的優(yōu)點(diǎn)是管理起來方便,不會(huì)導(dǎo)致網(wǎng)絡(luò)的延遲。1.3本文主要任務(wù)本文的主要任務(wù)是維護(hù)一個(gè)良好、綠色的網(wǎng)絡(luò)學(xué)習(xí)辦公環(huán)境,面對(duì)日益猖獗的網(wǎng)絡(luò)攻擊以及非法網(wǎng)站的入侵,采取web訪問監(jiān)控系統(tǒng)予以攔截。通過網(wǎng)絡(luò)監(jiān)聽模塊、ip包過濾、網(wǎng)址匹配模塊等主要模塊實(shí)現(xiàn)其功能,然后進(jìn)行了詳細(xì)的設(shè)計(jì)部分,最后是測(cè)試階段。1.4論文的組織結(jié)構(gòu)第一章主要介紹了論文的研究背景,國(guó)內(nèi)外的發(fā)展現(xiàn)狀;第二章主要介紹了相關(guān)研究理論,主要是osi模型各個(gè)層的功能,tcp/ip體系以及兩者的比較,http協(xié)議和ip協(xié)議的基本知識(shí)以及數(shù)據(jù)包捕獲的一些理論知識(shí);第三章主要是需求分析,

15、介紹了設(shè)計(jì)系統(tǒng)時(shí)候的需求,有軟件需求以及硬件需求;第四章主要是設(shè)計(jì)模塊,各個(gè)模塊的需求進(jìn)行完善而詳盡的設(shè)計(jì);第五章是對(duì)所設(shè)計(jì)的系統(tǒng)進(jìn)行了測(cè)試,包括功能測(cè)試以及性能測(cè)試,對(duì)測(cè)試的內(nèi)容進(jìn)行了詳細(xì)的分析;第六章對(duì)本文進(jìn)行了總體闡述以及對(duì)論文中由于技術(shù)或非技術(shù)原因而沒有實(shí)現(xiàn)的部分進(jìn)行展望;附錄是附錄的參考英文文獻(xiàn)以及翻譯。2.相關(guān)知識(shí)理論2.1 osi參考模型osi模型是1995年進(jìn)行了修訂,其基礎(chǔ)是國(guó)際標(biāo)準(zhǔn)化組織的一份提案,其結(jié)構(gòu)如圖1所示。不難發(fā)現(xiàn),osi一共有七層,每一層都實(shí)現(xiàn)不同的功能:(1)物理層,其主要任務(wù)是在通信信道傳輸0或1二進(jìn)制數(shù)據(jù)流這樣的比特流,數(shù)據(jù)的基本單位是比特。物理層要保證當(dāng)

16、一端發(fā)送比特位0時(shí),另一端接收到的也是比特0,而不是比特1,因此,物理層要決定使用多少伏的電壓來表示比特0,每一個(gè)比特持續(xù)多長(zhǎng)時(shí)間,傳輸是否要求從兩個(gè)方向同時(shí)進(jìn)行,初始物理如何建立;(2)數(shù)據(jù)鏈路層,讓發(fā)送端將輸入的數(shù)據(jù)拆開,并且分裝到數(shù)據(jù)幀中,然后再將這些數(shù)據(jù)幀按順序傳送(如果是可靠的服務(wù),接收端必須確認(rèn)每個(gè)幀都能準(zhǔn)確無(wú)誤的收到,即發(fā)送給發(fā)送端一個(gè)確認(rèn)幀);(3)網(wǎng)絡(luò)層,是對(duì)子網(wǎng)運(yùn)行過程的控制。從源端到目的端的途徑可以建立在靜態(tài)表的設(shè)計(jì)之上,這些途徑可以在每一次會(huì)話的開始就確定下來,也可以是高度動(dòng)態(tài)的;(4)傳輸層,它的基本功能是接受來自于上一層的數(shù)據(jù),并且在必要的時(shí)候把這些數(shù)據(jù)單元切割成更

17、小的單元,緊接著把這些數(shù)據(jù)單元準(zhǔn)確無(wú)誤的發(fā)送到網(wǎng)絡(luò)層。這一層還決定了它的上一層(會(huì)話層)哪種類型的服務(wù),例如完全無(wú)差錯(cuò)的點(diǎn)到點(diǎn)信道;(5)會(huì)話層,類似于兩個(gè)人之間的交談,它的功能就是在傳輸層服務(wù)的基礎(chǔ)上增加控制會(huì)話的機(jī)制,建立、組織和協(xié)調(diào)應(yīng)用進(jìn)程的交互過程。會(huì)話層提供的會(huì)話服務(wù)種類包括雙工(雙向同時(shí))、半雙工(雙向交替)和單工(單向);(6)表示層,規(guī)定應(yīng)用程序或者用戶之間交換數(shù)據(jù)的格式,提供數(shù)據(jù)之間的轉(zhuǎn)換服務(wù),確保傳輸?shù)臄?shù)據(jù)在到達(dá)目的端后不發(fā)生改變。數(shù)據(jù)轉(zhuǎn)換任務(wù)涵蓋了不同類型的計(jì)算機(jī)內(nèi)部的格式轉(zhuǎn)換,密碼轉(zhuǎn)換和文本壓縮轉(zhuǎn)換;(7)應(yīng)用層,直接面向用戶應(yīng)用,為用戶提供對(duì)各種網(wǎng)絡(luò)資源的訪問服務(wù)。o

18、si系統(tǒng)參考模型如圖2.1所示:圖2.1 osi參考模型2.2 tcp/ip體系結(jié)構(gòu)tcp/ip模型也被稱作dod模型(department of defense model)。tcp/ip字面上代表了兩個(gè)協(xié)議:tcp(傳輸控制協(xié)議)和ip(網(wǎng)際協(xié)議)。1983年1月1日,在因特網(wǎng)的前身(arpa網(wǎng))中,tcp/ip協(xié)議取代了舊的網(wǎng)絡(luò)控制協(xié)議(ncp,network control protocol),從而成為今天的網(wǎng)絡(luò)的基石。tcp/ip的體系結(jié)構(gòu)如圖2.2所示。 圖2.2 osi與tcp/ip對(duì)照tcp/ip在設(shè)計(jì)時(shí)重點(diǎn)并沒有放在具體通信的實(shí)現(xiàn)上,所以對(duì)最后兩層沒有做出具體規(guī)定,同時(shí)表明它

19、允許不同類型的通信網(wǎng)絡(luò)參與通信。它的四個(gè)層次功能如下。(1)網(wǎng)絡(luò)接口層,任務(wù)是從物理網(wǎng)絡(luò)接收數(shù)據(jù)幀,提取ip數(shù)據(jù)報(bào)給網(wǎng)際層或?qū)⒕W(wǎng)際層的ip數(shù)據(jù)報(bào)通過物理網(wǎng)絡(luò)發(fā)送,因?yàn)闆]有具體的網(wǎng)絡(luò)接口層的協(xié)議,從而保證了其靈活性,從而可以在不同物理網(wǎng)絡(luò)適用,如lan、man,嚴(yán)格上它并不是一個(gè)獨(dú)立的層次,僅僅是一個(gè)接口,tcp/ip并沒有對(duì)它定義具體的內(nèi)容;(2)網(wǎng)際層,提供一種無(wú)連接、不可靠卻又竭盡所能的數(shù)據(jù)報(bào)傳輸服務(wù),把數(shù)據(jù)在源主機(jī)和目的端主機(jī)之間傳送。通過犧牲一些非必須的操作來保證高效的傳輸速度;(3)傳輸層,提供端到端的應(yīng)用程序之間的通信,可以使用傳輸控制協(xié)議tcp(transmission cont

20、rol protocol)或用戶數(shù)據(jù)報(bào)協(xié)議udp(user datagram protocol)協(xié)議,tcp提供面向連接的可靠的源端口到目的端口的傳輸服務(wù),它可以在低層不可靠的情況下提供可靠的傳輸機(jī)制。udp提供無(wú)連接不可靠的源端口到目的端口的傳輸服務(wù),由于不需要提前建立連接,因此傳輸?shù)男矢撸唬?)應(yīng)用層,提供面向用戶的網(wǎng)絡(luò)服務(wù)。2.3 osi與tcp/ip的比較兩者都是通過協(xié)議棧的概念為基礎(chǔ)的,而且在其中的協(xié)議是相互獨(dú)立的。兩個(gè)模型各個(gè)層次中的功能也大致相同:網(wǎng)絡(luò)接口層(tcp/ip)對(duì)應(yīng)osi的物理層和數(shù)據(jù)鏈路層(osi),網(wǎng)際層(tcp/ip)對(duì)應(yīng)網(wǎng)絡(luò)層和傳輸層(osi),傳輸層(tc

21、p/ip)對(duì)應(yīng)對(duì)應(yīng)傳輸層(osi),應(yīng)用層(tcp/ip)對(duì)應(yīng)會(huì)話層表示層和應(yīng)用層(osi)。而且,傳輸層上面的各個(gè)層都是傳輸服務(wù)的用戶,并且都是面向應(yīng)用的用戶。tcp/ip是協(xié)議先出現(xiàn),而osi正好相反,在參考模型之后才出現(xiàn)的,因此osi模型不會(huì)偏向于任何一個(gè)特定的協(xié)議,適用的范圍更加大。雖然它們實(shí)現(xiàn)的功能大致相同,但是它們劃分的層次和數(shù)目也是一個(gè)不同點(diǎn),另外,無(wú)連接和面向連接的通信范圍也有所不同,osi的網(wǎng)絡(luò)層兩種連接同時(shí)支持,但是傳輸層知識(shí)支持面向連接的通信。tcp/ip的網(wǎng)際層只有無(wú)線連接通信一種模式,但在傳輸層同時(shí)支持無(wú)線連接和面向連接的兩種通信模式。2.4 http協(xié)議超文本傳輸協(xié)

22、議http(hyper test transfer protocol)定義了web用戶(本質(zhì)是瀏覽器)在web服務(wù)器請(qǐng)求web對(duì)象,和web服務(wù)器怎么把web對(duì)象傳給web用戶的過程。這是一種請(qǐng)求和響應(yīng)的模式。如果用戶輸入一個(gè)網(wǎng)址(請(qǐng)求一個(gè)web訪問)的時(shí)候,瀏覽器就把該頁(yè)面的每一個(gè)web對(duì)象的http請(qǐng)求發(fā)到web服務(wù)器上。當(dāng)它收到這些消息的時(shí)候,就發(fā)送包含上述對(duì)象的http響應(yīng)消息。其工作模式如圖所示。圖2.3 http工作模式http有兩種連接,持久連接(persistent connection)和非持久連接(no persistent connection)。在這里重點(diǎn)說明一下htt

23、p的非持久連接。非持久連接的工作過程主要由以下幾個(gè)步驟組成:(1) 瀏覽器(客戶端)向web服務(wù)器發(fā)送tcp連接建立請(qǐng)求。(2) 當(dāng)?shù)玫絯eb服務(wù)器允許后,客戶端(瀏覽器)向web服務(wù)器發(fā)出一個(gè)數(shù)據(jù)幀,其中包括請(qǐng)求的方法、url、用戶信息等內(nèi)容。 (3) web服務(wù)器接收到請(qǐng)求之后,會(huì)發(fā)送一個(gè)狀態(tài)行。(4) web服務(wù)器斷開tcp連接。步驟(2)請(qǐng)求行中包含了下列的信息:(1)方法,如下圖2.4所示:圖2.4 http請(qǐng)求報(bào)文(2)統(tǒng)一資源定界符url:用于指明要下載的web對(duì)象的位置。 (3)http的版本號(hào),現(xiàn)在版本主要為1.1.步驟(3)響應(yīng)如圖2.5所示:圖2.5 http響應(yīng)報(bào)文2.

24、5 ip協(xié)議ip協(xié)議是tcp/ip協(xié)議網(wǎng)絡(luò)層中的主要成員。它提供無(wú)連接的數(shù)據(jù)報(bào)傳送機(jī)制。ip協(xié)議的實(shí)現(xiàn)十分簡(jiǎn)單,它提供了“盡力而為的服務(wù)(best-effort service)”,意思是它并不能擔(dān)保傳輸是正確的。ip協(xié)議只是負(fù)責(zé)將分組發(fā)送到目標(biāo)結(jié)點(diǎn)上,它不能確保是按分組的準(zhǔn)確次序發(fā)送的。ip協(xié)議大致可以實(shí)現(xiàn)以下幾個(gè)功能:(1) 無(wú)連接的數(shù)據(jù)報(bào)發(fā)送;(2) ip路由;(3) 分組的重組和分段;ip包的格式如下圖所示:圖2.6 ip包格式一個(gè)ip包由兩部分構(gòu)成,分別是首部和數(shù)據(jù)量。ip包首部固定部分各字段意義如下:(1)版本:長(zhǎng)度為4比特。表示與ip分組對(duì)應(yīng)的ip協(xié)議版本號(hào)。目前廣泛采用的是版本

25、4的ip協(xié)議,即ipv4。(2)分組頭長(zhǎng)域:長(zhǎng)度為4比特。用于指明ip分組頭的長(zhǎng)度,其單位是4個(gè)字節(jié)。因?yàn)閕p分組頭長(zhǎng)度不是固定不變的,所以分組頭長(zhǎng)域是不可或缺的。(3)服務(wù)類型:長(zhǎng)度為8比特。用于指明ip分組所要求得到的有關(guān)優(yōu)先級(jí)、準(zhǔn)確性、處理量、延遲等方面的服務(wù)質(zhì)量要求。(4)總長(zhǎng)度域:長(zhǎng)度為16比特,用于指明ip分組的總長(zhǎng)度,單位是字節(jié),包括分組頭和數(shù)據(jù)區(qū)長(zhǎng)度。由于總長(zhǎng)度域?yàn)?6比特,所以ip分組最多可以有65536個(gè)字節(jié)。 (5)標(biāo)識(shí)符域:長(zhǎng)度為16比特,用于唯一標(biāo)識(shí)ip分組。標(biāo)識(shí)符域是ip分組在傳輸中實(shí)行重組和分段所必備的。(6)標(biāo)志域:長(zhǎng)度為3比特。在3比特中有1位被保留,另外兩位

26、中:df用于指明ip分組是否允許分段,mf用于表明是否有后續(xù)分段。(7)(報(bào)文)片偏移量域:長(zhǎng)度為13比特。以8個(gè)字節(jié)為單位,用來指明當(dāng)前報(bào)文片在原始分組中的位置,這是分段和重組的前提條件。(8)生存時(shí)間域:長(zhǎng)度為8比特,用于指明ip分組可在網(wǎng)絡(luò)中傳輸?shù)淖铋L(zhǎng)時(shí)間,這個(gè)數(shù)值每通過一個(gè)路由時(shí)要減1,直至減到0時(shí),這個(gè)分組就會(huì)被舍棄。這個(gè)域用來保障ip分組不會(huì)在網(wǎng)絡(luò)出現(xiàn)錯(cuò)誤的時(shí)候發(fā)生無(wú)限的傳輸這種現(xiàn)象。(9)協(xié)議域:長(zhǎng)度為8比特。用來指明調(diào)用ip協(xié)議進(jìn)行傳輸?shù)母邔訁f(xié)議,高層協(xié)議的編號(hào)由tcp/ip中央權(quán)威管理機(jī)構(gòu)統(tǒng)一分配。例如:icmp的值為1(十進(jìn)制),tcp的值為6,udp的值為17。(10)分

27、組頭校驗(yàn)和域:長(zhǎng)度為16比特。用來保障ip分組頭的完整性。其算法為:該域初始值為0,然后對(duì)ip分組頭以每16位為單位進(jìn)行求異或和,然后將所得到的結(jié)構(gòu)取反,從而得到校驗(yàn)和。(11)源地址域:長(zhǎng)度為32比特。用來指明發(fā)送ip分組的源主機(jī)的ip地址。(12)目的地址域:長(zhǎng)度為32比特。用來指明接收ip分組的目的主機(jī)的ip地址。(13)任選項(xiàng)域:長(zhǎng)度不是固定不變的,是可以變化的。該域允許在以后的版本中包括在當(dāng)前的設(shè)計(jì)的分組頭中未出現(xiàn)的信息,該域的使用有一些特殊的規(guī)定。(14)填充域 長(zhǎng)度固定不變。因?yàn)閕p分組頭必須是4字節(jié)的整數(shù)倍,所以當(dāng)使用任選項(xiàng)的ip分組頭長(zhǎng)度不足4字節(jié)的整數(shù)倍時(shí)候,必須用0填入填

28、充域來滿足這一要求。2.6數(shù)據(jù)捕獲函數(shù)的一些函數(shù)(1)啟動(dòng)函數(shù)wsastartupint pascal far wsastartup (dword wversionrequested , lpwsadata lpwsadata);所有的套接字應(yīng)用程序都首先運(yùn)行這個(gè)函數(shù)完成初始化工作,僅僅當(dāng)完成調(diào)用返回后,才可以使用套接字,括號(hào)中wversionrequested是版本號(hào),參數(shù)lpwsadata是指向wsadata結(jié)構(gòu)的指針。(2)套接字創(chuàng)建函數(shù)socketsocket socket (int af , int type , int protocol);socket函數(shù)就是為每個(gè)通信的建立創(chuàng)建一

29、個(gè)套接字,括號(hào)中af全稱是address family, udp或tcp的決定即將要建立的套接字的時(shí)候,需要設(shè)置af為af_inet。括號(hào)中type是指套接字的類型,有幾種形式sock_stream(流式), sock_dgram(數(shù)據(jù)報(bào)), sock_raw(原始)。(3)綁定函數(shù)bindint bind ( socket s , struct sockaddr_in* name , int namelen);完成創(chuàng)建套接字之后,接下來就是將套接字和當(dāng)?shù)氐木W(wǎng)絡(luò)接口綁定,括號(hào)中s是已經(jīng)創(chuàng)建號(hào)的套接字,括號(hào)中name指的是用來綁定的通信對(duì)象的信息結(jié)構(gòu)體指針,namelen是一共有多少個(gè)字符。需要

30、注意的是sockaddr_in結(jié)構(gòu):struct sockaddr_inshort sin_family; /地址族,設(shè)置為af_inetunsigned short sin_port; /指定的端口號(hào)struct in_addr sin_addr; /ip地址char sin_zero8;(4)設(shè)置接口模式函數(shù)wsaioctlint wsaapi wsaioctl(socket s, dword dwiocontrolcode, lpvoid lpvinbuffer, dword cbinbuffer, lpvoid lpvoutbuffer, dword cboutbuffer, lpdw

31、ord lpcbbytesreturned, lpwsaoverlapped lpoverlapped, lpwsaoverlapped_completion_routine lpcompletionroutine);其中,s為一個(gè)套接口的句柄,dwiocontrolcode為操作控制代碼,lpvinbuffer為輸入緩沖區(qū)的地址,cbinbuffer為輸入緩沖區(qū)的大小,lpvoutbuffer為輸出緩沖區(qū)的地址,cboutbuffer為輸出緩沖區(qū)的大小,lpcbbytesreturned為輸出實(shí)際字節(jié)數(shù)的地址,lpoverlapped為wsaoverlapped結(jié)構(gòu)的地址,lpcomplet

32、ionroutine為一個(gè)指向操作結(jié)束后調(diào)用的例程指針。調(diào)用成功后,wsaioctl 函數(shù)返回0,否則的話,將返回invalid_socket錯(cuò)誤,應(yīng)用程序可通過wsagetlasterror來獲取錯(cuò)誤代碼。(5)數(shù)據(jù)接收函數(shù)recvint recv (socket s , char* buf ,int len , int flags);2.7本章小結(jié)本章闡述了關(guān)于osi參考模型,tcp/ip模型以及兩者的異同點(diǎn)。還介紹了http協(xié)議和ip協(xié)議的一些基本知識(shí),最后簡(jiǎn)單說了關(guān)于數(shù)據(jù)包捕獲的幾個(gè)函數(shù)。在接下來的幾章會(huì)以這幾個(gè)概念作為本文論述的一個(gè)基礎(chǔ),例如網(wǎng)絡(luò)監(jiān)聽模塊(如何設(shè)置混雜模式)會(huì)用到數(shù)據(jù)

33、包捕獲的的函數(shù)。3.需求分析3.1可行性分析可行性分析是以經(jīng)濟(jì)效益為核心,圍繞影響工程的各種因素,如技術(shù)、經(jīng)濟(jì)等運(yùn)用大量的數(shù)據(jù)資料論證該工程是否可行。本文從技術(shù)可行性、經(jīng)濟(jì)可行性、社會(huì)可行性等幾個(gè)方面進(jìn)行了闡述。3.1.1技術(shù)可行性 web訪問監(jiān)測(cè)系統(tǒng)地最主要的功能是判斷用戶訪問的網(wǎng)站是否含有有害信息,對(duì)于有有害信息的網(wǎng)站要進(jìn)行攔截,并轉(zhuǎn)入一個(gè)健康的網(wǎng)站。要實(shí)現(xiàn)這個(gè)功能,有以下幾個(gè)關(guān)鍵問題需要解決:(1) 如何獲得訪問網(wǎng)站的ip?(2) 如何判斷該某個(gè)網(wǎng)址是非法的并予以攔截?解決方案如下:(1)可以通過把網(wǎng)卡設(shè)置為混雜模式,通過捕獲數(shù)據(jù)包來進(jìn)行監(jiān)聽,接著通過tcp/ip協(xié)議,再?gòu)臄?shù)據(jù)包中提取對(duì)

34、工程有用的信息。(2)在http協(xié)議中有規(guī)定,可以通過發(fā)送http重定向報(bào)文,再利用一些網(wǎng)絡(luò)技術(shù),可以實(shí)現(xiàn)。因此,web訪問監(jiān)控系統(tǒng)在技術(shù)方面是完全可行的。3.1.2經(jīng)濟(jì)可行性 這個(gè)工程的成本主要由兩部分構(gòu)成:硬件成本和軟件成本。硬件成本包括:交換機(jī)、服務(wù)器等,軟件成本主要是黑名單與白名單的數(shù)據(jù)庫(kù),維持系統(tǒng)正常運(yùn)轉(zhuǎn)的資金。從經(jīng)濟(jì)方面,也是可以實(shí)現(xiàn)的。3.1.3社會(huì)可行性 最近幾年,中國(guó)政府為了維護(hù)公民良好、綠色的網(wǎng)絡(luò)環(huán)境,對(duì)于非法網(wǎng)站的打擊力度不斷加大。不難發(fā)現(xiàn)我國(guó)對(duì)于凈化網(wǎng)絡(luò)環(huán)境的重視程度,盡管這樣,仍有很多非法網(wǎng)站逍遙法外,嚴(yán)重危害著社會(huì)的和諧穩(wěn)定,這些非法網(wǎng)站的服務(wù)器大多都設(shè)在中國(guó)境外,

35、這也給相關(guān)查處部門帶來了不小的難度。本監(jiān)測(cè)系統(tǒng)主要功能是禁止員工或?qū)W生的瀏覽一部分非法網(wǎng)站,當(dāng)員工或?qū)W生輸入無(wú)關(guān)網(wǎng)址時(shí),管理員的服務(wù)器就可以搶在其打開網(wǎng)頁(yè)前與其進(jìn)行“握手”,從而達(dá)到了組織其正常訪問的目的,提高了工作或?qū)W習(xí)的效率。這有利于社會(huì)的和諧與文明,符合國(guó)家倡導(dǎo)的相關(guān)政策,因此是得到國(guó)家大力支持的。另一方面,這個(gè)系統(tǒng)很大程度上彌補(bǔ)了防火墻的不足,不會(huì)使網(wǎng)絡(luò)速度變慢。綜上所述,web訪問監(jiān)控系統(tǒng)有著很大的市場(chǎng)前景和社會(huì)效益。3.2系統(tǒng)需求分析 3.2.1 功能需求 web訪問監(jiān)控系統(tǒng)的主要任務(wù)是捕獲通過網(wǎng)卡的數(shù)據(jù)包,并加以分析,并與之前建立的數(shù)據(jù)庫(kù)的網(wǎng)址黑名單進(jìn)行匹配。web訪問監(jiān)控系統(tǒng)由

36、六個(gè)模塊組成包括,如下圖3.1所示。圖3.1功能需求模塊結(jié)構(gòu)圖(1)網(wǎng)絡(luò)監(jiān)聽模塊網(wǎng)絡(luò)監(jiān)聽模塊在服務(wù)器上工作,此時(shí)的網(wǎng)卡已經(jīng)被設(shè)置為了混雜模式,它的主要職責(zé)就是捕獲通過網(wǎng)卡的網(wǎng)址,并提取有用的部分交給下一個(gè)模塊(ip包處理模塊)進(jìn)行分析。其用例圖如圖3.2所示。圖3.2 網(wǎng)絡(luò)監(jiān)聽模塊用例圖(2)攔截策略控制模塊這個(gè)模塊具有很強(qiáng)的自主性,它可以隨時(shí)根據(jù)管理員的需要進(jìn)行開啟或者關(guān)閉。攔截策略控制模塊維護(hù)一個(gè)稱為“白名單”的文件。白名單的更新是由消息模塊控制的,當(dāng)消息模塊發(fā)來消息添加新的數(shù)據(jù)時(shí),它才更新。當(dāng)管理員關(guān)閉網(wǎng)頁(yè)攔截服務(wù)時(shí),消息服務(wù)器會(huì)發(fā)給攔截服務(wù)器一個(gè)命令,攔截策略控制模塊阻止的瀏覽器轉(zhuǎn)去訪

37、問消息服務(wù)器的提供的網(wǎng)頁(yè)。從用戶的角度看,就是所要訪問的網(wǎng)頁(yè)被攔截了。(3)ip包分析模塊ip包分析模塊在攔截服務(wù)器上工作。其職責(zé)是對(duì)上個(gè)模塊(網(wǎng)絡(luò)監(jiān)聽模塊)收集到的數(shù)據(jù)包進(jìn)行分析和處理,把一些無(wú)關(guān)緊要的數(shù)據(jù)舍棄掉,從而大大的提高了處理的效率,分析出是否含有非法的網(wǎng)址成分并予以阻止訪問的請(qǐng)求。這個(gè)模塊由兩部分構(gòu)成:ip包過濾模塊和網(wǎng)址匹配模塊。ip包過濾部分的主要作用就是只保留http協(xié)議中的get報(bào)文和post報(bào)文,而把除此之外的數(shù)據(jù)舍棄掉,這樣就可以極大的減少工作量,并且可以加快網(wǎng)址匹配的速度。提取出url地址后,發(fā)送到網(wǎng)址匹配模塊。其用例圖如圖 3.3所示。 圖3.3 ip包過濾部分用例

38、圖網(wǎng)址匹配模塊的主要任務(wù)是把提取到url和數(shù)據(jù)庫(kù)的黑名單逐個(gè)進(jìn)行對(duì)照人,如果發(fā)現(xiàn)有非法網(wǎng)址,就把這個(gè)消息通知給攔截模塊。其用例圖如圖 3.4所示。圖3.4 網(wǎng)址匹配部分用例圖(4)網(wǎng)頁(yè)攔截模塊 網(wǎng)頁(yè)攔截模塊是本系統(tǒng)最為關(guān)鍵的一部分。網(wǎng)頁(yè)攔截模塊的任務(wù)是攔截經(jīng)過上個(gè)模塊分析出的有害網(wǎng)址。網(wǎng)頁(yè)攔截模塊向用戶展示預(yù)先做好的界面用于替代用戶要訪問的界面。從用戶的角度看,就是所要訪問的網(wǎng)頁(yè)被攔截了。其用例圖如圖 3.5所示。 圖3.5 網(wǎng)頁(yè)攔截模塊用例圖(5)數(shù)據(jù)更新模塊 數(shù)據(jù)更新模塊是指已經(jīng)攔截到的非法網(wǎng)站加入到已經(jīng)建立好的數(shù)據(jù)庫(kù)的黑名單中。數(shù)據(jù)庫(kù)的維護(hù)有專門的管理人員,他們的主要職責(zé)就是對(duì)攔截服務(wù)器

39、攔截到的非法網(wǎng)址進(jìn)行檢查,當(dāng)發(fā)現(xiàn)這個(gè)情況屬實(shí)后,把這個(gè)網(wǎng)址加載到黑名單中。等下一次有人訪問時(shí),攔截服務(wù)器就可以直接組織其正常訪問并彈出管理員預(yù)先設(shè)置好的界面。這樣就可以節(jié)省掉不少的工作量和時(shí)間。(6)消息提示模塊假如有用戶要瀏覽的網(wǎng)站含有非法內(nèi)容時(shí),將提前做好的界面以彈窗的形式提示用戶。當(dāng)用戶輸入正確的通行口令時(shí),用戶可以正常訪問其網(wǎng)址。3.2.2 性能需求本文的 web 監(jiān)測(cè)系統(tǒng)需要滿足的性能需求主要有以下若干方面。 (1)我單位局域網(wǎng)內(nèi)的用戶數(shù)量很大,不適宜在每個(gè)終端用戶的計(jì)算機(jī)上安裝系統(tǒng)所必需的模塊,web 監(jiān)測(cè)系統(tǒng)的部署、運(yùn)行與維護(hù)對(duì)于局域網(wǎng)用戶來說是透明的。 (2)整個(gè) web 訪問

40、監(jiān)測(cè)系統(tǒng)必須能夠穩(wěn)定、正常地運(yùn)轉(zhuǎn),性能消耗低,而且在這個(gè)系統(tǒng)正式投入使用后,如果出現(xiàn)這樣或那樣的問題,應(yīng)該要有相應(yīng)的解決手段。如果出現(xiàn)有新的功能需求時(shí),要求系統(tǒng)必須可以進(jìn)行擴(kuò)充和修改。從而保證整個(gè)局域網(wǎng)的可用性、可生存性。 (3)面對(duì)錯(cuò)綜復(fù)雜的龐大數(shù)據(jù),要有較強(qiáng)的應(yīng)對(duì)能力,來保證計(jì)算機(jī)網(wǎng)絡(luò)的正常運(yùn)轉(zhuǎn)。 (4)監(jiān)測(cè)記錄的 web 訪問日志應(yīng)該具有覆蓋面廣,攔截準(zhǔn)確無(wú)誤的特點(diǎn)。 (5)整個(gè)系統(tǒng)人機(jī)交互界面友好,可操作性強(qiáng),容錯(cuò)性強(qiáng),軟件部分發(fā)生故障時(shí)應(yīng)能夠自動(dòng)恢復(fù)。 (6)系統(tǒng)支持即插即用方式,系統(tǒng)的實(shí)施不需要改變?cè)瓉憩F(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu),簡(jiǎn)言之就是安裝這個(gè)系統(tǒng)并不影響網(wǎng)絡(luò)的流暢性性。 3.2.3運(yùn)行需求

41、(1) 攔截服務(wù)器內(nèi)存至少2gb以上。(2) 網(wǎng)絡(luò)監(jiān)聽服務(wù)器應(yīng)該具備的能力:700個(gè)并發(fā)http鏈接,300pps。(3) 存儲(chǔ)器最少應(yīng)該留有半年的訪問數(shù)據(jù)。(4) 數(shù)據(jù)庫(kù)維護(hù)人員應(yīng)該實(shí)時(shí)關(guān)注黑名單的更新,做到不漏掉一個(gè)非法網(wǎng)址。3.2.4安全需求分析 本系統(tǒng)的安全需求大致應(yīng)該有如下幾點(diǎn): (1)該系統(tǒng)的用戶僅面向我單位的專業(yè)技術(shù)人員及其有關(guān)領(lǐng)導(dǎo),不同的用戶應(yīng)該有不同的訪問權(quán)限。 (2)該系統(tǒng)記錄所有用戶的登錄歷史、操作歷史等日志信息,為了確保系統(tǒng)的 安全,該類日志信息一次性寫入,不可刪除,一經(jīng)寫入不可更改。 (3)由于涉及到我單位的局域網(wǎng)絡(luò)、我單位用戶的隱私,因此必須保證記錄的web 訪問頁(yè)

42、面文件證據(jù)的機(jī)密性,并控制其擴(kuò)散范圍。 (4)該系統(tǒng)的運(yùn)行前提是不影響我單位局域網(wǎng)的正常運(yùn)轉(zhuǎn),更不能造成我單位局域網(wǎng)新的安全威脅。 (6) 每隔一段時(shí)間,就要把這些數(shù)據(jù)備份。并且要求備份數(shù)據(jù)的全面性和完整性。 4系統(tǒng)設(shè)計(jì)4.1網(wǎng)絡(luò)監(jiān)聽模塊獲取經(jīng)過網(wǎng)卡的數(shù)據(jù)幀需要分三步完成:(1)創(chuàng)建socket套接字。(2)將網(wǎng)卡設(shè)置為混雜模式。(3)調(diào)用recvfromo函數(shù)接收數(shù)據(jù)。網(wǎng)絡(luò)監(jiān)聽模塊的獲取數(shù)據(jù)包流程圖如圖4.1所示: 圖4.1 獲取數(shù)據(jù)包的流程圖建立初始套接字的函數(shù)如下:soeket(pf_packet,sock_raw,eth_p_ip);完成socket套接字后,接著調(diào)用recvfromo

43、函數(shù)來獲取幀。這個(gè)時(shí)候并不能獲取通過這個(gè)網(wǎng)卡的數(shù)據(jù)幀,對(duì)于不是發(fā)送到本機(jī)的數(shù)據(jù)幀,實(shí)行丟棄的方法,從而來減輕網(wǎng)卡的負(fù)擔(dān)。但是我們要得到經(jīng)過網(wǎng)卡的所有數(shù)據(jù)幀。所以正常下我們并不能達(dá)到監(jiān)聽的目的。因此,要把網(wǎng)卡設(shè)置成混雜模式,這樣我們就可以獲取所有經(jīng)過網(wǎng)卡的數(shù)據(jù)幀。如果一個(gè)程序只是有一個(gè)或少數(shù)幾個(gè)進(jìn)程完成,處理器一方面要求分析模塊要提取有效信息,進(jìn)行網(wǎng)址匹配。另一方面還要繼續(xù)接收新來的數(shù)據(jù)幀。這種情況下很容易出現(xiàn)數(shù)據(jù)幀丟失的現(xiàn)象。因此,要采取多進(jìn)程的方式。一個(gè)程序的運(yùn)行可以使用多個(gè)進(jìn)程并發(fā)執(zhí)行。這樣可以使他們的工作最大程度上達(dá)到效率最高并且不會(huì)發(fā)生任何沖突,從而實(shí)現(xiàn)了資源利用率最高。套接字的建立、

44、綁定的操作部分關(guān)鍵程序如下所示:m_sockcap = socket(af_inet , sock_raw , ipproto_ip);/創(chuàng)建套接字bind(m_sockcap, (psockaddr)&sa, sizeof(sa);/綁定setsockopt(m_sockcap, sol_socket, so_reuseaddr, (char*)&bopt, sizeof(bopt) ;/設(shè)置操作setsockopt(m_sockcap, ipproto_ip, ip_hdrincl, (char*)&bopt, sizeof(bopt) ;/設(shè)置操作wsaioctl(m_sockcap,s

45、io_rcvall,&dwbufferinlen,sizeof(dwbufferinlen),dwbufferlen,sizeof(dwbufferlen),&dwbytesreturned,null,null);/混雜模式m_hcapthread = createthread(null, 0, capturethread, this, 0, null);/啟動(dòng)線程4.2攔截策略控制模塊攔截策略控制模塊和消息服務(wù)器進(jìn)行通信,它監(jiān)聽端口10000,然后接收消息服務(wù)器傳來的指令。消息服務(wù)器傳來的指令主要有兩種,開啟或關(guān)閉服務(wù)。當(dāng)傳輸開啟或關(guān)閉命令式,消息服務(wù)器要將用戶的ip地址一起發(fā)來。在這里要介

46、紹“白名單”。假如用戶關(guān)閉網(wǎng)頁(yè)攔截功能,用戶策略模塊將用戶ip地址加入“白名單”中。假如是開啟攔截功能,那么將用戶ip地址從白名單中刪除。ip包過濾模塊將ip地址在“白名單”中的用戶的所有l(wèi)p包看作系統(tǒng)不感興趣的ip包,將其過丟棄。攔截方法模塊工作流程如圖 4.2所示。圖4.2 攔截方法模塊流程圖4.3 ip包分析模塊4.3.1ip包過濾模塊ip包過濾模塊起著承前啟后的作用,它位于網(wǎng)絡(luò)監(jiān)聽模塊之后,ip網(wǎng)址匹配模塊之前。它負(fù)責(zé)去除幀的首部字段,只留下有用的ip部分,舍棄一些無(wú)用的ip包。由于獲取的數(shù)據(jù)可能有多種的類型,而我們只想要其中的一些例如http協(xié)議的數(shù)據(jù)幀。因此只分析關(guān)于get和pos

47、t的報(bào)文,將這些報(bào)文交給下一個(gè)模塊(網(wǎng)址匹配模塊)。沒有用的數(shù)據(jù)包采取舍棄的處理方式,這樣可以很大程度上減輕網(wǎng)址匹配模塊的工作量,使網(wǎng)址匹配模塊可以更加迅速的處理非法網(wǎng)址。ip包過濾模塊的流程圖如圖4.3。圖4.3 ip包過濾模塊流程圖如果ip包中含有post或get報(bào)文,需要取出它的url地址。http請(qǐng)求報(bào)文格式如圖。圖4.4 http請(qǐng)求報(bào)文對(duì)于get報(bào)文和post報(bào)文,處理方法不同,要分別進(jìn)行處理。(1) 處理get報(bào)文當(dāng)我們要訪問這個(gè)網(wǎng)站的時(shí)候,瀏覽器發(fā)送的請(qǐng)求報(bào)文格式如下:get/http/1.1rnaeeept:*/*rnaccept一la

48、nguage:zh一zh-cncnrnhost:rnrn其中g(shù)et后面的u甩字段和host字段是含有網(wǎng)頁(yè)u肚信息的關(guān)鍵字段。一般http/1.1在url字段只存放請(qǐng)求的網(wǎng)頁(yè)文件的路徑和名字,主機(jī)的域名存放在host字段中,但是也有的時(shí)候url字段會(huì)存放包括主機(jī)地址和文件路徑及文件名的完整形式,而沒有host字段。 大多數(shù)時(shí)候,想要要過濾掉某個(gè)非法網(wǎng)址,僅僅需要得到用戶所要訪問的網(wǎng)站域名地址就可以了,不一定要得到具體訪問某一個(gè)特定的文件下的內(nèi)容。有兩種情況不得不考慮進(jìn)去。一種是一個(gè)網(wǎng)站的一部分內(nèi)容時(shí)合法的另一部分內(nèi)容是不合法的。為了精確的過濾掉那部分非法內(nèi)容,因此必須

49、了解用戶訪問的是文件是哪一個(gè)。另一種是用戶直接輸入了某非法網(wǎng)頁(yè)的完整路徑,這種情況也需要用戶的具體訪問的文件名。(2)處理post報(bào)文由于網(wǎng)絡(luò)上混雜著一種可以進(jìn)行網(wǎng)頁(yè)代理的網(wǎng)站。它充當(dāng)了溝通用戶與不合法網(wǎng)站的紐帶。因此要進(jìn)行post報(bào)文的處理。網(wǎng)頁(yè)代理的工作過程是這樣的: 它先是為用戶提供一個(gè)界面,大多數(shù)情況下,頁(yè)面都很簡(jiǎn)單,僅僅有1個(gè)記事本式的文本框,瀏覽器把要瀏覽網(wǎng)頁(yè)的url地址輸入到這個(gè)文本框中,然后把這個(gè)文本框交給網(wǎng)頁(yè)代理的網(wǎng)站。這個(gè)代理網(wǎng)站與瀏覽器要訪問的目標(biāo)網(wǎng)站發(fā)生請(qǐng)求聯(lián)系,請(qǐng)求成功后,代理網(wǎng)站把目標(biāo)網(wǎng)站發(fā)送給瀏覽器。用戶加入采取這種方式瀏覽網(wǎng)站,直接在請(qǐng)求報(bào)文中實(shí)體主體以上部分不

50、能獲取用戶所請(qǐng)求的網(wǎng)頁(yè)的url地址。在這個(gè)時(shí)候,請(qǐng)求報(bào)文的實(shí)體主體以上部分的url字段和host是關(guān)于提供網(wǎng)頁(yè)代理服務(wù)的網(wǎng)站的信息,而沒有用戶真正需要的網(wǎng)頁(yè)url地址。4.3.2網(wǎng)址匹配模塊網(wǎng)址匹配模塊把提取出的url地址與數(shù)據(jù)庫(kù)中的url進(jìn)行匹配,如果匹配成功的話,就把這個(gè)匹配結(jié)果告知下一個(gè)模塊,對(duì)這個(gè)網(wǎng)址予以攔截。這個(gè)系統(tǒng)是在混雜模式下進(jìn)行的,所有的網(wǎng)址都經(jīng)過網(wǎng)卡,預(yù)先設(shè)置的頁(yè)面一定將重定向報(bào)文在員工或?qū)W生要求瀏覽的網(wǎng)頁(yè)的前面到達(dá)員工或?qū)W生的電腦。其中重要的一點(diǎn)就是匹配速度要快。采取哈希算法,將url按順序羅列起來,接著把它放在內(nèi)存的一個(gè)數(shù)組單元中。因?yàn)閮?nèi)存中對(duì)各個(gè)數(shù)組的訪問都是可以隨機(jī)的

51、,因此可以在o(1)時(shí)限內(nèi)完成,哈希算法可以做到提高工作效率的目的。算法如下:(l)給定兩個(gè)32位int x和int y,令x=0,y=0;(2)把url 4個(gè)字節(jié)一組,與x異或;(3)得到的結(jié)果除以24,余數(shù)儲(chǔ)存在y中。哈希算法的c語(yǔ)言代碼:int51(ehar*s)unsignedintx,y:x=0;ehar*b=(ehar*)&x;for(i=0;istrlen(s);i+)bi%4a=si;retumx%0xl000000;。最大程度的減少重復(fù)幾率,要在這個(gè)基礎(chǔ)上做一部分修改:多次計(jì)算字符串的散列值。在第一遍結(jié)束后,把數(shù)組對(duì)應(yīng)位置的值的第一個(gè)比特位置1,接著把字符串循環(huán)移位。然后進(jìn)行

52、散列值計(jì)算,放到數(shù)組相應(yīng)位置的第2個(gè)比特位。以3次計(jì)算為例,步驟為:(l)計(jì)算url的散列值,將相應(yīng)位置數(shù)組的值或上ox01。(2)將url以字符為單位循環(huán)左移一位。(3)計(jì)算移位之后的url地址,將相應(yīng)位置數(shù)組的值或上ox02。(4)將url以字符為單位循環(huán)左移一位。(5)計(jì)算移位之后的url地址,將相應(yīng)位置數(shù)組的值或上0x04。4.4網(wǎng)頁(yè)攔截模塊當(dāng)網(wǎng)址匹配模塊發(fā)現(xiàn)該網(wǎng)址為非法網(wǎng)址時(shí),就將這個(gè)消息告知網(wǎng)頁(yè)攔截模塊,并要求它進(jìn)行攔截。當(dāng)發(fā)現(xiàn)瀏覽器訪問的是非法網(wǎng)址時(shí),服務(wù)器就重定向到它預(yù)先設(shè)計(jì)的網(wǎng)頁(yè)上,達(dá)到警告用戶的目的。它的原理是:如果員工或?qū)W生用瀏覽器輸入網(wǎng)址時(shí),就把get報(bào)文發(fā)向了web服

53、務(wù)器。在沒有web監(jiān)測(cè)系統(tǒng)的情況下,服務(wù)器會(huì)向?yàn)g覽器發(fā)送相應(yīng)的響應(yīng)報(bào)文,意思就是可以接受這個(gè)請(qǐng)求。但是web監(jiān)測(cè)系統(tǒng)所要做的工作就是用其網(wǎng)絡(luò)監(jiān)聽模塊和ip包分析模塊,提取出url地址時(shí),發(fā)現(xiàn)這個(gè)地址是可疑的,網(wǎng)絡(luò)攔截模塊就要發(fā)揮作用了。它會(huì)假裝是web服務(wù)器向?yàn)g覽器發(fā)送一個(gè)重定向的響應(yīng)報(bào)文,并且使瀏覽器切換到系統(tǒng)預(yù)先設(shè)計(jì)的網(wǎng)頁(yè)上去,對(duì)用戶起到警告的作用。正因?yàn)榫W(wǎng)頁(yè)攔截模塊在web服務(wù)器與用戶瀏覽器之間,所以攔截模塊能在用戶訪問非法網(wǎng)站之前就與用戶瀏覽器“握手”,及時(shí)的阻止用戶訪問非法網(wǎng)站。重定向技術(shù)可以有如下幾步完成:(l)生成重定向報(bào)文作為http眾多響應(yīng)報(bào)文的一個(gè),它要求用戶電腦顯示出它預(yù)

54、先設(shè)計(jì)好的網(wǎng)頁(yè)。圖4.5響應(yīng)報(bào)文格式上圖的第一行稱之為狀態(tài)行。狀態(tài)行由三部分構(gòu)成,即http的版本,狀態(tài)碼,以及crlf。其中狀態(tài)碼有5種。例如:lxx:代表通知信息的,例如請(qǐng)求雖然在處理但還沒有處理完畢。2xx:代表成功,例如202代表請(qǐng)求雖然被接受,但是仍未處理。3xx:代表重定向,例如301代表要求的把url轉(zhuǎn)換到了新的位置。4xx:代表用戶出現(xiàn)的操作錯(cuò)誤,例如400代表服務(wù)器不能正常識(shí)別。5xx:代表服務(wù)器出現(xiàn)的問題。 (2)填寫各層首部字段(3)發(fā)送ip包在各層首部字段都填寫完畢后,把他們安裝tcp/ip封裝按順序?qū)懙骄彌_層中。發(fā)送完畢后,這些就要準(zhǔn)備發(fā)送到用戶的瀏覽器中。默認(rèn)的so

55、cket實(shí)例,tcp和ip首部是系統(tǒng)默認(rèn)情況下的,通過以下代碼,告知服務(wù)器由管理員自己填寫的tcp和ip首部:int flag=1;setsoekopt(soek,ipproto-ip,ip一drincl,&flag,sizeof(int):接下來調(diào)用sendto()函數(shù)把已經(jīng)發(fā)送緩沖區(qū)的ip包發(fā)送到用戶瀏覽器。4.5數(shù)據(jù)更新模塊web訪問監(jiān)控系統(tǒng)配備了專門的黑名單數(shù)據(jù)庫(kù),并把它存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器里3。數(shù)據(jù)更新模塊每過固定的一個(gè)時(shí)間就要與數(shù)據(jù)服務(wù)器完成核對(duì)是不是有新的網(wǎng)址需要拉進(jìn)到數(shù)據(jù)庫(kù)中。假如有新的網(wǎng)址,必須要把這個(gè)新的消息告訴到所有模塊,使得網(wǎng)址匹配模塊可以有新的數(shù)據(jù)比對(duì)過濾的url地址。 數(shù)據(jù)庫(kù)的更新要用到ftp技術(shù)。數(shù)據(jù)庫(kù)服務(wù)器包含有一個(gè)ftp服務(wù)器,緊接著把含有非法網(wǎng)址的黑名單的副本通過txt的形式存儲(chǔ)到ftp中,為數(shù)據(jù)更新模塊的隨時(shí)下載提供便利。更新時(shí)需要用的一些指令:user:代表user字段緊接

溫馨提示

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

評(píng)論

0/150

提交評(píng)論