網(wǎng)絡(luò)數(shù)據(jù)獲取與協(xié)議分析二2013級實驗班v_第1頁
網(wǎng)絡(luò)數(shù)據(jù)獲取與協(xié)議分析二2013級實驗班v_第2頁
網(wǎng)絡(luò)數(shù)據(jù)獲取與協(xié)議分析二2013級實驗班v_第3頁
網(wǎng)絡(luò)數(shù)據(jù)獲取與協(xié)議分析二2013級實驗班v_第4頁
網(wǎng)絡(luò)數(shù)據(jù)獲取與協(xié)議分析二2013級實驗班v_第5頁
已閱讀5頁,還剩224頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

網(wǎng)絡(luò)數(shù)據(jù)獲取與協(xié)議分析(2)彭光輝2023/1/102課程內(nèi)容一、課程組成:1、教材:網(wǎng)絡(luò)數(shù)據(jù)獲取與協(xié)議分析(2),內(nèi)容包括Libnids數(shù)據(jù)包捕獲與協(xié)議分析2、知識架構(gòu):網(wǎng)絡(luò)應(yīng)用協(xié)議工作原理、數(shù)據(jù)包捕獲與協(xié)議分析方法3、參考書(電子書):TCP/IP協(xié)議詳解卷1、2,Wireshark使用說明文檔,Linux命令大全4、閱讀與分享:信息安全完全手冊(第2版)二、課時安排:60學(xué)時,4學(xué)分,課程分6個單元,三、課程單元:Libnids概述與IDS/IPS技術(shù)、nids庫函數(shù)使用、HTTP協(xié)議分析、POP3協(xié)議分析、SMTP協(xié)議分析、FTP協(xié)議分析、Telnet協(xié)議分析四、閱讀分享課:時間:每周三,主講人:同學(xué),每人一章,一個學(xué)時五、預(yù)期成果:1、具備較寬的信息安全基礎(chǔ)知識,2、具備網(wǎng)絡(luò)應(yīng)用協(xié)議分析能力六、考核方式:1、考績:45%,單元實驗作業(yè)評價成績2、考勤:15%,實驗室進(jìn)出打卡記錄3、考試:40%,課程結(jié)束考試教材提綱Libnids概述Libnids函數(shù)Libnids應(yīng)用第一單元計劃(IDS/IPS)1、Libnids簡介2、入侵檢測系統(tǒng)與入侵防護(hù)系統(tǒng)Libnids使用范圍Libnids使用范圍Libnids(LibraryNetworkIntrusionDetectionSystem)是一個用于網(wǎng)絡(luò)入侵檢測開發(fā)的專業(yè)編程接口。它實現(xiàn)了基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)的基本框架,并提供了一些基本的功能。使用Libnids可以快速地構(gòu)建基于網(wǎng)絡(luò)的入侵檢測系統(tǒng),并可以在此基礎(chǔ)上進(jìn)一步擴(kuò)展開發(fā)。Libnids實現(xiàn)入侵檢測系統(tǒng)的底層功能,使開發(fā)者可以專注于高層的功能開發(fā)。Libnids是基于Libpcap和Libnet而開發(fā)的,所以它具有Libpcap和Libnet的優(yōu)點(diǎn),具有較強(qiáng)的移植性,效率高,使用簡單。Libnids是仿照Linux2.O.x內(nèi)核中的TCP/IP協(xié)議部分而實現(xiàn)的,具有高可靠性,并通過了很多測試。

Libnids使用范圍Libnids的主要功能包括捕獲網(wǎng)絡(luò)數(shù)據(jù)包、IP碎片重組、TCP數(shù)據(jù)流重組以及端口掃描攻擊檢測和異常數(shù)據(jù)包檢測等。IP碎片重組是Libnids的一個重要內(nèi)容,它是仿照Linux內(nèi)核中的IP重組而實現(xiàn)的,所以非??煽?。Libnids提供了TCP數(shù)據(jù)流重組功能,這是Libpcap所不具備的,利用TCP數(shù)據(jù)流重組,可以分析基于TCP協(xié)議的各種應(yīng)用層協(xié)議。另外,Libnids還提供了檢測TCP端口掃描攻擊的功能,檢測異常數(shù)據(jù)包的功能,這是入侵榆測系統(tǒng)(IDS)最基本韻功能。Libnids使用范圍Libndis使用了Libpcap,所以它具有捕獲數(shù)據(jù)包的功能,利用Libnids可以輕松地實現(xiàn)對數(shù)據(jù)包的捕獲,并對其進(jìn)行分析。同時,Libnids提供了TCP數(shù)據(jù)流重組功能,所以對于分析基于TCP協(xié)議的各種協(xié)議Libnids都能夠勝任。Libnids還提供了對IP分片進(jìn)行重組的功能,以及端口掃描檢測和異常數(shù)據(jù)包檢測功能,所以它對于分析網(wǎng)絡(luò)異常情況也是非常有效的??偨Y(jié)起來,Libnids可以用在以下幾個方面,但并不局限于此。Libnids使用范圍入侵檢測系統(tǒng)

Libnids提供了據(jù)包捕獲、協(xié)議分析接口,TCP數(shù)據(jù)流重組,IP碎片重組功能,對異常數(shù)據(jù)包的檢測,TCP端口掃描的檢測等功能。最重要的是,Libnids為入侵檢測系統(tǒng)更深入的開發(fā)提供了開發(fā)接口。因此,開發(fā)人員可以更關(guān)注于對入侵檢測技術(shù)的研究,而不用考慮底層的實現(xiàn)細(xì)節(jié)。Libnids使用范圍網(wǎng)絡(luò)協(xié)分析Libnids是在Libpcap基礎(chǔ)上升發(fā)的,所以它具備了Libpcap的功能,可以實現(xiàn)各種協(xié)議的分析,并在Libpcap的基礎(chǔ)上開發(fā)了更多有用的功能,如TCP數(shù)據(jù)流重組。這樣,在利用Libnids分析基于TCP協(xié)議的各種協(xié)議時,不僅可以分析各種單個TCP數(shù)據(jù)包,而且可以分析整個TCP連接過程。這對于分析FTP協(xié)議、HTTP協(xié)議、POP3協(xié)議等基于TCP的應(yīng)用層協(xié)議足非常有幫助的。Libnids使用范圍網(wǎng)絡(luò)嗅探系統(tǒng)網(wǎng)絡(luò)嗅探也稱網(wǎng)絡(luò)監(jiān)視,主要是指檢測網(wǎng)絡(luò)信息,查看網(wǎng)絡(luò)內(nèi)容。針對不同的目的,有各種各樣的網(wǎng)絡(luò)嗅探。例如,對于網(wǎng)絡(luò)管理員來說,為了掌握整個網(wǎng)絡(luò)的運(yùn)行狀況,想檢測網(wǎng)絡(luò)出現(xiàn)的故障,他可以利用網(wǎng)絡(luò)嗅探技術(shù)來實現(xiàn)。對于網(wǎng)絡(luò)非法攻擊者來說,為了獲得敏感信息,他也可以利用網(wǎng)路嗅探技術(shù)捕獲他所需的內(nèi)容,如密碼、用戶、賬號等。利用Libnids可以輕松獲取很多協(xié)議傳輸?shù)挠脩艉兔艽a。所以說,Libnids是一把雙刃劍。除此之外.利用Libnids還可以重現(xiàn)網(wǎng)絡(luò)內(nèi)容,還原網(wǎng)絡(luò)數(shù)據(jù),如重現(xiàn)HTTP協(xié)議中傳輸?shù)木W(wǎng)頁、POP3協(xié)議中傳輸?shù)碾娮余]件等。入侵檢測系統(tǒng)(IDS)與入侵防護(hù)系統(tǒng)(IPS)每一個網(wǎng)絡(luò)安全的實現(xiàn)都是基于某種明確申明或者假設(shè)的模型。例如,組織使用防火墻作為他們的主要防御手段是基于外圍安全模型,而組織采用集中不同的安全機(jī)制是在實踐分層防御模型,任何安全設(shè)計都包括假設(shè)什么是可信的,什么是不可信的,誰能去哪里,明確的定義什么是完全可信的、什么是部分可信的、什么是不可信的,以及了解正在使用哪個防御模型,可以讓安全基礎(chǔ)設(shè)施更加有效和更好地融入環(huán)境實行保護(hù)。網(wǎng)絡(luò)安全解決方案現(xiàn)代化的網(wǎng)絡(luò)系統(tǒng),在采用傳統(tǒng)的靜態(tài)(如防火墻、加密和認(rèn)證等)的安全防護(hù)體系的手段的同時,需要結(jié)合具有現(xiàn)代化的先進(jìn)的網(wǎng)絡(luò)安全實時檢測和監(jiān)控、網(wǎng)絡(luò)安全評估、安全漏洞掃描技術(shù)和工具,并制訂嚴(yán)格完善的安全管理制度,才能構(gòu)成一個現(xiàn)代化的動態(tài)網(wǎng)絡(luò)安全系統(tǒng),保證信息系統(tǒng)機(jī)密性、完整性和可用性(CIA)。網(wǎng)絡(luò)安全解決方案信息安全三原則:在信息安全等級保護(hù)工作中,根據(jù)信息系統(tǒng)的機(jī)密性(Confidentiality)、完整性(Integrality)、可用性(Availability)來劃分信息系統(tǒng)的安全等級,三個性質(zhì)簡稱CIA。機(jī)密性:只有授權(quán)用戶可以獲取信息。完整性:保證信息傳輸?shù)倪^程中,不被非法修改和破壞??捎眯裕汉戏ㄓ脩魧π畔①Y源的使用不會被不正當(dāng)?shù)鼐芙^。網(wǎng)絡(luò)戰(zhàn):收集信息,阻斷攻擊,摧毀敵手網(wǎng)絡(luò)。美國中央情報局:CIA(CentralIntelligenceAgency),主要職責(zé):收集情報

