




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工业大学(威海)课程设计报告(论文)防火墙与入侵检测课程设计报告一、 软硬件运行环境l 硬件推荐配置内存:128M 及以上配置 其他:无特殊要求l 软件运行环境操作系统:windows 2000 及以上版本其他:无特殊要求二、 项目研究背景与意义(1) 背景意义:所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件(其中硬件防火墙用的较少,例如国防部以及大型机房等地才用,因为它价格昂贵)。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。(2)需求分析: 三、 关键技术及解决方案概要设计:(1) 网络包的分析各种类型报文对象的构造: 由于pcap每次抓到一个数据包,会提交其信息,方式为以unsigned char* 指向的一段缓冲区,现将缓冲区前14个字节读入,按以太帧格式构造以太帧头部的对象。然后根据以太帧头部中的Type字段,决定接下来应该构造IP还是ARP还是RARP。假设是IP,那么把缓冲区中第15个字节开始直到这块缓冲区最后的所以字节读入,按IP报文格式构造IP的对象,根据IP的Protocol字段,决定接下来构造TCP,UDP还是ICMP。假设是TCP,则将IP的数据内容读入,按TCP格式构造TCP的对象。注:1)对于不满一个字节的字段,如一些标志位DF,URG等等需要用位运算将其取出如:if(*pos & 0x04)DF=true;elseDF=false;其中pos为unsigned char*,指向当前字节,而DF为该字节中右起第3位。2)对于大于一个字节的字段,需要进行大数端到小数端的转换。因为网络中传输是按大数段(高位在低地址处),而本地机器中则相反,按小数端(地位在低地址处)。如:totallen=(*pos)*256+(*(pos+1);total为双字节,pos指针开始时指向低地址,乘256是完成大数端到小数端的转换。过滤方法:(2) 网络包的拦截1. 捕获网络的数据包后,先查看是来自哪个程序的。在数据库中查找有没有相应的规则:如果规则数据库中没有相应的规则,就弹出对话框让用户配置规则,然后添加到数据库中,然后按相应的规则,访问网络。如果规则数据库中有相应的配置,就需要读取配置,对照访问规则权限来确定是阻止还是放行。2. 将进出的报文记录在数据日志中待以后查询。3. 将进出的报文情况添加到封包监视器中,待管理员查询。四、 测试1、 在程序调试阶段遇到的问题:(1)如何编译动态链接库的问题(2)如何分析通过winpcap捕获的数据包以上问题最终通过查看相应的资料解决。2、 问题及难点所在:防火墙的难点与重点就在如何获取网络中的发送或接受的报文,并分析报文。找出潜在的安全问题,防患于未然。通过对winpcap程序开发包的学习,掌握了如何通过winpcap提过的动态链接库中的基础函数来捕捉进出网络的数据包,并参阅资料,了解了各种网络数据包数据的格式与其的特点,通过字节的对比,解析数据包,提取出各个字段的内容,并判断如何网络的情况。提醒用户设置网络访问的规则,来阻止或允许或条件允许。3、 运行结果与分析(测试)启动程序:访问网络:配置规则:访问结果:放行时候:拒绝时:网络包监测窗口:日志查询:分析网络数据包的源代码如下:TCP报文的数据结构与解析方法:class TCPGram public:TCPGram();TCPGram(const unsigned char *buf,int buflen);virtual TCPGram();int srcport;/源端口int destport;/目的端口unsigned int seqnum;/顺序号unsigned int acknum;/确认号int headlen;/头部长bool URG;/为1表示使用紧急指针bool ACK;/为1表示确认号合法bool PSH;/表示带有PUSH标志的数据bool RST;/用于主机崩溃或其他原因后的复位bool SYN;/用于建立连接bool FIN;/用于释放连接int windowsize;/窗口大小int checksum;/校验和int urgpos;/紧急指针,从当前顺序号到紧急数据位置偏移量int optlen;/选项长度unsigned char *options;/选项字段int datalen;/数据段的长度unsigned char *data;/数据指针;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=(*pos)*0x100+(*(pos+1);pos+=2;seqnum=(*pos)*0x1000000+(*(pos+1)*0x10000+(*(pos+2)*0x100+(*(pos+3);pos+=4;acknum=(*pos)*0x1000000+(*(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;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;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的数据结构与解析方法:class UDPGram public:UDPGram();UDPGram(const unsigned char *buf,const int buflen);virtual UDPGram();unsigned int srcport;/源端口unsigned int destport;/目的端口int totallen;/总长int checksum;/校验和unsigned int datalen;/数据段段的长度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;destport=(*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的数据结构与解析方法:class IPGram public:intversion;/版本int IHL;/头部长度int servicetype;/服务类型 type of serviceint precedence;/优先级bool delay;/延迟bool throughtput;/吞吐量bool reliability;/可靠性unsigned int totallen;/总长total lengthint identification;/标识bool DF;/不要分段bool MF;/还有进一步的分段int fragoffset;/分段偏移fragment offsetint TTL;/生命期time to liveint protocol;/协议,如TCP,UDPunsigned int checksum;/头部校验和long srcaddr;/源IP地址long destaddr;/目的IP地址int optlen;/选项长度unsigned char *options;/选项内容int datalen;/数据长度unsigned char *data;/数据内容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();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 & 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;fragoffset=(*pos%32)*256+(*(pos+1);pos+=2;TTL=*pos;pos+;protocol=*pos;pos+;checksum=(*pos)*256+(*(pos+1);pos+=2;srcaddr=(*pos)*0x1000000+(*(pos+1)*0x10000+(*(pos+2)*0x100+(*(pos+3);pos+=4;destaddr=(*pos)*0x1000000+(*(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)dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年互联网数据中心服务代理销售合同范本
- 2025演艺设备租赁合同模板
- 2025劳动合同法病假工资规定
- 2025年农业用地流转合同
- 2025年信誉担保借款合同范本「最高额」
- 2025年海南省五指山市辅警人员招聘考试题库及答案
- 2025年学历类自考中国广告学-政府经济管理概论参考题库含答案解析(5套试卷)
- 2025设备保管合同范本
- 2025大学生思想汇报3000字
- 2025年上海市新劳动合同书样本
- 算力中心建设的技术要求
- 一般工业固废处理合同范本
- 2025年春季学期1530学生安全教育记录表
- 《椅旁CADCAM全瓷修复技术指南》
- 空调维修保养合同范本
- 钣金安全生产培训
- 老年人口腔护理宣教
- 无人售货机的食品安全管理制度
- 鼻饲肠内营养腹泻的护理
- 高压氧舱培训
- 中餐分餐课件教学课件
评论
0/150
提交评论