資源描述:
《孫斌--防火墻實(shí)驗(yàn)包過(guò)濾防火墻實(shí)驗(yàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、實(shí)驗(yàn)五基于包過(guò)濾技術(shù)的防火墻設(shè)計(jì)與實(shí)現(xiàn)(一)實(shí)驗(yàn)要求利用WinpCap嗅探器,通過(guò)抓取網(wǎng)絡(luò)數(shù)據(jù)包,設(shè)計(jì)一個(gè)基于協(xié)議分析的包過(guò)濾防火墻系統(tǒng)。通過(guò)該實(shí)驗(yàn)使學(xué)生在掌握WinPcap開(kāi)發(fā)包的基礎(chǔ)上,掌握使用WinpCap編寫(xiě)網(wǎng)絡(luò)應(yīng)用程序的能力,深入理解包過(guò)濾防火墻的工作原理。(二)知識(shí)點(diǎn)提示主要知識(shí)點(diǎn):1.WinPcap開(kāi)發(fā)包;2.網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)。(三)實(shí)驗(yàn)內(nèi)容開(kāi)發(fā)出一個(gè)簡(jiǎn)單的Windows平臺(tái)上的Sniffer工具,能顯示所捕獲的數(shù)據(jù)包并能做簡(jiǎn)單的分析或統(tǒng)計(jì)。主要內(nèi)容:1.列出檢測(cè)主機(jī)的所有網(wǎng)卡,選擇一個(gè)網(wǎng)卡,設(shè)置為混雜模式進(jìn)行監(jiān)聽(tīng)。a)WINPCAP含有專用
2、的函數(shù),可以檢索本機(jī)的網(wǎng)卡設(shè)備:b)WINPCAP含有專用的函數(shù),可以選擇本機(jī)網(wǎng)卡:1.捕獲多有流經(jīng)網(wǎng)卡的數(shù)據(jù)包,并利用WinPcap函數(shù)庫(kù)設(shè)置過(guò)濾規(guī)則。利用WinPcap函數(shù)庫(kù)設(shè)計(jì)過(guò)濾規(guī)則,設(shè)計(jì)過(guò)濾器:2.分析捕獲到的數(shù)據(jù)包的包頭和數(shù)據(jù),按照各種協(xié)議的格式化顯示。a)Ip地址格式:b)Ip數(shù)據(jù)包格式:c)Udp數(shù)據(jù)包格式:a)Tcp數(shù)據(jù)包格式:b)Icmp數(shù)據(jù)包格式:1.將所開(kāi)發(fā)工具的捕獲和分析結(jié)果與常用的Sniffer進(jìn)行比較,完善程序代碼。代碼見(jiàn)附錄(四)完成實(shí)驗(yàn)報(bào)告1、重點(diǎn)對(duì)TCPUDPARPRARPIGMPICMP等數(shù)據(jù)包進(jìn)行分析2、所
3、開(kāi)發(fā)的嗅探工具能夠根據(jù)協(xié)議類型、端口、地址等信息對(duì)數(shù)據(jù)包進(jìn)行過(guò)濾3、在實(shí)驗(yàn)報(bào)告中寫(xiě)出程序關(guān)鍵算法和流程圖,根據(jù)WinPcap常用庫(kù)函數(shù)總結(jié)出基于WinPcap的嗅探器的程序框架,并附上程序界面或運(yùn)行結(jié)果。利用原有回調(diào)函數(shù)進(jìn)行數(shù)據(jù)包捕獲:a)對(duì)ICMP數(shù)據(jù)包的嗅探:a)對(duì)Udp數(shù)據(jù)包的嗅探:a)對(duì)Tcp數(shù)據(jù)包的嗅探:(五)思考題1.WinPcap嗅探器的攻擊機(jī)理如何?捕獲原始數(shù)據(jù)包,包括在共享網(wǎng)絡(luò)上各主機(jī)發(fā)送/接收的以及相互之間交換的數(shù)據(jù)包;在數(shù)據(jù)包發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)包過(guò)濾掉;在網(wǎng)絡(luò)上發(fā)送原始的數(shù)據(jù)包;收集網(wǎng)絡(luò)通信過(guò)程中的統(tǒng)計(jì)
4、信息。2.WinPcap主要包括哪些模塊,各模塊的作用如何?Winpcap是針對(duì)Win32平臺(tái)上的抓包和網(wǎng)絡(luò)分析的一個(gè)架構(gòu)。它包括一個(gè)核心態(tài)的包過(guò)濾器,一個(gè)底層的動(dòng)態(tài)鏈接庫(kù)(packet.dll)和一個(gè)高層的不依賴于系統(tǒng)的庫(kù)(wpcap.dll)。網(wǎng)絡(luò)數(shù)據(jù)包過(guò)濾器(Netgroup?Packet?Filter,NPF)是Winpcap的核心部分,它是Winpcap完成困難工作的組件。它處理網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包,并且對(duì)用戶級(jí)提供可捕獲(capture)、發(fā)送(injection)和分析性能(analysis?capabilities)。NDIS(Network
5、?Driver?Interface?Specification)是一個(gè)定義網(wǎng)絡(luò)適配器(或者說(shuō)成是管理網(wǎng)絡(luò)適配器的驅(qū)動(dòng)程序)與協(xié)議驅(qū)動(dòng)(例如TCP/IP的實(shí)現(xiàn))之間通信的規(guī)范。NDIS最主要的目的是作為一個(gè)允許協(xié)議驅(qū)動(dòng)發(fā)送和接收網(wǎng)絡(luò)(LAN或WAN)上的數(shù)據(jù)包而不必關(guān)心特定的適配器或特定的Win32操作系統(tǒng)的封裝。3.結(jié)合自己設(shè)計(jì)系統(tǒng),畫(huà)出WinPcap數(shù)據(jù)包捕獲流程。附錄://MyWincap.cpp:定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。//#include"stdafx.h"#includeusingnamespacestd;#defineH
6、AVE_REMOTE#include"pcap.h"typedefunsignedcharbyte;typedefstructip_address{}ip_address;/*IPv4首部*/typedefstructip_header{}ip_header;/*UDP首部*/typedefstructudp_header{}udp_header;/*TCP首部*/typedefstructtcp_header{}tcp_header;/*ICMP首部*/typedefstructicmp_header{}icmp_header;/*回調(diào)函數(shù)原型*/voi
7、dpacket_handler(u_char*param,conststructpcap_pkthdr*header,constu_char*pkt_data);voidoutputUDPMaeeage(udp_header*uh);voidoutputTCPMaeeage(tcp_header*th);voidoutputICMPMaeeage(icmp_header*icmh);intmain(){u_intnetmask;structbpf_programfcode;pcap_if_t*alldevs;pcap_if_t*d;pcap_t*adhan
8、dle;inti=0;charerrbuf[PCAP_ERRBUF