防火墻與入侵檢測(cè)課程設(shè)計(jì)報(bào)告_第1頁(yè)
防火墻與入侵檢測(cè)課程設(shè)計(jì)報(bào)告_第2頁(yè)
防火墻與入侵檢測(cè)課程設(shè)計(jì)報(bào)告_第3頁(yè)
防火墻與入侵檢測(cè)課程設(shè)計(jì)報(bào)告_第4頁(yè)
防火墻與入侵檢測(cè)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 研究課題:防火墻與入侵檢測(cè) 指導(dǎo)老師:董理君 學(xué)生姓名:王敬 學(xué)生班級(jí): 學(xué)生學(xué)號(hào):防火墻與入侵檢測(cè)課程設(shè)計(jì)報(bào)告一、 軟硬件運(yùn)行環(huán)境l 硬件推薦配置內(nèi)存:128M 及以上配置 其他:無(wú)特殊要求l 軟件運(yùn)行環(huán)境操作系統(tǒng):windows 2000 及以上版本其他:無(wú)特殊要求二、 項(xiàng)目研究背景與意義 背景意義:所謂防火墻指的是一個(gè)由軟件和硬件設(shè)備組合而成、在內(nèi)部網(wǎng)和外部網(wǎng)之間、專用網(wǎng)與公共網(wǎng)之間的界面上構(gòu)造的保護(hù)屏障.是一種獲取安全性方法的形象說(shuō)法,它是一種計(jì)算機(jī)硬件和軟件的結(jié)合,使Internet與Intranet之間建立起一個(gè)安全網(wǎng)關(guān)(Security Gateway),從而保護(hù)內(nèi)部網(wǎng)免受非法

2、用戶的侵入,防火墻主要由服務(wù)訪問(wèn)規(guī)則、驗(yàn)證工具、包過(guò)濾和應(yīng)用網(wǎng)關(guān)4個(gè)部分組成,防火墻就是一個(gè)位于計(jì)算機(jī)和它所連接的網(wǎng)絡(luò)之間的軟件或硬件(其中硬件防火墻用的較少,例如國(guó)防部以及大型機(jī)房等地才用,因?yàn)樗鼉r(jià)格昂貴)。該計(jì)算機(jī)流入流出的所有網(wǎng)絡(luò)通信均要經(jīng)過(guò)此防火墻。防火墻對(duì)流經(jīng)它的網(wǎng)絡(luò)通信進(jìn)行掃描,這樣能夠過(guò)濾掉一些攻擊,以免其在目標(biāo)計(jì)算機(jī)上被執(zhí)行。防火墻還可以關(guān)閉不使用的端口。而且它還能禁止特定端口的流出通信,封鎖特洛伊木馬。最后,它可以禁止來(lái)自特殊站點(diǎn)的訪問(wèn),從而防止來(lái)自不明入侵者的所有通信。三、 關(guān)鍵技術(shù)及解決方案概要設(shè)計(jì):(1) 網(wǎng)絡(luò)包的分析各種類型報(bào)文對(duì)象的構(gòu)造: 由于pcap每次抓到一個(gè)數(shù)

3、據(jù)包,會(huì)提交其信息,方式為以u(píng)nsigned char* 指向的一段緩沖區(qū),現(xiàn)將緩沖區(qū)前14個(gè)字節(jié)讀入,按以太幀格式構(gòu)造以太幀頭部的對(duì)象。然后根據(jù)以太幀頭部中的Type字段,決定接下來(lái)應(yīng)該構(gòu)造IP還是ARP還是RARP。假設(shè)是IP,那么把緩沖區(qū)中第15個(gè)字節(jié)開始直到這塊緩沖區(qū)最后的所以字節(jié)讀入,按IP報(bào)文格式構(gòu)造IP的對(duì)象,根據(jù)IP的Protocol字段,決定接下來(lái)構(gòu)造TCP,UDP還是ICMP。假設(shè)是TCP,則將IP的數(shù)據(jù)內(nèi)容讀入,按TCP格式構(gòu)造TCP的對(duì)象。注:1)對(duì)于不滿一個(gè)字節(jié)的字段,如一些標(biāo)志位DF,URG等等需要用位運(yùn)算將其取出如:if(*pos & 0x04)DF=true;e