暗殺顛覆敵對政權(quán)。信息安全三原則:CIA網(wǎng)絡(luò)安全解決方案網(wǎng)絡(luò)安全工具的特點(diǎn)優(yōu)點(diǎn)局限性防火墻可簡化網(wǎng)絡(luò)管理,產(chǎn)品成熟無法處理網(wǎng)絡(luò)內(nèi)部的攻擊IDS/IPS實時監(jiān)控網(wǎng)絡(luò)安全狀態(tài)誤警率高,緩慢攻擊,新的攻擊模式Scanner完全主動式安全工具,能夠了解網(wǎng)絡(luò)現(xiàn)有的安全水平,簡單可操作,幫助系統(tǒng)管理員和安全服務(wù)人員解決實際問題,并不能真正了解網(wǎng)絡(luò)上即時發(fā)生的攻擊VPN保護(hù)公網(wǎng)上的內(nèi)部通信可視為防火墻上的一個漏洞防病毒針對文件與郵件,產(chǎn)品成熟功能單一IDS是英文“IntrusionDetectionSystems”的縮寫,中文意思是“入侵檢測系統(tǒng)”。系統(tǒng)依照一定的安全策略,對網(wǎng)絡(luò)、系統(tǒng)的運(yùn)行狀況進(jìn)行監(jiān)視,盡可能發(fā)現(xiàn)各種攻擊企圖、攻擊行為或者攻擊結(jié)果,以保證網(wǎng)絡(luò)系統(tǒng)資源的機(jī)密性、完整性和可用性。入侵檢測系統(tǒng)我們做一個形象的比喻:假如防火墻是一幢大樓的門鎖,那么IDS就是這幢大樓里的監(jiān)視系統(tǒng)。一旦小偷爬窗進(jìn)入大樓,或內(nèi)部人員有越界行為,只有實時監(jiān)視系統(tǒng)才能發(fā)現(xiàn)情況并發(fā)出警告。入侵檢測系統(tǒng)不同于防火墻,IDS入侵檢測系統(tǒng)是一個監(jiān)聽設(shè)備,沒有跨接在任何鏈路上,無須網(wǎng)絡(luò)流量流經(jīng)它便可以工作。因此,對IDS的部署,唯一的要求是:IDS應(yīng)當(dāng)掛接在所有所關(guān)注流量都必須流經(jīng)的鏈路上。在這里,"所關(guān)注流量"指的是來自高危網(wǎng)絡(luò)區(qū)域的訪問流量和需要進(jìn)行統(tǒng)計、監(jiān)視的網(wǎng)絡(luò)報文。入侵檢測系統(tǒng)通用入侵檢測系統(tǒng)模型通用入侵檢測模型數(shù)據(jù)收集器(又可稱為探測器):主要負(fù)責(zé)收集數(shù)據(jù)。探測器的輸入數(shù)據(jù)流包括任何可能包含入侵行為線索的系統(tǒng)數(shù)據(jù)。比如網(wǎng)絡(luò)數(shù)據(jù)包、日志文件和系統(tǒng)調(diào)用記錄等。探測器將這些數(shù)據(jù)收集起來,然后發(fā)送到檢測器進(jìn)行處理。檢測器(又可稱為分析器或檢測引擎):負(fù)責(zé)分析和檢測入侵的任務(wù),并發(fā)出警報信號。知識庫:提供必要的數(shù)據(jù)信息支持。例如用戶歷史活動檔案,或者是檢測規(guī)則集合等??刂破鳎焊鶕?jù)警報信號,人工或者自動做出反應(yīng)動作。IDS基本結(jié)構(gòu)入侵檢測系統(tǒng)包括三個功能部件(1)信息收集(2)分析引擎(3)響應(yīng)部件信息搜集信息收集入侵檢測的第一步是信息收集,收集內(nèi)容包括系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)及用戶活動的狀態(tài)和行為需要在計算機(jī)網(wǎng)絡(luò)系統(tǒng)中的若干不同關(guān)鍵點(diǎn)(不同網(wǎng)段和不同主機(jī))收集信息盡可能擴(kuò)大檢測范圍從一個源來的信息有可能看不出疑點(diǎn)信息收集入侵檢測的效果很大程度上依賴于收集信息的可靠性和正確性要保證用來檢測網(wǎng)絡(luò)系統(tǒng)的軟件的完整性特別是入侵檢測系統(tǒng)軟件本身應(yīng)具有相當(dāng)強(qiáng)的堅固性,防止被篡改而收集到錯誤的信息信息收集的來源系統(tǒng)或網(wǎng)絡(luò)的日志文件網(wǎng)絡(luò)流量系統(tǒng)目錄和文件的異常變化程序執(zhí)行中的異常行為系統(tǒng)或網(wǎng)絡(luò)的日志文件攻擊者常在系統(tǒng)日志文件中留下他們的蹤跡,因此,充分利用系統(tǒng)和網(wǎng)絡(luò)日志文件信息是檢測入侵的必要條件日志文件中記錄了各種行為類型,每種類型又包含不同的信息,例如記錄“用戶活動”類型的日志,就包含登錄、用戶ID改變、用戶對文件的訪問、授權(quán)和認(rèn)證信息等內(nèi)容顯然,對用戶活動來講,不正常的或不期望的行為就是:重復(fù)登錄失敗、登錄到不期望的位置以及非授權(quán)的企圖訪問重要文件等等系統(tǒng)目錄和文件的異常變化網(wǎng)絡(luò)環(huán)境中的文件系統(tǒng)包含很多軟件和數(shù)據(jù)文件,包含重要信息的文件和私有數(shù)據(jù)文件經(jīng)常是黑客修改或破壞的目標(biāo)目錄和文件中的不期望的改變(包括修改、創(chuàng)建和刪除),特別是那些正常情況下限制訪問的,很可能就是一種入侵產(chǎn)生的指示和信號入侵者經(jīng)常替換、修改和破壞他們獲得訪問權(quán)的系統(tǒng)上的文件,同時為了隱藏系統(tǒng)中他們的表現(xiàn)及活動痕跡,都會盡力去替換系統(tǒng)程序或修改系統(tǒng)日志文件分析引擎分析引擎模式匹配統(tǒng)計分析完整性分析,往往用于事后分析模式匹配模式匹配就是將收集到的信息與已知的網(wǎng)絡(luò)入侵和系統(tǒng)誤用模式數(shù)據(jù)庫進(jìn)行比較,從而發(fā)現(xiàn)違背安全策略的行為一般來講,一種攻擊模式可以用一個過程(如執(zhí)行一條指令)或一個輸出(如獲得權(quán)限)來表示。該過程可以很簡單(如通過字符串匹配以尋找一個簡單的條目或指令),也可以很復(fù)雜(如利用正規(guī)的數(shù)學(xué)表達(dá)式來表示安全狀態(tài)的變化)統(tǒng)計分析統(tǒng)計分析方法首先給系統(tǒng)對象(如用戶、文件、目錄和設(shè)備等)創(chuàng)建一個統(tǒng)計描述,統(tǒng)計正常使用時的一些測量屬性(如訪問次數(shù)、操作失敗次數(shù)和延時等)測量屬性的平均值和偏差被用來與網(wǎng)絡(luò)、系統(tǒng)的行為進(jìn)行比較,任何觀察值在正常值范圍之外時,就認(rèn)為有入侵發(fā)生完整性分析完整性分析主要關(guān)注某個文件或?qū)ο笫欠癖桓?,包括文件和目錄的?nèi)容及屬性。響應(yīng)部件響應(yīng)動作簡單報警切斷連接封鎖用戶改變文件屬性最強(qiáng)烈反應(yīng):回?fù)艄粽呷肭謾z測系統(tǒng)性能關(guān)鍵參數(shù)誤報(falsepositive):如果系統(tǒng)錯誤地將異?;顒佣x為入侵漏報(falsenegative):如果系統(tǒng)未能檢測出真正的入侵行為入侵檢測系統(tǒng)的分類(1)按照分析方法(檢測方法)異常檢測模型(AnomalyDetection):首先總結(jié)正常操作應(yīng)該具有的特征(用戶輪廓),當(dāng)用戶活動與正常行為有重大偏離時即被認(rèn)為是入侵(白名單)誤用檢測模型(MisuseDetection):收集非正常操作的行為特征,建立相關(guān)的特征庫,當(dāng)監(jiān)測的用戶或系統(tǒng)行為與庫中的記錄相匹配時,系統(tǒng)就認(rèn)為這種行為是入侵(黑名單)入侵檢測系統(tǒng)的分類(2)網(wǎng)絡(luò)IDS:網(wǎng)絡(luò)IDS(NIDS)通常以非破壞方式使用。這種設(shè)備能夠捕獲LAN區(qū)域中的信息流并試著將實時信息流與已知的攻擊簽名進(jìn)行對照。主機(jī)IDS:主機(jī)入侵檢測系統(tǒng)(HIDS)是一種用于監(jiān)控單個主機(jī)上的活動的軟件應(yīng)用。監(jiān)控方法包括驗證操作系統(tǒng)與應(yīng)用調(diào)用及檢查日志文件、文件系統(tǒng)信息與網(wǎng)絡(luò)連接?;旌闲偷模悍植际絀DS(主機(jī)+網(wǎng)絡(luò))兩類IDS監(jiān)測軟件網(wǎng)絡(luò)IDS偵測速度快隱蔽性好視野更寬較少的監(jiān)測器占資源少主機(jī)IDS視野集中易于用戶自定義保護(hù)更加周密對網(wǎng)絡(luò)流量不敏感響應(yīng)策略要素系統(tǒng)用戶:入侵檢測系統(tǒng)用戶可以分為網(wǎng)絡(luò)安全專家或管理員、系統(tǒng)管理員、安全調(diào)查員。這三類人員對系統(tǒng)的使用目的、方式和熟悉程度不同,必須區(qū)別對待操作運(yùn)行環(huán)境:入侵檢測系統(tǒng)提供的信息形式依賴其運(yùn)行環(huán)境系統(tǒng)目標(biāo):為用戶提供關(guān)鍵數(shù)據(jù)和業(yè)務(wù)的系統(tǒng),需要部分地提供主動響應(yīng)機(jī)制規(guī)則或法令的需求:在某些軍事環(huán)境里,允許采取主動防御甚至攻擊技術(shù)來對付入侵行為響應(yīng)策略彈出窗口報警E-mail通知切斷TCP連接執(zhí)行自定義程序與其他安全產(chǎn)品交互:Firewall、SNMPTrapSNMPTrap(SNMP陷阱):某種入口,到達(dá)該入口會使SNMP被管設(shè)備主動通知SNMP管理器,而不是等待SNMP管理器的再次輪詢。入侵防護(hù)系統(tǒng)(IPS)IPS:入侵防護(hù)系統(tǒng)入侵保護(hù)系統(tǒng)(Intrusion-preventionsystem)是一部能夠監(jiān)視網(wǎng)絡(luò)或網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)資料傳輸行為的計算機(jī)網(wǎng)絡(luò)安全設(shè)備,能夠即時的中斷、調(diào)整或隔離一些不正?;蚴蔷哂袀π缘木W(wǎng)絡(luò)資料傳輸行為。IPS的產(chǎn)生:用戶需求超過70%攻擊在應(yīng)用層產(chǎn)生服務(wù)漏洞攻擊、SQL注入等<30%>70%L7(應(yīng)用層)L2-L4(網(wǎng)絡(luò)層)攻擊層次越來越高,超過70%的應(yīng)用層攻擊防火墻無法攔截位于旁路的IDS,雖然能有效檢測和告警入侵事件,但無法直接阻斷攻擊②檢測到攻擊①攻擊③將連接阻斷三種方式、逐漸進(jìn)步,但都未達(dá)到最優(yōu)防火墻與IDS聯(lián)動,沒有標(biāo)準(zhǔn)協(xié)議,有滯后現(xiàn)象,非最優(yōu)方案②檢測到攻擊①攻擊③阻斷策略(私有協(xié)議)IPS的基礎(chǔ)理念深層防御-需要深層分析和在線部署IPS是深層防御的最優(yōu)方案Y旁路部署深層分析IDS在線部署低層分析FWNNY入侵威脅無連接攻擊深層攻擊……在線部署深層分析IPSIPS工作原理IPS工作原理IPS實現(xiàn)實時檢查和阻止入侵的原理在于IPS擁有數(shù)目眾多的過濾器,能夠防止各種攻擊。當(dāng)新的攻擊手段被發(fā)現(xiàn)之后,IPS就會創(chuàng)建一個新的過濾器。IPS數(shù)據(jù)包處理引擎是專業(yè)化定制的集成電路,可以深層檢查數(shù)據(jù)包的內(nèi)容。如果有攻擊者利用Layer2(介質(zhì)訪問控制)至Layer7(應(yīng)用)的漏洞發(fā)起攻擊,IPS能夠從數(shù)據(jù)流中檢查出這些攻擊并加以阻止。傳統(tǒng)的防火墻只能對Layer3進(jìn)行檢查,不能檢測應(yīng)用層的內(nèi)容。防火墻的包過濾技術(shù)不會針對每一字節(jié)進(jìn)行檢查,因而也就無法發(fā)現(xiàn)攻擊活動,而IPS可以做到逐一字節(jié)地檢查數(shù)據(jù)包。防火墻防火墻傳統(tǒng)的包過濾和狀態(tài)檢測防火墻弱點(diǎn)如下:

