欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    防火墙与入侵检测课程设计报告.docx

    • 资源ID:88651628       资源大小:330.20KB        全文页数:17页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    防火墙与入侵检测课程设计报告.docx

    操作系统安全原理与技术争论课题:防火墙与入侵检测指导教师:董理君学生姓名:王敬 学生班级:193062学生学号:202310027811 操作系统安全原理与技术防火墙与入侵检测课程设计报告一、 软硬件运行环境l 硬件推举配置内存:128M 及以上配置其他:无特别要求l 软件运行环境操作系统:windows 2023 及以上版本其他:无特别要求二、 工程争论背景与意义背景意义:所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共 网之间的界面上构造的保护屏障.是一种猎取安全性方法的形象说法,它是一种计算机硬件和 软件的结合,使 Internet 与 Intranet 之间建立起一个安全网关Security Gateway,从而保护内部网免受非法用户的侵入,防火墙主要由效劳访问规章、验证工具、包过滤和应用 网关 4 个局部组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件 (其中硬件防火墙用的较少,例如国防部以及大型机房等地才用,由于它价格昂贵)。该计算机流入流出的全部网络通信均要经过此防火墙。防火墙对流经它的网络通信进展扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能制止特定端口的流出通信,封锁特洛伊木马。最终,它可以制止来自特别站点的访问,从而防止来自不明入侵者的全部通信。三、 关键技术及解决方案概要设计:(1) 网络包的分析各种类型报文对象的构造:由于 pcap 每次抓到一个数据包,会提交其信息,方式为以 unsigned char* 指向2 操作系统安全原理与技术构造以太帧头部的对象以太帧头部中的Type字段?完毕的一段缓冲区,现将缓冲区前 14 个字节读入,按以太帧格式构造以太帧头部的对象。然后依据以太帧头部中的 Type 字段,打算接下来应当构造 IP 还是 ARP 还是 RARP。假设是 IP,那么把缓冲区中第 15 个字节开头直到这块缓冲区最终的所以字节读入,按IP 报文格式构造 IP 的对象,依据 IP 的 Protocol 字段,打算接下来构造 TCP,UDP 还是 ICMP。假设是 TCP, 则将 IP 的数据内容读入,按 TCP 格式构造 TCP 的对象。构造ARP对象构造IP对象构造RARP对象IP对象的Protocol字段?构造TCP对象构造UDP对象构造ICMP对象注:1对于不满一个字节的字段,如一些标志位DF,URG 等等需要用位运算将其取出如:if(*pos & 0x04)DF=true;elseDF=false;其中 pos 为unsigned char*,指向当前字节,而DF 为该字节中右起第 3 位。2对于大于一个字节的字段,需要进展大数端到小数端的转换。由于网络中传输是按大数段高位在低地址处,而本地机器中则相反,按小数端地位在低地址处。如:totallen=(*pos)*256+(*(pos+1);total 为双字节,pos 指针开头时指向低地址,乘 256 是完成大数端到小数端的转换。过滤方法:3 操作系统安全原理与技术Type 为以太帧承载的网络层协议类型ARPRARPNo Return False是否侦听ARP?Type值?IP是否侦听IP?No Return False是否侦听NoRARP?Return FalseYesTCPIP的ICMPProtocol?NoUDPReturn False是否侦听UDP?No Return False是否侦听TCP?是否侦听ICMP?No Return FalseYesYesYesYesYes地址是否符合条件?YesReturn True;No Return False(2) 网络包的拦截1. 捕获网络的数据包后,先查看是来自哪个程序的。在数据库中查找有没有相应的规章: 假设规章数据库中没有相应的规章,就弹出对话框让用户配置规章,然后添加到数据库中,然后按相应的规章,访问网络。假设规章数据库中有相应的配置,就需要读取配置,比照访问规章权限来确定是阻挡还是放行。2. 将进出的报文记录在数据日志中待以后查询。3. 将进出的报文状况添加到封包监视器中,待治理员查询。四、 测试1、 在程序调试阶段遇到的问题:(1) 如何编译动态链接库的问题(2) 如何分析通过 winpcap 捕获的数据包4 操作系统安全原理与技术以上问题最终通过查看相应的资料解决。2、 问题及难点所在:防火墙的难点与重点就在如何猎取网络中的发送或承受的报文,并分析报文。找出潜在的安全问题,防患于未然。通过对winpcap 程序开发包的学习,把握了如何通过winpcap 提过的动态链接库中的根底函数来捕获进出网络的数据包,并参阅资料,了解了各种网络数据包数据的格式与其的特点,通过字节的比照,解析数据包,提取出各 个字段的内容,并推断如何网络的状况。提示用户设置网络访问的规章,来阻挡或允许 或条件允许。3、 运行结果与分析测试启动程序:访问网络:5 操作系统安全原理与技术配置规章:访问结果:6 操作系统安全原理与技术放行时候:拒绝时:网络包监测窗口:7 操作系统安全原理与技术日志查询:分析网络数据包的源代码如下:8 操作系统安全原理与技术TCP 报文的数据构造与解析方法:class TCPGrampublic: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;9 操作系统安全原理与技术/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;elseURG=false; if(*pos & 0x10)ACK=true;else10 操作系统安全原理与技术ACK=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(headlen>5) 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(datalen>0)data=new unsigned chardatalen; memcpy(data,buf+headlen*4,datalen);elsedata=NULL; data=0;UDP 的数据构造与解析方法:class UDPGrampublic:UDPGram;UDPGram(const unsigned char *buf,const int buflen); virtual UDPGram;unsigned int srcport;/源端口unsigned int destport;/目的端口int totallen;/总长int checksum;/校验和12 操作系统安全原理与技术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(datalen>0)data=new chardatalen; memcpy(data,buf+8,datalen);elsedata=NULL;IP 的数据构造与解析方法:class IPGrampublic:int version; /版本int IHL; /头部长度int servicetype; /效劳类型 type of service int precedence; /优先级13 操作系统安全原理与技术bool delay; /延迟bool throughtput; bool reliability;/吞吐量/牢靠性unsigned int totallen; /总长 total lengthint identification; /标识bool DF; /不要分段bool MF; /还有进一步的分段int fragoffset; /分段偏移 fragment offset int TTL; /生命期 time to liveint protocol; /协议,如 TCP,UDP unsigned 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;14 操作系统安全原理与技术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; elsedelay=false; if(*pos & 8)throughtput=true; elsethroughtput=false; if(*pos & 4)reliability=true; elsereliability=false;pos+; totallen=(*pos)*256+(*(pos+1);pos+=2;15 操作系统安全原理与技术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);16 操作系统安全原理与技术if(IHL>5)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(datalen>0)data=new unsigned chardatalen; memcpy(data,buf+IHL*4,datalen);elsedata=NULL;(留意:其他更多数据包见源程序五、 总结收获与体会通过本次课程设计,我学习到了更多的编程方法,对操作系统安全原理与技术这门课程有了一个比较完整的生疏和理解,知道了如何将防火墙与入侵检测的学问应用到实际编程中。 并且对使用 visual c+ 6.0 开发 windows 程序有了更深的生疏。通过这次设计,增加了我的检索自己所需学问的力量和调试C+程序的力量,也让我体会了编程学问的渊博,我们永 远都不行能把学问学完,只要努力,总能做的比以前更好。17

    注意事项

    本文(防火墙与入侵检测课程设计报告.docx)为本站会员(蓝**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开