4、lseDF=false;其中pos為unsigned char*,指向當(dāng)前字節(jié),而DF為該字節(jié)中右起第3位。2)對(duì)于大于一個(gè)字節(jié)的字段,需要進(jìn)行大數(shù)端到小數(shù)端的轉(zhuǎn)換。因?yàn)榫W(wǎng)絡(luò)中傳輸是按大數(shù)段(高位在低地址處),而本地機(jī)器中則相反,按小數(shù)端(地位在低地址處)。如:totallen=(*pos)*256+(*(pos+1);total為雙字節(jié),pos指針開始時(shí)指向低地址,乘256是完成大數(shù)端到小數(shù)端的轉(zhuǎn)換。過(guò)濾方法:(2) 網(wǎng)絡(luò)包的攔截1. 捕獲網(wǎng)絡(luò)的數(shù)據(jù)包后,先查看是來(lái)自哪個(gè)程序的。在數(shù)據(jù)庫(kù)中查找有沒有相應(yīng)的規(guī)則:如果規(guī)則數(shù)據(jù)庫(kù)中沒有相應(yīng)的規(guī)則,就彈出對(duì)話框讓用戶配置規(guī)則,然后添加到數(shù)據(jù)庫(kù)中,然

5、后按相應(yīng)的規(guī)則,訪問(wèn)網(wǎng)絡(luò)。如果規(guī)則數(shù)據(jù)庫(kù)中有相應(yīng)的配置,就需要讀取配置,對(duì)照訪問(wèn)規(guī)則權(quán)限來(lái)確定是阻止還是放行。2. 將進(jìn)出的報(bào)文記錄在數(shù)據(jù)日志中待以后查詢。3. 將進(jìn)出的報(bào)文情況添加到封包監(jiān)視器中,待管理員查詢。四、 測(cè)試1、 在程序調(diào)試階段遇到的問(wèn)題:(1)如何編譯動(dòng)態(tài)鏈接庫(kù)的問(wèn)題(2)如何分析通過(guò)winpcap捕獲的數(shù)據(jù)包以上問(wèn)題最終通過(guò)查看相應(yīng)的資料解決。2、 問(wèn)題及難點(diǎn)所在:防火墻的難點(diǎn)與重點(diǎn)就在如何獲取網(wǎng)絡(luò)中的發(fā)送或接受的報(bào)文,并分析報(bào)文。找出潛在的安全問(wèn)題,防患于未然。通過(guò)對(duì)winpcap程序開發(fā)包的學(xué)習(xí),掌握了如何通過(guò)winpcap提過(guò)的動(dòng)態(tài)鏈接庫(kù)中的基礎(chǔ)函數(shù)來(lái)捕捉進(jìn)出網(wǎng)絡(luò)的數(shù)據(jù)

6、包,并參閱資料,了解了各種網(wǎng)絡(luò)數(shù)據(jù)包數(shù)據(jù)的格式與其的特點(diǎn),通過(guò)字節(jié)的對(duì)比,解析數(shù)據(jù)包,提取出各個(gè)字段的內(nèi)容,并判斷如何網(wǎng)絡(luò)的情況。提醒用戶設(shè)置網(wǎng)絡(luò)訪問(wèn)的規(guī)則,來(lái)阻止或允許或條件允許。3、 運(yùn)行結(jié)果與分析(測(cè)試)啟動(dòng)程序:訪問(wèn)網(wǎng)絡(luò):配置規(guī)則:訪問(wèn)結(jié)果:放行時(shí)候:拒絕時(shí):網(wǎng)絡(luò)包監(jiān)測(cè)窗口:日志查詢:分析網(wǎng)絡(luò)數(shù)據(jù)包的源代碼如下:TCP報(bào)文的數(shù)據(jù)結(jié)構(gòu)與解析方法:class TCPGram public:TCPGram();TCPGram(const unsigned char *buf,int buflen);virtual TCPGram();int srcport;/源端口int destport;

7、/目的端口unsigned int seqnum;/順序號(hào)unsigned int acknum;/確認(rèn)號(hào)int headlen;/頭部長(zhǎng)bool URG;/為1表示使用緊急指針bool ACK;/為1表示確認(rèn)號(hào)合法bool PSH;/表示帶有PUSH標(biāo)志的數(shù)據(jù)bool RST;/用于主機(jī)崩潰或其他原因后的復(fù)位bool SYN;/用于建立連接bool FIN;/用于釋放連接int windowsize;/窗口大小int checksum;/校驗(yàn)和int urgpos;/緊急指針,從當(dāng)前順序號(hào)到緊急數(shù)據(jù)位置偏移量int optlen;/選項(xiàng)長(zhǎng)度unsigned char *options;/選項(xiàng)

8、字段int datalen;/數(shù)據(jù)段的長(zhǎng)度unsigned char *data;/數(shù)據(jù)指針;TCPGram:TCPGram(const unsigned char *buf,int buflen)/unsigned char *buf;unsigned char *pos;/int buflen;/buflen=bufferlen;/buf=new unsigned charbuflen;/memcpy(buf,buffer,buflen);pos=(unsigned char *)buf;srcport=(*pos)*0x100+(*(pos+1);pos+=2;destport=(*po

9、s)*0x100+(*(pos+1);pos+=2;seqnum=(*pos)*0x+(*(pos+1)*0x10000+(*(pos+2)*0x100+(*(pos+3);pos+=4;acknum=(*pos)*0x+(*(pos+1)*0x10000+(*(pos+2)*0x100+(*(pos+3);pos+=4;headlen=(*pos)/16;pos+;if(*pos & 0x20)URG=true;else URG=false;if(*pos & 0x10)ACK=true;elseACK=false;if(*pos & 0x08)PSH=true;elsePSH=false;

10、if(*pos & 0x04)RST=true;elseRST=false;if(*pos & 0x02)SYN=true;elseSYN=false;if(*pos & 0x01)FIN=true;elseFIN=false;pos+;windowsize=(*pos)*0x100+(*(pos+1);pos+=2;checksum=(*pos)*0x100+(*(pos+1);pos+=2;urgpos=(*pos)*0x100+(*(pos+1);if(headlen5)pos+=2;optlen=headlen*4-20;options=new unsigned charoptlen;

11、memcpy(options,buf+20,optlen);elseoptlen=0;options=NULL;pos=(unsigned char *)(buf+headlen*4);datalen=buflen-headlen*4;if(datalen0)data=new unsigned chardatalen;memcpy(data,buf+headlen*4,datalen);elsedata=NULL;data=0;UDP的數(shù)據(jù)結(jié)構(gòu)與解析方法:class UDPGram public:UDPGram();UDPGram(const unsigned char *buf,const

12、int buflen);virtual UDPGram();unsigned int srcport;/源端口unsigned int destport;/目的端口int totallen;/總長(zhǎng)int checksum;/校驗(yàn)和unsigned int datalen;/數(shù)據(jù)段段的長(zhǎng)度char *data;UDPGram:UDPGram(const unsigned char *buf,const int buflen)unsigned char *pos;pos=(unsigned char *)buf;srcport=(*pos)*0x100+(*(pos+1);pos+=2;destp

13、ort=(*pos)*0x100+(*(pos+1);pos+=2;totallen=(*pos)*0x100+(*(pos+1);pos+=2;checksum=(*pos)*0x100+(*(pos+1);datalen=buflen-8;if(datalen0)data=new chardatalen;memcpy(data,buf+8,datalen);elsedata=NULL;IP的數(shù)據(jù)結(jié)構(gòu)與解析方法:class IPGram public:intversion;/版本int IHL;/頭部長(zhǎng)度int servicetype;/服務(wù)類型 type of serviceint pre

14、cedence;/優(yōu)先級(jí)bool delay;/延遲bool throughtput;/吞吐量bool reliability;/可靠性u(píng)nsigned int totallen;/總長(zhǎng)total lengthint identification;/標(biāo)識(shí)bool DF;/不要分段bool MF;/還有進(jìn)一步的分段int fragoffset;/分段偏移fragment offsetint TTL;/生命期time to liveint protocol;/協(xié)議,如TCP,UDPunsigned int checksum;/頭部校驗(yàn)和long srcaddr;/源IP地址long destadd

15、r;/目的IP地址int optlen;/選項(xiàng)長(zhǎng)度unsigned char *options;/選項(xiàng)內(nèi)容int datalen;/數(shù)據(jù)長(zhǎng)度unsigned char *data;/數(shù)據(jù)內(nèi)容IPGram();IPGram(const unsigned char* buf,int buflen);virtual IPGram();CString GetService();void GetDestAddr(char *str);CString GetDestAddr();void GetSrcAddr(char *str);CString GetSrcAddr();CString GetID();

16、IPGram:IPGram(const unsigned char *buf,int buflen)/unsigned char *buf;unsigned char *pos;/int buflen;/buf=new unsigned charbuffer_len;/buflen=buffer_len;/memcpy(buf,buffer,buflen);pos=(unsigned char *)buf;version=*pos/16;IHL=*pos%16;pos+;servicetype=*pos;precedence=(*pos & 16)*4+(*pos & 8)*2+(*pos &

17、 4);if(*pos & 16)delay=true;else delay=false;if(*pos & 8)throughtput=true;elsethroughtput=false;if(*pos & 4)reliability=true;elsereliability=false;pos+;totallen=(*pos)*256+(*(pos+1);pos+=2;identification=(*pos)*256+(*(pos+1);pos+=2;if(*pos & 64)DF=true;elseDF=false;if(*pos & 32)MF=true;elseMF=false;

18、fragoffset=(*pos%32)*256+(*(pos+1);pos+=2;TTL=*pos;pos+;protocol=*pos;pos+;checksum=(*pos)*256+(*(pos+1);pos+=2;srcaddr=(*pos)*0x+(*(pos+1)*0x10000+(*(pos+2)*0x100+(*(pos+3);pos+=4;destaddr=(*pos)*0x+(*(pos+1)*0x10000+(*(pos+2)*0x100+(*(pos+3);if(IHL5)pos+=4;optlen=(IHL-5)*4;options=new unsigned charoptlen;memcpy(options,buf+20,optlen);elseoptlen=0;options=NULL;pos=(unsigned char *)(buf+IHL*4);datalen=totallen-IHL*4;if(datalen0)data=

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論