沒有深度包檢測來發(fā)現(xiàn)惡意代碼,不進(jìn)行包重組,惡意程序可以通過信任端口建立隧道穿過去,傳統(tǒng)的部署方法僅僅是網(wǎng)絡(luò)邊緣,不能防御內(nèi)部攻擊分組IPS工作原理所有流經(jīng)IPS的數(shù)據(jù)包都被分類,分類的依據(jù)是數(shù)據(jù)包中的報頭信息,如源IP地址和目的IP地址、端口號和應(yīng)用域。每種過濾器負(fù)責(zé)分析相對應(yīng)的數(shù)據(jù)包。通過檢查的數(shù)據(jù)包可以繼續(xù)前進(jìn),包含惡意內(nèi)容的數(shù)據(jù)包就會被丟棄,被懷疑的數(shù)據(jù)包需要接受進(jìn)一步的檢查。針對不同的攻擊行為,IPS需要不同的過濾器。每種過濾器都設(shè)有相應(yīng)的過濾規(guī)則,為了確保準(zhǔn)確性,這些規(guī)則的定義非常廣泛。在對傳輸內(nèi)容進(jìn)行分類時,過濾引擎還需要參照數(shù)據(jù)包的信息參數(shù),并將其解析至一個有意義的域中進(jìn)行上下文分析,以提高過濾準(zhǔn)確性。IPS工作原理過濾器引擎集合了流水和大規(guī)模并行處理硬件,能夠同時執(zhí)行數(shù)千次的數(shù)據(jù)包過濾檢查。并行過濾處理可以確保數(shù)據(jù)包能夠不間斷地快速通過系統(tǒng),不會對速度造成影響。這種硬件加速技術(shù)對于IPS具有重要意義,因為傳統(tǒng)的軟件解決方案必須串行進(jìn)行過濾檢查,會導(dǎo)致系統(tǒng)性能大打折扣。IDS與IPS:技術(shù)同源入侵檢測IDS入侵防御IPS核心技術(shù)基礎(chǔ)一致名稱非常接近通常廠商均同時推出兩類產(chǎn)品很容易誤認(rèn)為是一種產(chǎn)品IPS能夠解決的安全問題阻攔已知攻擊(重點(diǎn))為已知漏洞提供虛擬補(bǔ)?。ㄖ攸c(diǎn))速率或流量控制行為管理安全域A安全域BIPSIPS可提供有效的、防火墻無法提供的應(yīng)用層安全防護(hù)功能。但為了避免誤報,IPS對未知攻擊的防御能力幾乎沒有。IDS能夠解決的安全問題總體威脅趨勢分析(重點(diǎn))流量及連接分析(重點(diǎn))安全事件分析(重點(diǎn))安全域A安全域BIDSIDS從總體和趨勢上的分析能力是其他安全設(shè)備難以實現(xiàn)的,通過基于流量、統(tǒng)計等方面的分析,IDS理論上擁有在未知攻擊特別是蠕蟲類攻擊爆發(fā)時進(jìn)行預(yù)警的能力。IDS、IPS部署方式對比IPSIDS在線,流量必須通過IPS旁路,通過鏡像獲得數(shù)據(jù)實時,其時延必須滿足業(yè)務(wù)要求準(zhǔn)實時,可接受秒級時延立刻影響網(wǎng)絡(luò)報文對網(wǎng)絡(luò)及業(yè)務(wù)無直接影響作用范圍有限制監(jiān)控范圍廣第二單元計劃(nids庫函數(shù)使用)1、IP分片2、IP分片重組數(shù)據(jù)結(jié)構(gòu)3、TCP會話管理4、TCP流管理數(shù)據(jù)結(jié)構(gòu)5、libndis開發(fā)流程6、TCP連接程序?qū)嵺`TCP/IP協(xié)議族圖譜TCP/IP不同層次中的協(xié)議

IP協(xié)議分片回顧IP協(xié)議要點(diǎn)IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)報格式傳輸,IP提供不可靠、無連接的數(shù)據(jù)報傳送。1、不可靠(unreliable)的意思是它不能保證IP數(shù)據(jù)報能成功地到達(dá)目的地。IP僅提供最好的傳輸服務(wù)。如果發(fā)生某種錯誤時,如某個路由器暫時用完了緩沖區(qū),IP有一個簡單的錯誤處理算法:丟棄該數(shù)據(jù)報,然后發(fā)送ICMP消息報給信源端。任何要求的可靠性必須由上層來提供(如TCP)。2、無連接(connectionless)這個術(shù)語的意思是IP并不維護(hù)任何關(guān)于后續(xù)數(shù)據(jù)報的狀態(tài)信息。每個數(shù)據(jù)報的處理是相互獨(dú)立的。這也說明,IP數(shù)據(jù)報可以不按發(fā)送順序接收。如果一信源向相同的信宿發(fā)送兩個連續(xù)的數(shù)據(jù)報(先是A,然后是B),每個數(shù)據(jù)報都是獨(dú)立地進(jìn)行路由選擇,可能選擇不同的路線,因此B可能在A到達(dá)之前先到達(dá)。

IP報文格式(20bytes)

版本4bits首部長度4bits服務(wù)類型TOS8bits總長度16bits標(biāo)識Ident16bits標(biāo)志Flag3bits片偏移13bitsTTL8bits協(xié)議號8bits首部檢驗和16bits源IP地址32bits目的IP地址32bits選項(可選)1234567812345678123456780371531字段名長度(字節(jié))描述版本號1/2(4比特)標(biāo)識用來產(chǎn)生數(shù)據(jù)報的IP版本。相對于IPv4,該號為4。這個字段確??赡苓\(yùn)行不同IP版本的的設(shè)備之間的兼容性。首部長度(IHL)1/2(4比特)以32比特的字來定義IP首部的長度。服務(wù)類型(TOS)1一個用于攜帶提供服務(wù)質(zhì)量特征信息的字段,如IP數(shù)據(jù)報的優(yōu)先交付。該字段并沒有如初始定義被廣泛使用,它的含義被一個稱為區(qū)分服務(wù)的技術(shù)而重新定義使用總長度(TL)2指定了IP數(shù)據(jù)報的總長度,按字節(jié)計。由于這個字段是16比特寬,一個IP數(shù)據(jù)報的最大長度是65535字節(jié),盡管大多數(shù)都小得多標(biāo)識2以便交付過程中在路由器上必須要分片時使用。接收方使用該字段來重新組裝報文而不會意外地把來自不同報文的分片混在一起。需要該字段是因為分片可能來自混合在一起的多個報文,因為來自于任一臺設(shè)備的IP數(shù)據(jù)報可以被無序地接收標(biāo)志3/8(3比特)3個控制標(biāo)志,兩個用于管理分片,一個是預(yù)留的。參見表2片偏移15/8(13比特)當(dāng)一個報文出現(xiàn)分片時,該字段指定了在這個分片中的數(shù)據(jù)位于報文中的偏移量,或位置,偏移值以8字節(jié)為單位(64比特)。第一個分片的偏移量是0

生存期(TTL)1該字段指定了數(shù)據(jù)報在網(wǎng)絡(luò)上允許存活的時間,以路由器跳數(shù)計。每個路由器在發(fā)送數(shù)據(jù)報前會減少這個字段的值(減1):如果TTL字段減到0,該數(shù)據(jù)報被認(rèn)為歷經(jīng)了一條太長的路由,則被丟棄協(xié)議1標(biāo)識在數(shù)據(jù)報中攜帶的較高層協(xié)議(通常是一個運(yùn)輸層協(xié)議或封裝的網(wǎng)絡(luò)層協(xié)議)。表3說明了該字段的協(xié)議值,這些值最初由IETF“地址分配”標(biāo)準(zhǔn)RFC1700定義,現(xiàn)在由因特網(wǎng)地址分配委員會(IANA)維護(hù)首部校驗值2檢驗和在首部上進(jìn)行計算,提供傳輸中基本的差錯保護(hù)。它不是數(shù)據(jù)鏈路層技術(shù)如以太網(wǎng)等常用的較復(fù)雜的循環(huán)冗余檢測(CRC)碼;它只是一個16比特檢驗和。它通過把首部字節(jié)分為兩個字(一個字是兩字節(jié))然后相加而計算得到。著有首部(不是數(shù)據(jù))被計算檢驗和。在每一跳,設(shè)備收到數(shù)據(jù)報都要做檢查和計算,如果兩個檢驗和不相同,它認(rèn)為數(shù)據(jù)報損壞將其丟棄源地址4它是數(shù)據(jù)報的發(fā)起者的32比特IP地址。注意即使中間設(shè)備如路由器可能處理該數(shù)據(jù)報,它們通常不把它們的地址放入該字段,這個地址總是最初發(fā)送該數(shù)據(jù)報的設(shè)備的地址目的地址4它是數(shù)據(jù)報的期望接收方的32比特IP地址。同樣,即使如路由器等設(shè)備可能是數(shù)據(jù)報的中間目標(biāo),該字段總是用于定義最終目的地選項可變的一種或幾種類型的選項可能被包含在某個IP數(shù)據(jù)報標(biāo)準(zhǔn)首部的后面。填充可變的如果包含一個或多個選項,且用于它們的比特數(shù)不是32的倍數(shù),那么就需要添加足夠的0來填充首部,使它成為32比特的倍數(shù)(4字節(jié))數(shù)據(jù)可變的這時在數(shù)據(jù)報中要傳輸?shù)臄?shù)據(jù)。它是一個完整的較高層報文或報文的一個分片標(biāo)志長度(字節(jié))描述(3比特)預(yù)留1/8(1比特)未使用DF1/8(1比特)當(dāng)設(shè)為1時,這說明數(shù)據(jù)報不應(yīng)該被分片。由于分片過程通常不為較高層所見,大部分的協(xié)議并不關(guān)心這個過程,也不設(shè)置該標(biāo)志。然而,它可用于測試一條鏈路的最大傳輸單元(MTU)MF1/8(1比特)當(dāng)設(shè)為0時,指明是報文的最后一片;當(dāng)設(shè)為1時,它指示被分片的報文中還有許多分片未到達(dá)。如果對一個報文沒有分片,只存在一個分片(整個報文),該標(biāo)志為0。如果使用分片,除了最后一個分片外該標(biāo)志都是1,因而接收方可以知道什么時候所有的分片都已發(fā)送IP分片任何IP層接收到一份要發(fā)送的IP數(shù)據(jù)報時,它要判斷向本地哪個接口發(fā)送數(shù)據(jù),并查詢該接口的MTU。IP把MTU與數(shù)據(jù)報的長度進(jìn)行比較,如果需要則進(jìn)行分片。分片可以發(fā)生在原始發(fā)送端主機(jī)上,也可以發(fā)送在中間路由器上。IP數(shù)據(jù)報分片后,只有到達(dá)目的主機(jī)后才進(jìn)行重裝。分片數(shù)據(jù)組包把一份IP數(shù)據(jù)報分片以后,只有到達(dá)目的地才進(jìn)行重新組裝(這里的重新組裝與其他網(wǎng)絡(luò)協(xié)議不同,它們要求在下一站就進(jìn)行進(jìn)行重新組裝,而不是在最終的目的地)。重新組裝由目的端的IP層來完成,其目的是使分片和重新組裝過程對運(yùn)輸層(TCP和UDP)是透明的,除了某些可能的越級操作外。已經(jīng)分片過的數(shù)據(jù)報有可能會再次進(jìn)行分片(可能不止一次)。IP分片標(biāo)識與標(biāo)志字段IP首部中包含的數(shù)據(jù)為分片和重新組裝提供了足夠的信息。對于發(fā)送端發(fā)送的每份IP數(shù)據(jù)報來說,其標(biāo)識字段(Identification)都包含一個唯一值。該值在數(shù)據(jù)報分片時被復(fù)制到每個片中(我們現(xiàn)在已經(jīng)看到這個字段的用途)。標(biāo)志字段(Flags)用其中一個比特來表示“更多的片”。除了最后一片外,其他每個組成數(shù)據(jù)報的片都要把該比特置1。片偏移字段指的是該片偏移原始數(shù)據(jù)報開始處的位置。IP分片重組主要數(shù)據(jù)結(jié)構(gòu)

IP首部與分片有關(guān)的字段

1、對于每份IP數(shù)據(jù)報來說,都有一個標(biāo)識字段,該值在分片時被復(fù)制到每個片中2、標(biāo)志字段用其中一個bit表示“更多的片”,除最后一片外,其他每個分片都要設(shè)置為1。3、片偏移字段指的是該片偏移原始數(shù)據(jù)報開始處的位置。4、數(shù)據(jù)報被分片后,每個片的總長度要改為該片的長度值。5、標(biāo)志字段中有一個bit表示“不分片”,如果該位1,IP將不對數(shù)據(jù)報進(jìn)行分片IP報即使丟失一片數(shù)據(jù)報也要重傳整個數(shù)據(jù)報。為什么呢?因為IP層沒有超時重傳的機(jī)制,必須由更高層負(fù)責(zé)超時重傳。IP首部與分片有關(guān)的字段一、三個字段1、標(biāo)識字段(ip_id):標(biāo)識特定數(shù)據(jù)報的分片2、標(biāo)志字段(ip_off的3個高位比特,第1位:保留,第二位:DF,第三位:MF)3、偏移字段(ip_off的13個低位比特:offset)

二、幾個區(qū)別1、普通IP包:offset、MF為02、最后一個分片包:offset>0、MF為03、其它分片包:offset≥0、MF為1Libnids分片重組流程LIbnids分片重組流程TCP有限狀態(tài)機(jī)

IP報文格式(20bytes)

版本4bits首部長度4bits服務(wù)類型TOS8bits總長度16bits標(biāo)識Ident16bits標(biāo)志Flag3bits片偏移13bitsTTL8bits協(xié)議號8bits首部檢驗和16bits源IP地址32bits目的IP地址32bits選項(可選)1234567812345678123456780371531傳輸控制協(xié)議(TCP)TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transportlayer)通信協(xié)議。TCP在IP報文的協(xié)議號是6。特點(diǎn):(1)提供面向連接的服務(wù),但不提供廣播或多播服務(wù)。(2)提供可靠的服務(wù),使用確認(rèn)機(jī)制來檢查數(shù)據(jù)是否安全、完整地到達(dá)。(3)面向字節(jié)流(Stream)。(4)提供全雙工通信。傳輸控制協(xié)議(TCP)TCP提供了可靠的傳輸服務(wù),這是通過下列方式提供的:應(yīng)用數(shù)據(jù)被分割成TCP認(rèn)為最適合發(fā)送的數(shù)據(jù)塊。由TCP傳遞給IP的信息單位稱為報文段或段(segment)當(dāng)TCP發(fā)出一個段后,它啟動一個定時器,等待目的端確認(rèn)收到這個報文段。如果不能及時收到一個確認(rèn),將重發(fā)這個報文段。當(dāng)TCP收到發(fā)自TCP連接另一端的數(shù)據(jù),它將發(fā)送一個確認(rèn)。這個確認(rèn)不是立即發(fā)送,通常將推遲幾分之一秒。TCP通常用一個ACK來確認(rèn)多個報文段IP數(shù)據(jù)報會發(fā)生重復(fù),TCP的接收端丟棄重復(fù)的數(shù)據(jù)。傳輸控制協(xié)議(TCP)TCP將保持它首部和數(shù)據(jù)的檢驗和。這是一個端到端的檢驗和,目的是檢測數(shù)據(jù)在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認(rèn)收到此報文段(希望發(fā)端超時并重發(fā))。由于IP數(shù)據(jù)報的到達(dá)可能會失序,因此TCP報文段的到達(dá)也可能會失序。TCP將對收到的數(shù)據(jù)進(jìn)行重新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。TCP還能提供流量控制。TCP連接的每一方都有固定大小的緩沖空間。TCP的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止較快主機(jī)致使較慢主機(jī)的緩沖區(qū)溢出。768HTCP面向流的概念發(fā)送TCP報文段發(fā)送方接收方把字節(jié)寫入發(fā)送緩存從接收緩存讀取字節(jié)應(yīng)用進(jìn)程應(yīng)用進(jìn)程1230181716151419202145131211H109H加上TCP首部構(gòu)成TCP報文段TCPTCP字節(jié)流字節(jié)流H表示TCP報文段的首部x表示序號為x的數(shù)據(jù)字節(jié)TCP連接1.字節(jié)號:TCP把連接中發(fā)送的所有數(shù)據(jù)字節(jié)都編上號,每一個方向的編號都是獨(dú)立的(1)接收應(yīng)用層數(shù)據(jù),存入緩存;(2)產(chǎn)生一個隨機(jī)數(shù)作為第一個字節(jié)的編號;例如:隨機(jī)數(shù)為1057,數(shù)據(jù)總共有6000字節(jié),則編號從1057-7056。2.序號:當(dāng)字節(jié)編上號以后,就給每一個報文段指派一個序號。序號是在這個報文字段中的第一個字節(jié)數(shù)據(jù)的編號。3.確認(rèn)號:TCP通信是全雙工的,連接建立后,每一方都以不同的開始字節(jié)號對字節(jié)編號,序號表示報文段攜帶的第一個字節(jié)數(shù)據(jù)的編號,確認(rèn)號定義了這一方期望接收的下一個字節(jié)的編號。把正確收到的最后一個字節(jié)的編號+1作為確認(rèn)號。編號系統(tǒng)TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充緊急URG——當(dāng)URG1時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級的數(shù)據(jù))。位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充確認(rèn)ACK——只有當(dāng)ACK1時確認(rèn)號字段才有效。當(dāng)ACK0時,確認(rèn)號無效。位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充推送PSH(PuSH)——接收TCP收到PSH=1的報文段,就盡快地交付接收應(yīng)用進(jìn)程,而不再等到整個緩存都填滿了后再向上交付。位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充復(fù)位RST(ReSeT)——當(dāng)RST1時,表明TCP連接中出現(xiàn)嚴(yán)重差錯(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重新建立傳輸連接。位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充終止FIN(FINis)——用來釋放一個連接。FIN1表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放傳輸連接。位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充窗口字段——占2字節(jié),用來讓對方設(shè)置發(fā)送窗口的依據(jù),單位為字節(jié)。位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充檢驗和——占2字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在TCP報文段的前面加上12字節(jié)的偽首部。位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充選項字段——長度可變。TCP最初只規(guī)定了一種選項,即最大報文段長度MSS。MSS告訴對方TCP:“我的緩存所能接收的報文段的數(shù)據(jù)字段的最大長度是MSS個字節(jié)。”位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充緊急指針字段——占16位,指出在本報文段中緊急數(shù)據(jù)共有多少個字節(jié)(緊急數(shù)據(jù)放在本報文段數(shù)據(jù)的最前面)。位08162431TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG填充填充字段——這是為了使整個首部長度是4字節(jié)的整數(shù)倍。位08162431TCP的連接管理面向連接的傳輸需要3個階段:連接建立、數(shù)據(jù)傳輸和連接終止。TCP連接的管理就是使傳輸連接的建立和釋放都能正常地進(jìn)行。TCP連接的建立三次握手過程,采用客戶/服務(wù)器方式。服務(wù)器告訴自己的TCP已經(jīng)準(zhǔn)備好接受連接,稱為被動打開請求。(被動等待連接建立)客戶程序發(fā)出請求叫做主動打開。(主動發(fā)起連接的建立)TCP三次握手(事件/動作)發(fā)送第一個SYN的一端將執(zhí)行主動打開(activeopen),接收這個SYN并發(fā)回下一個SYN的另一端執(zhí)行被動打開(passiveopen)。另外,TCP的握手協(xié)議被精心設(shè)計為可以處理同時打開(simultaneousopen),對于同時打開它僅建立一條連接而不是兩條連接。因此,連接可以由任一方或雙方發(fā)起,一旦連接建立,數(shù)據(jù)就可以雙向?qū)Φ鹊亓鲃?,而沒有所謂的主從關(guān)系。三次握手協(xié)議是連接兩端正確同步的充要條件。因為TCP建立在不可靠的分組傳輸服務(wù)之上,報文可能丟失、延遲、重復(fù)和亂序,因此協(xié)議必須使用超時和重傳機(jī)制。如果重傳的連接請求和原先的連接請求在連接正在建立時到達(dá),或者當(dāng)一個連接已經(jīng)建立、使用和結(jié)束之后,某個延遲的連接請求才到達(dá),就會出現(xiàn)問題。采用三次握手協(xié)議(加上這樣的規(guī)則:在連接建立之后TCP就不再理睬又一次的連接請求)就可以解決這些問題。在TCP建立連接后,就可以開始傳輸數(shù)據(jù)了。TCP工作在全雙工模式,它可以同時進(jìn)行雙向數(shù)據(jù)傳輸。服務(wù)器向客戶端發(fā)送一個數(shù)據(jù)包后,客戶端收到這個數(shù)據(jù)包后,會向服務(wù)器發(fā)送一個確認(rèn)數(shù)據(jù)包。傳輸數(shù)據(jù)的簡要過程如下:1)發(fā)送數(shù)據(jù):服務(wù)器向客戶端發(fā)送一個帶有數(shù)據(jù)的數(shù)據(jù)包,該數(shù)據(jù)包中的序列號和確認(rèn)號與建立連接第三步的數(shù)據(jù)包中的序列號和確認(rèn)號相同;2)確認(rèn)收到:客戶端收到該數(shù)據(jù)包,向服務(wù)器發(fā)送一個確認(rèn)數(shù)據(jù)包,該數(shù)據(jù)包中,序列號是為對應(yīng)需確認(rèn)的數(shù)據(jù)包中的確認(rèn)號值,而確認(rèn)號為服務(wù)器發(fā)送的對應(yīng)需確認(rèn)的數(shù)據(jù)包的序列號+該數(shù)據(jù)包中所帶數(shù)據(jù)的大小。數(shù)據(jù)分段中的序列號可以保證所有傳輸?shù)臄?shù)據(jù)按照正常的次序進(jìn)行重組,而且通過確認(rèn)保證數(shù)據(jù)傳輸?shù)耐暾浴CP數(shù)據(jù)傳送(B向A傳數(shù)據(jù))三次握手過程1)主動關(guān)閉端發(fā)送一個FIN報文段:FIN(seq:x,ack:y,F(xiàn))。2)服務(wù)器端發(fā)送一個FIN+ACK報文段:FIN+ACK(seq:y,ack:x+1,A,F)3)發(fā)送一個ACK報文段:ACK(seq:x,ack:y+1,A)四次握手過程半關(guān)閉連接TCP的連接釋放TCP連接關(guān)閉終止一個連接要經(jīng)過4次握手。這是因為TCP的半關(guān)閉(half-close)造成的。由于一個TCP連接是全雙工(即數(shù)據(jù)在兩個方向上能同時傳遞),因此每個方向必須單獨(dú)地進(jìn)行關(guān)閉。關(guān)閉的原則就是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個FIN來終止這個方向連接。當(dāng)一端收到一個FIN,它必須通知應(yīng)用層另一端已經(jīng)終止了那個方向的數(shù)據(jù)傳送。發(fā)送FIN通常是應(yīng)用層進(jìn)行關(guān)閉的結(jié)果。本方啟動關(guān)閉本方啟動關(guān)閉:收到本方應(yīng)用進(jìn)程的關(guān)閉命令(CLOSE)后,TCP在發(fā)送完尚未處理的報文段后,發(fā)FIN=1的報文段給對方,且TCP不再受理本方應(yīng)用進(jìn)程的數(shù)據(jù)發(fā)送。在FIN以前發(fā)送的數(shù)據(jù)字節(jié),包括FIN,都需要對方確認(rèn),否則要重傳。注意FIN也占一個順序號。一旦收到對方對FIN的確認(rèn)以及對方的FIN報文段,本方TCP就對該FIN進(jìn)行確認(rèn),在等待一段時間,然后關(guān)閉連接。等待是為了防止本方的確認(rèn)報文丟失,避免對方的重傳報文干擾新的連接。對方啟動關(guān)閉當(dāng)TCP收到對方發(fā)來的FIN報文時,發(fā)ACK確認(rèn)此FIN報文,并通知應(yīng)用進(jìn)程連接正在關(guān)閉。應(yīng)用進(jìn)程將以關(guān)閉命令響應(yīng)。TCP在發(fā)送完尚未處理的報文段后,發(fā)一個FIN報文給對方TCP,然后等待對方對FIN的確認(rèn),收到確認(rèn)后關(guān)閉連接。若對方的確認(rèn)未及時到達(dá),在等待一段時間后也關(guān)閉連接。

雙方同時啟動關(guān)閉

連接雙方的應(yīng)用進(jìn)程同時發(fā)關(guān)閉命令,則雙方TCP在發(fā)送完尚未處理的報文段后,發(fā)送FIN報文。各方TCP在FIN前所發(fā)報文都得到確認(rèn)后,發(fā)ACK確認(rèn)它收到的FIN。各方在收到對方對FIN的確認(rèn)后,同樣等待一段時間再關(guān)閉連接。這稱之為同時關(guān)閉(simultaneousclose)。TCP狀態(tài)機(jī)TCP協(xié)議的操作可以使用一個具有11種狀態(tài)的有限狀態(tài)機(jī)(FiniteStateMachine)來表示,圖中的圓角矩形表示狀態(tài),箭頭表示狀態(tài)之間的轉(zhuǎn)換,圖中用粗線表示客戶端主動和被動的服務(wù)器端建立連接的正常過程:客戶端的狀態(tài)變遷用粗實線,服務(wù)器端的狀態(tài)變遷用粗虛線。細(xì)線用于不常見的序列,如復(fù)位、同時打開、同時關(guān)閉等。TCP狀態(tài)機(jī)TCP狀態(tài)機(jī)圖中的每條狀態(tài)變換線上均標(biāo)有事件/動作”:事件:是指(1)用戶執(zhí)行了系統(tǒng)調(diào)用(CONNECT、LISTEN、SEND或CLOSE)、(2)收到一個報文段(SYN、FIN、ACK或RST)、(3)出現(xiàn)了超過兩倍最大的分組生命期的情況;動作:是指(1)發(fā)送一個報文段(SYN、FIN或ACK),(2)什么也沒有(用“-”表示)。TCP

態(tài)

機(jī)CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主動打開被動打開被動關(guān)閉主動關(guān)閉起點(diǎn)(1)被動打開:LISTEN(2)主動打開/發(fā)送SYNCONNET/SYN同時打開收到SYN/發(fā)送SYN,ACK(5)收到ACK/-數(shù)據(jù)傳送階段(9)關(guān)閉CLOSE/發(fā)送FIN(6)關(guān)閉CLOSE/發(fā)送FIN關(guān)閉發(fā)送FIN收到RST/-(3)收到SYN/發(fā)送SYN,ACK關(guān)閉或超時(11)收到ACK/-(4)收到SYN,ACK/發(fā)送ACK收到ACK/-(8)收到ACK/-(10)收到FIN/發(fā)送ACK收到FIN,ACK/發(fā)送ACK收到FIN/發(fā)送ACK同時關(guān)閉(7)收到FIN/發(fā)送ACK發(fā)送SEND/SYN定時經(jīng)過兩倍報文段壽命后關(guān)閉TCP狀態(tài)說明CLOSED:關(guān)閉狀態(tài),沒有連接活動或正在進(jìn)行LISTEN:監(jiān)聽狀態(tài),服務(wù)器正在等待連接進(jìn)入SYNRCVD:收到一個連接請求,尚未確認(rèn)SYNSENT:已經(jīng)發(fā)出連接請求,等待確認(rèn)ESTABLISHED:連接建立,正常數(shù)據(jù)傳輸狀態(tài)FINWAIT1:(主動關(guān)閉)已經(jīng)發(fā)送關(guān)閉請求,等待確認(rèn)FINWAIT2:(主動關(guān)閉)收到對方關(guān)閉確認(rèn),等待對方關(guān)閉請求TIMEDWAIT:完成雙向關(guān)閉,等待所有分組死掉CLOSING:雙方同時嘗試關(guān)閉,等待對方確認(rèn)CLOSEWAIT:(被動關(guān)閉)收到對方關(guān)閉請求,已經(jīng)確認(rèn)LASTACK:(被動關(guān)閉)等待最后一個關(guān)閉確認(rèn),并等待所有分組死掉每個連接均開始于CLOSED狀態(tài)。當(dāng)一方執(zhí)行了被動的連接原語(LISTEN)或主動的連接原語(CONNECT)時,它便會脫離CLOSED狀態(tài)。如果此時另一方執(zhí)行了相對應(yīng)的連接原語,連接便建立了,并且狀態(tài)變?yōu)镋STABLISHED。任何一方均可以首先請求釋放連接,當(dāng)連接被釋放后,狀態(tài)又回到了CLOSED。正常狀態(tài)轉(zhuǎn)換(握手)(1)服務(wù)器端首先執(zhí)行LISTEN原語進(jìn)入被動打開狀態(tài)(LISTEN),等待客戶端連接;(2)當(dāng)客戶端的一個應(yīng)用程序發(fā)出CONNECT命令后,本地的TCP實體為其創(chuàng)建一個連接記錄并標(biāo)記為SYNSENT狀態(tài),然后給服務(wù)器發(fā)送一個SYN報文段;(3)服務(wù)器收到一個SYN報文段,其TCP實體給客戶端發(fā)送確認(rèn)ACK報文段同時發(fā)送一個SYN信號,進(jìn)入SYNRCVD狀態(tài);(4)客戶端收到SYN+ACK報文段,其TCP實體給服務(wù)器端發(fā)送出三次握手的最后一個ACK報文段,并轉(zhuǎn)換為ESTABLISHED狀態(tài);(5)服務(wù)器端收到確認(rèn)的ACK報文段,完成了三次握手,于是也進(jìn)入ESTABLISHED狀態(tài)。正常狀態(tài)轉(zhuǎn)換(ESTABLISHED狀態(tài):數(shù)據(jù)傳輸)在此狀態(tài)下,雙方可以自由傳輸數(shù)據(jù)。當(dāng)一個應(yīng)用程序完成數(shù)據(jù)傳輸任務(wù)后,它需要關(guān)閉TCP連接。假設(shè)仍由客戶端發(fā)起主動關(guān)閉連接。正常狀態(tài)轉(zhuǎn)換(揮手)客戶端執(zhí)行CLOSE原語,本地的TCP實體發(fā)送一個FIN報文段并等待響應(yīng)的確認(rèn)(進(jìn)入狀態(tài)FINWAIT1);服務(wù)器收到一個FIN報文段,它確認(rèn)客戶端的請求發(fā)回一個ACK報文段,進(jìn)入CLOSEWAIT狀態(tài);客戶端收到確認(rèn)ACK報文段,就轉(zhuǎn)移到FINWAIT2狀態(tài),此時連接在一個方向上就斷開了;服務(wù)器端應(yīng)用得到通告后,也執(zhí)行CLOSE原語關(guān)閉另一個方向的連接,其本地TCP實體向客戶端發(fā)送一個FIN報文段,并進(jìn)入LASTACK狀態(tài),等待最后一個ACK確認(rèn)報文段;客戶端收到FIN報文段并確認(rèn),進(jìn)入TIMEDWAIT狀態(tài),此時雙方連接均已經(jīng)斷開,但TCP要等待一個2倍報文段最大生存時間MSL(MaximumSegmentLifetime),確保該連接的所有分組全部消失,以防止出現(xiàn)確認(rèn)丟失的情況。當(dāng)定時器超時后,TCP刪除該連接記錄,返回到初始狀態(tài)(CLOSED)。服務(wù)器收到最后一個確認(rèn)ACK報文段,其TCP實體便釋放該連接,并刪除連接記錄,返回到初始狀態(tài)(CLOSED)。TCP_Stream狀態(tài)(NIDS)NIDS_JUST_EST:表示TCP連接建立,在此狀態(tài)下就可以決定是否對此TCP連接進(jìn)行數(shù)據(jù)分析,可以決定是否捕獲TCP客戶端接收的數(shù)據(jù)、TCP服務(wù)器端接收的數(shù)據(jù)、TCP客戶端接收的緊急數(shù)據(jù)或者TCP服務(wù)器端接收的緊急數(shù)據(jù);NIDS_CLOSE:表示TCP連接正常關(guān)閉;NIDS_RESET:表示TCP連接被重置關(guān)閉;NIDS_TIMED_OUT:表示由于超時TCP連接被關(guān)閉;NIDSEXITING:表示Libnids正在退出,在這個狀態(tài)下可以最后一次使用存儲在halfstream數(shù)據(jù)結(jié)構(gòu)中的緩存數(shù)據(jù);NIDS_DATA:表示接收數(shù)據(jù)的狀態(tài),在這個狀態(tài)可以判斷是否有新的數(shù)據(jù)到達(dá),如果有就可以把數(shù)據(jù)存儲起來,可以在這個狀態(tài)之中來分析TCP傳輸?shù)臄?shù)據(jù),此數(shù)據(jù)就存儲在half_stream數(shù)據(jù)結(jié)構(gòu)的緩存之中。Libnids主要數(shù)據(jù)結(jié)構(gòu)與函數(shù)tcp_streamstructtcp_stream{structtuple4addr;//tcp連接的四個重要信息charnids_state;//表示連接的邏輯狀態(tài)//狀態(tài):NIDS_JUST_EST表示一個剛剛建立的連接,NIDS_DATA表示連接接收到新的數(shù)據(jù),//NIDS_CLOSE、NIDS_RESET和NIDS_TIMEOUT,表示該連接已經(jīng)關(guān)閉了structlurker_node*listeners;//給TCP處理的回調(diào)函數(shù)使用,其中有一成員指向回調(diào)函數(shù)structhalf_streamclient;structhalf_streamserver;structtcp_stream*next_node;structtcp_stream*prev_node;inthash_index;structtcp_stream*next_time;structtcp_stream*prev_time;intread;//本次讀進(jìn)數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)的長度structtcp_stream*next_free;//指向下一個空閑tcp結(jié)構(gòu)};TCP_STREAMtcp_stream數(shù)據(jù)結(jié)構(gòu)描述了一個TCP連接的完整信息,包括的內(nèi)容非常豐富,它是Libnids開發(fā)包中最重要一個數(shù)據(jù)結(jié)構(gòu)。其中開發(fā)者需要注意的成員有以下幾種:●成員addr是一個tuple4類型的成員,它表示了一個TCP連接的四個重要信息:源IP地址、源端口號、目的IP地址和目的端口號?!癯蓡Tnids_state表示連接的邏輯狀態(tài),共有六種狀態(tài)●成員client表示客戶端信息,成員server表示服務(wù)器端信息,它們都是half_stream類型的。這樣tcp_stream數(shù)據(jù)結(jié)構(gòu)就描述了一個完整的TCP連接的所有信息。tuple4Structtuple4{u_shortsource;u_shortdest;u_intsaddr;u_intdaddr;};tuple4數(shù)據(jù)結(jié)構(gòu)描述的是一個地址端口對,它表示發(fā)送方IP和端口以及接收方IP和端口,當(dāng)它用于TCP連接時,其具體意義描述如下;●成員saddr表示一個TCP連接的一端IP地址,稱為源IP地址;●成員daddr表示一個TCP連接的另一端IP地址,稱為目的IP地址,注意此時的源和目的只是相對的;●成員source表示源IP地址的端口號;●成員dest表示目的IP地址的目的端口號。tuple4數(shù)據(jù)結(jié)構(gòu)包括描述TCP連接的四個重要參數(shù)信息:源IP地址、目的IP地址,源端口和目的端口。當(dāng)然,此數(shù)據(jù)不僅能用在TCP協(xié)議分析中,也可以用在UDP協(xié)議分析之中,此時它表示UDP發(fā)送方的IP地址和端口,以及UDP接收方的IP地址和端口。TCP_Stream狀態(tài)NIDS_JUST_EST:表示TCP連接建立,在此狀態(tài)下就可以決定是否對此TCP連接進(jìn)行數(shù)據(jù)分析,可以決定是否捕獲TCP客戶端接收的數(shù)據(jù)、TCP服務(wù)器端接收的數(shù)據(jù)、TCP客戶端接收的緊急數(shù)據(jù)或者TCP服務(wù)器端接收的緊急數(shù)據(jù);NIDS_CLOSE:表示TCP連接正常關(guān)閉;NIDS_RESET:表示TCP連接被重置關(guān)閉;NIDS_TIMED_OUT:表示由于超時TCP連接被關(guān)閉;NIDSEXITING:表示Libnids正在退出,在這個狀態(tài)下可以最后一次使用存儲在halfstream數(shù)據(jù)結(jié)構(gòu)中的緩存數(shù)據(jù);NIDS_DATA:表示接收數(shù)據(jù)的狀態(tài),在這個狀態(tài)可以判斷是否有新的數(shù)據(jù)到達(dá),如果有就可以把數(shù)據(jù)存儲起來,可以在這個狀態(tài)之中來分析TCP傳輸?shù)臄?shù)據(jù),此數(shù)據(jù)就存儲在half_stream數(shù)據(jù)結(jié)構(gòu)的緩存之中。TCP連接的邏輯狀態(tài)

/*Libnids

狀態(tài)描述的是連接的邏輯狀態(tài)

,

真正的

TCP

連接狀態(tài)有

11

.

*TCP_ESTABLISHED

TCP

連接建立

,

開始傳輸數(shù)據(jù)

*TCP_SYN_SEND

主動打開

*TCP_SYN_RECV

接受

SYN

*TCP_FIN_WAIT1

*TCP_FIN_WAIT2

*TCP_TIME_WAIT

*TCP_CLOSE

*TCP_CLOSE_WAIT

*TCP_LAST_ACK

*TCP_LISTEN

*TCP_CLOSING

*/half_streamstructhalf_stream

/*

描述在

TCP

連接中一端的所有信息

,

可以是客戶端

,

也可以是服務(wù)端

*/{

charstate;

/*

表示套接字的狀態(tài)

,

也就是

TCP

的狀態(tài)

*/

charcollect;

/*

可以表示有數(shù)據(jù)到達(dá)

,

此數(shù)據(jù)存放在

data

成員中

,

也可以表示不存儲此數(shù)據(jù)到

data

,

此數(shù)據(jù)忽略

.

如果大于

0

就存儲

,

否則就忽略

*/

charcollect_urg;

/*

可以表示有緊急數(shù)據(jù)到達(dá)

,

此數(shù)據(jù)就存放在

urgdata

,

也可以表示不存儲此數(shù)據(jù)到

urgdata

,

此速數(shù)據(jù)忽略

.

如果大于

0

就存儲

,

否則就忽略

*/

char*data;

/*

用戶存儲正常接受到的數(shù)據(jù)

*/

intoffset;

/*

表示存儲在

data

中數(shù)據(jù)的第一個字節(jié)的偏移量

*/

intcount;

/*

表示從

TCP

連接開始已經(jīng)存儲到

data

中的數(shù)據(jù)的字節(jié)數(shù)

*/

intcount_new;

/*

有多少新的數(shù)據(jù)存儲到

data

,

如果為

0,

則表示沒有新的數(shù)據(jù)到達(dá)

*/

intbufsize;

intrmem_alloc;

inturg_count;

/*

用來存儲緊急數(shù)據(jù)

*/half_stream

u_intacked;

u_intseq;

u_intack_seq;

u_intfirst_data_seq;

u_charurgdata;

u_charcount_new_urg;

/*

表示有新的緊急數(shù)據(jù)到達(dá)

,

如果為

0

表示沒有新的緊急數(shù)據(jù)

*/

u_charurg_seen;

u_inturg_ptr;

u_shortwindow;

u_charts_on;

u_charwscale_on;

u_intcurr_ts;

u_intwscale;

structskbuff*list;

structskbuff*listtail;};

halfstream雖然數(shù)據(jù)結(jié)構(gòu)halfstream的成員非常多,但需要開發(fā)者特別注意的就那么幾個。其中成員state非常重要,它表示了當(dāng)前的TCP連接狀態(tài),只有知道了TCP連接狀態(tài)之后,才能進(jìn)行下一步的動作。成員data用來存儲接收到的正常的網(wǎng)絡(luò)數(shù)據(jù)信息,而urgdata用來存儲接收到的緊急數(shù)據(jù)。判斷是否有新的正常數(shù)據(jù)到達(dá),是利用成員count_new來進(jìn)行判斷的:判斷是否有新的緊急數(shù)據(jù)到達(dá),是用成員count_new_urg來進(jìn)行判斷的。如果count_new大于0,就表示有新的正常數(shù)據(jù)到達(dá);如果count_new_urg大于O,就表示有新的緊急數(shù)據(jù)達(dá)到。然后就可以輸出新到達(dá)的數(shù)據(jù)內(nèi)容,正常數(shù)據(jù)存儲存data中,緊急數(shù)據(jù)存儲在urgdata中。Libnids

全局參數(shù)structnids_prm{intn_tcp_streams;intn_hosts;char*device;char*filename;intsk_buff_size;intdev_addon;void(*syslog)();intsyslog_level;intscan_num_hosts;intscan_delay;intscan_num_ports;

Libnids

全局參數(shù)void(*no_mem)(char*);int(*ip_filter)();char*pcap_filter;intpromisc;intone_loop_less;intpcap_timeout;intmultiproc;intqueue_limit;inttcp_workarounds;pcap_t*pcap_desc;};Libnids

全局參數(shù)此數(shù)據(jù)結(jié)構(gòu)描述的是Libnids的全局參數(shù),利用它可以對Libnids的一些環(huán)境參數(shù)進(jìn)行設(shè)置,設(shè)置之后對整個Libnids都有效?!癯蓡Tn_tcp_streams表示哈西表大小,此哈西表用來存放tcp_stream數(shù)據(jù)結(jié)構(gòu),默認(rèn)值為1040。在同一時刻Libnids捕獲的TCP數(shù)據(jù)包的最大個數(shù)必須是此參數(shù)值的3/4?!癯蓡Tn_hosts也是表示哈西表的大小,此哈西表是用來存儲IP碎片信息的,默認(rèn)值為256?!癯蓡Tfilename表示用來存儲網(wǎng)絡(luò)數(shù)據(jù)的捕獲文件。此文件的類型必須與Libpcap類型一致。如果設(shè)置了文件,與此同時就應(yīng)該設(shè)置成員device為NULL,默認(rèn)值為NULL?!癯蓡Tdevice表示網(wǎng)絡(luò)接口,Libnids將在此網(wǎng)絡(luò)接口上捕獲數(shù)據(jù),默認(rèn)值為NULL。這樣Libnids將使用pcap_lookupdev來查找可用的網(wǎng)絡(luò)接口。如果其值為all,表示捕獲所有網(wǎng)絡(luò)接口的數(shù)據(jù)。Libnids

全局參數(shù)●成員sk_buff_size表示的是數(shù)據(jù)結(jié)構(gòu)sk_buff的人小。數(shù)據(jù)結(jié)構(gòu)sk_buff是Linux內(nèi)核中一個重要的數(shù)據(jù)結(jié)構(gòu),是用來進(jìn)行數(shù)據(jù)包排隊操作的,默認(rèn)值為168?!癯蓡Tdev_addon表示在數(shù)據(jù)結(jié)構(gòu)sk_buff中用于網(wǎng)絡(luò)接口上信息的字節(jié)數(shù)。如果是-1(默認(rèn)值),那么Libnids會根據(jù)不同的網(wǎng)絡(luò)接口進(jìn)行修正。●成員syslog是一個函數(shù)指針,默認(rèn)值為nids_syslog()函數(shù)。在syslog函數(shù)中可以檢測入侵攻擊,如網(wǎng)絡(luò)掃描攻擊,也可以檢測一些異常情況,如無效TCP標(biāo)記?!癯蓡Tsyslog_level表示日志等級,默認(rèn)值為LOG_ALERT?!癯蓡Tscannum_hosts表示一個哈西表的大小,(此哈西表用來存儲端口掃描信息)表示Libnids將要檢測的同時掃描的端口數(shù)據(jù)。如果其值為O,Libnids將不提供端口掃描功能。默認(rèn)值為256。●成員scan_num_ports表示相同源地址必須掃描的TCP端口數(shù)目,默認(rèn)值為10?!癯蓡Tscan_delay表示在掃描檢測中,兩端口掃描的間隔時間,以毫秒來計算,缺省值為3000。Libnids

全局參數(shù)成員no_mem是一個函數(shù)指針,當(dāng)Libnids發(fā)生內(nèi)存溢出時被調(diào)用?!癯蓡Tip_filter是一個函數(shù)指針,此函數(shù)可以用來分析IP數(shù)據(jù)包,當(dāng)有IP數(shù)據(jù)包到達(dá)時,此函數(shù)就被調(diào)用。如果此函數(shù)返回非零值,此數(shù)據(jù)包就被處理;如果返回零,此IP數(shù)據(jù)包就被丟棄。默認(rèn)值為nids_ip_filter函數(shù),總是返回1。●成員pcap_filter表示過濾規(guī)則,即Libpcap的過濾規(guī)則,默認(rèn)值為NULL,表示捕獲所有數(shù)據(jù)包??梢栽诖嗽O(shè)置過濾規(guī)則,只捕獲感興趣的開發(fā)包?!癯蓡Tpromisc表示網(wǎng)卡模式,如果是非零,就把此網(wǎng)卡設(shè)為混雜模式:否則,設(shè)為非混雜模式。默認(rèn)值為1?!癯蓡Tone_loop_less初始值為O。●成員pcap_timeout表示捕獲數(shù)據(jù)返回的時間,以毫秒計算。實際上它表示的就是Libpcap函數(shù)中的pcap_open_live函數(shù)的timeout參數(shù),默認(rèn)值為1024。在Libnids中用nids_prm數(shù)據(jù)結(jié)構(gòu)定義了一個全部變量nids_params。在使用Libnids開發(fā)程序時,可以首先對nids_params全局變量的值進(jìn)行修改,這樣對整個Libnids就全部有效。Libnids

全局參數(shù)初始值(書面)structnids_prmnids_params={1040, /*n_tcp_streams*/256, /*n_hosts*/NULL, /*device*/NULL, /*filename*/168, /*sk_buff_size*/-1, /*dev_addon*/nids_syslog, /*syslog()*/LOG_ALERT, /*syslog_level*/256, /*scan_num_hosts*/3000, /*scan_delay*/10, /*scan_num_ports*/

Libnids

全局參數(shù)初始值(書面)nids_no_mem, /*no_mem()*/nids_ip_filter, /*ip_filter()*/NULL, /*pcap_filter*/1, /*promisc*/0, /*one_loop_less*/1024 /*pcap_timeout*/};nids_ip_filter函數(shù)的定義如下:staticintnids_ip_filter(structip*x,intlen){(void)x;(void)len;return1;}Libnids

全局參數(shù)初始值(機(jī)打)n_tcp_stream:1040n_hosts:256device:(null)filename:(null)sk_buff_size:168dev_addon:-1void(*syslog()):0x4027a0syslog_level:1scan_num_hosts:256scan_delay:3000scan_num_ports:10Libnids

全局參數(shù)初始值(機(jī)打)void(*no_men)(char*):0x405930(*ip_filter)():0x402790*pcap_filter:(null)promisc:1one_loop_less:0pcap_timeout:1024multproc:0queue_limit:20000tcp_workarounds:0利用Libnids開發(fā)的流程1、用函數(shù)nids_init()進(jìn)行初始化2、注冊相應(yīng)的回調(diào)函數(shù),不同的回調(diào)函數(shù)實現(xiàn)不同的功能3、利用函數(shù)nids_run()進(jìn)入循環(huán)捕獲數(shù)據(jù)包的狀態(tài)libnids函數(shù)1.基本函數(shù)2.IP碎片函數(shù)3.TCP數(shù)據(jù)流重組函數(shù)4.UDP注冊函數(shù)基本函數(shù)(1)intnids_init(void);//對libnids進(jìn)行初始化(2)voidnids_run(void);//運(yùn)行Libnids,進(jìn)入循環(huán)捕獲數(shù)據(jù)包狀態(tài).(3)intnids_getfd(void);//獲得文

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論