防火墙与入侵检测课程设计报告--哈工大_第1页
防火墙与入侵检测课程设计报告--哈工大_第2页
防火墙与入侵检测课程设计报告--哈工大_第3页
防火墙与入侵检测课程设计报告--哈工大_第4页
防火墙与入侵检测课程设计报告--哈工大_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Harbin Institute of Technology at Weihai防火墙与入侵检测课程设计报告课程名称: 防火墙与入侵检测 设计题目: 混合型简易防火墙 院 系: 计算机科学与技术学院 班 级: 设 计 者: 学 号: 指导教师: 需要源程序请联系本人 设计时间: 2012年11月11日-2012年11月22日 哈尔滨工业大学(威海)二零一二年十一月哈尔滨工业大学(威海)计算机学院防火墙与入侵检测课程设计验收及成绩评定表(项目组)项目名称职责学 号姓 名主 要 分 工组长09进行需求分析、概要设计、主要部分代码编写、代码注释、进行文档编写整理组员0进行需求分析、概要设计、相关部

2、分代码编写、代码注释、运行调试软件设计开始日期项目完成日期文 档 评 审 成 绩 (共50分)评审项目评审内容成绩标准评审成绩项目名称课题是否从实际出发,是否具有创意等10文档格式文档格式是否规范;文字是否规范;图表是否规范;术语是否准确等20分文档质量程序设计思想与整体框架是否清晰等20分文档总体评价总成绩程 序 功 能 完 备 性 评 审 成 绩 (共 50 分)评审项目评 审 内 容成绩标准评审成绩程序运行状况程序是否能正常运行;是否出现死锁;是否遇到错误而中止运行10分程序正确性对于给定的输入数据,是否能得到正确的输出结果15分程序与文档的一致性程序与各种文档的内容是否一致5 分程序的

3、代码量程序代码量的大小10分实现方法图形界面或命令行界面,美观程度5分实现语言面向过程或面向对象5分程序总体评价总成绩哈尔滨工业大学(威海)课程设计任务书姓 名: 学 号: 院(系): 计算机科学与技术学院 专 业:信息安全 任务起止日期: 2012年11月11日-2012年11月22日课程设计题目:简易防火墙设计 问题阐述与分析: 设计一个混合型防火墙或入侵检测系统,保证网络安全,并在实际网络环境中进行测试。 一、设计背景:网络安全问题日益严重,针对网络中可能存在的隐患,在做安全设计时,我们必须考虑网络安全问题,针对这些安全问题做相应的措施。二、设计实现意义: 实现以太网中网络数据包的截获分

4、析,通过设置一些简单的过滤规则,实现封包的过滤,进而避免一些常用的攻击。通过动态链接库实现网络中基本协议的分析,记录入日志,如果发现有危险行为,并对用户做出报警行为。 工作量:1、界面方面:可配置、可显示系统运行结果。2、规则设置:a)自行设计并实现防火墙或入侵检测系统的规则语言,并撰写相应规则语言的解析器。b)规则配置灵活,至少涉及IP地址(IP地址段)、端口、传输协议等。c)配置方式:分为立即更新与定量更新(时间与数量两种)。3、运行结果:对运行结果分析,并以图表形式动态连续展示。4、日志方面:记录日志,分析,并将运行结果存入数据库。5、相关文档:a)概要设计,画出系统结构图,主要算法流程

5、图等b)测试报告。6、代码部分:程序源码要有相应注释,每个函数要写明作用、入口参数含义、返回值含义,程度代码的关键部分添加注释。 工作计划安排:2012年11月12日-2012年11月16日:前期需求分析,知识准备。2012年11月17日-2012年11月18日:系统概要设计。2012年11月19日-2012年11月21日:进行界面设计,主要代码编写。2012年11月22日-2012年11月23日:相关文档编写。 同组设计者及分工:组长: 黄崇远分工:进行需求分析、概要设计、主要部分代码编写、代码注释、进行文档编写整理组员: 邢欣分工:进行需求分析、概要设计、相关部分代码编写、代码注释、运行调

6、试软件目录一、软硬件运行环境2二、项目研究背景与意义21.背景意义:22.需求分析:2三、关键技术及解决方案31.程序框架:32.函数入口及调用关系:33.程序控制基本流程图:44.程序主要代码:5四、测试141.在程序调试阶段遇到的问题:142.问题及难点所在:143.运行结果:14(1)TCP 80端口的测试结果:14(2)拦截指定Udp截图15(2)拦截指定IP :172.31.159.15615(3)拦截指定类型的ICMP 报文16五、总结(收获与体会)16一、软硬件运行环境l 硬件推荐配置个人微型计算机l 软件运行环境Windows xp系统二、项目研究背景与意义1.背景意义:个人P

7、C机在上网时很可能无意间访问了恶意的网络页面而导致计算机被植入恶意插件或木马,严重影响上网浏览的质量,使个人计算机安全遭受严重危险。设计出适合个人的小型防火墙可以对个人计算机设置各种基本的网络访问规则,过滤不受信任的网络数据,阻止对不受信任的网站的访问,从而阻止恶意插件或木马。有效防止网络攻击,保护个人计算机上网安全。2.需求分析: a.能够对IP层进行按照数据包的源和目的地址进行筛选,过滤不安全的网络交互。b.能够实现对TCP连接的控制,通过控制源和目的端口对TCP连接进行检测,可以对按照规则设置的端口进行数据包拦截,阻止TCP的正常连接。c.能够实现对机器发送ICMP包的控制,通过设定允许

8、或阻止特定的ICMP数据包类型,对ICMP包进行过滤。d.能够依照MAC地址进行指定拦截。e.能够控制UDP连接,对指定端口进行封锁。阻止UDP的正常连接。三、关键技术及解决方案 主程序1.程序框架:ICMP控制TCP控制IP控制源端口控制目的端口控制ICMP报文类型控制目的IP地址控制源IP地址控制2.函数入口及调用关系序号函数名称功能描述参数描述备注1CKingSocket. SocketInit()Kingsocket.Dll初始化无无2CKingSocket.SocketRemove()卸载驱动无无3CKingSocket. SocketSetup()安装驱动无无4CKingSocke

9、t. SetRuleType()设置操作类型(拦默认截或通过)(BLOCK/ PASS)无5CKingSocket. SetRule()设置协议规则(Pro_Rule,FALSE/TRUE)无6CKingSocket. GetLog()获取包头日志(LogDisplay,(CMyDlg *)pPara)调用解析包头函数7LogDisplay()解析包头日志函数(PLOG_PACKET_NODE pPacketHeader, PVOID pParameter )无8LogThread()监听线程函数(LPVOID pPara)调用GetLog()3.程序控制基本流程图:4.程序主要代码(1)主要

10、数据结构typedef struct ip_header/IP头 BYTE ver_ihl;/版本 BYTE tos;/TOS服务类型 WORD tlen;/包总长 WORD identification;/标识 WORD flags_fo;/标志位 BYTE ttl;/TTL BYTE proto;/Protocol WORD checksum;/校验和 IPAddr saddr;/源地址 IPAddr daddr;/目的地址 WORD op_pad;/选项IPHEADER,*PIPHEADER;typedef struct tcp_header /Tcp头 WORD sport; /16位

11、源端口 WORD dport; /16位目的端口 TCPHEADER,*PTCPHEADER; void CMyDlg:OnBnClickedStart()/开始执行所定义的规则DWORD ID;m_bRuning=true;m_hThread=:CreateThread (NULL,0,LogThread,this,0,&ID);/创建进程开始监听GetDlgItem(IDC_STOP)-EnableWindow (TRUE);GetDlgItem(IDC_START)-EnableWindow (FALSE);(2)字段解析bool LogDisplay( PLOG_PACKET_NODE

12、 pPacketHeader, PVOID pParameter ) CMyDlg *pDlg=(CMyDlg *)pParameter; ITEM item; switch(pPacketHeader-bPass )/操作类型字段 case PACKET_PASS: item.action =通过; break; case PACKET_BLOCK: item.action =拦截; break; /IP段赋值 PIP_HEADER pIp=(PIP_HEADER)pPacketHeader-PacketContext; item.srcIP .Format (%d.%d.%d.%d, pI

13、p-SourceIp 0, pIp-SourceIp 1, pIp-SourceIp 2, pIp-SourceIp 3); item.desIP .Format (%d.%d.%d.%d, pIp-DestinationIp 0, pIp-DestinationIp 1, pIp-DestinationIp 2, pIp-DestinationIp 3); item.size.Format (%d,htons(pIp-DatagramLength); switch(pIp-Protocol )/协议类型段 case ICMP: item.type =ICMP; break; case TCP

14、: item.type =TCP; if(pPacketHeader-PacketSize =(TCP_HEADER_LENGTH+pIp-HeaderLength*4 ) PTCPHEADER pTcp=PTCPHEADER(pPacketHeader-PacketContext)+pIp-HeaderLength*4); item.desPort.Format (%d,htons(pTcp-dport );/端口赋值 item.srcPort.Format (%d,htons(pTcp-sport ); break; case UDP: item.type =UDP; if(pPacket

15、Header-PacketSize =(UDP_HEADER_LENGTH+pIp-HeaderLength*4 ) PTCPHEADER pTcp=PTCPHEADER(pPacketHeader-PacketContext)+pIp-HeaderLength*4); item.desPort.Format (%d,htons(pTcp-dport );/端口赋值 item.srcPort.Format (%d,htons(pTcp-sport ); break; case EGP: item.type =EGP;/外部网关协议 break; case IGMP: item.type =IG

16、MP; break; pDlg-Add2MyListCtrl (item); return true;(3)规则添加DWORD WINAPI LogThread(LPVOID pPara)gSocket.GetLog(LogDisplay,(CMyDlg *)pPara);/将包头日志一个一个地通过回调函数返回来,供程序进一步使用。return 0;void CMyDlg:OnBnClickedButton3()UpdateData();CString strTemp;switch(m_curRule)case 1:_TCP_RULE *TcpRule=new _TCP_RULE;strTem

17、p=m_SrcText;/strTemp.TcpRule-SrcPort =atoi(strTemp.GetBuffer();strTemp=m_DestText;TcpRule-DesPort=atoi(strTemp.GetBuffer();TcpRule-Type =RECVRULE;/TcpRule-Next=NULL;gSocket.SetRule (*TcpRule,TRUE);strTemp.Format(TCP 源端口:%d 目的端口%d RECVRULE,TcpRule-SrcPort,TcpRule-DesPort);int i=m_pListBoxm_curRule-1-

18、AddString(strTemp);m_pListBoxm_curRule-1-SetItemDataPtr(i,(void *)TcpRule);/该ip规则保存为列表项的数据MessageBox(TCP规则添加成功!);break;case 2:_UDP_RULE *UdpRule=new _UDP_RULE;strTemp=m_SrcText;/strTemp.UdpRule-SrcPort =atoi(strTemp.GetBuffer();strTemp=m_DestText;UdpRule-DesPort=atoi(strTemp.GetBuffer();UdpRule-Type

19、 =RECVRULE;/gSocket.SetRule (*UdpRule,TRUE);strTemp.Format(UDP 源端口:%d 目的端口%d RECVRULE,UdpRule-SrcPort,UdpRule-DesPort);int i=m_pListBoxm_curRule-1-AddString(strTemp);m_pListBoxm_curRule-1-SetItemDataPtr(i,(void *)UdpRule);/该ip规则保存为列表项的数据MessageBox(UDP规则添加成功!);break;case 3:_IP_RULE *IpRule=new _IP_RU

20、LE;/获取源IP,目的IP,设定过滤规则m_ipDestCtrl.GetAddress(IpRule-DesIp 0,IpRule-DesIp1,IpRule-DesIp2,IpRule-DesIp3);m_ipSrcCtrl.GetAddress(IpRule-SrcIp 0,IpRule-SrcIp1,IpRule-SrcIp2,IpRule-SrcIp3);IpRule-ProType = 0;IpRule-Type = SENDRULE;/对于未做局域网代理的注意区别,有些规则只有在代理机上有意义IpRule-Next = NULL;gSocket.SetRule (*IpRule,

21、TRUE);strTemp.Format(IP 源端:%d.%d.%d.%d目的:%d.%d.%d.%d SENDRULE,IpRule-SrcIp0,IpRule-SrcIp1,IpRule-SrcIp2,IpRule-SrcIp3,IpRule-DesIp0,IpRule-DesIp1,IpRule-DesIp2,IpRule-DesIp3);int i=m_pListBoxm_curRule-1-AddString(strTemp);m_pListBoxm_curRule-1-SetItemDataPtr(i,(void *)IpRule);/该ip规则保存为列表项的数据MessageB

22、ox(IP规则添加成功!);break;case 4:/*常见的ICMP报文:类型代码 类型描述 0 响应应答(ECHO-REPLY) 3 不可到达 4 源抑制 5 重定向 8 响应请求(ECHO-REQUEST) 11 超时 12 参数失灵 13 时间戳请求 14 时间戳应答 15 信息请求(*已作废) 16 信息应答(*已作废) 17 地址掩码请求 18 地址掩码应答*/_ICMP_RULE *pIcmpRule=new _ICMP_RULE;strTemp=m_SrcText;pIcmpRule-IcmpType=atoi(strTemp.GetBuffer();pIcmpRule-Ty

23、pe=SENDRULE;/gSocket.SetRule (*pIcmpRule,TRUE);strTemp.Format(ICMP 过滤包类型%d SENDRULE,pIcmpRule-IcmpType);int i=m_pListBoxm_curRule-1-AddString(strTemp);m_pListBoxm_curRule-1-SetItemDataPtr(i,(void *)pIcmpRule);/该ip规则保存为列表项的数据MessageBox(ICMP规则添加成功!);break;case 5:_MAC_RULE *pMacRule=new _MAC_RULE;/获取源M

24、AC,目的MAC,设定过滤规则strTemp=m_SrcText;/strTemp.TrimLeft();strTemp.Trim();/字符与十六进制数字转换BYTE tmpValue1,tmpValue2;bool isDouble=FALSE;int index=0;/Mac地址索引for(int j=0;j=A)tmpValue1=(BYTE)(tmp-A+10);elsetmpValue1=(BYTE)(tmp-0);tmpValue1= tmpValue1=A)tmpValue2=(BYTE)(tmp-A+10);elsetmpValue2=(BYTE)(tmp-0);tmpVal

25、ue2&=15;/取其后四位pMacRule-SrcMacindex+=tmpValue1+tmpValue2;/组合成十六进制mac地址isDouble=FALSE;/下次是单位strTemp=m_DestText;strTemp.Trim();index=0;isDouble=FALSE;for(int j=0;j=A)tmpValue1=(BYTE)(tmp-A+10);elsetmpValue1=(BYTE)(tmp-0);tmpValue1=tmpValue1=A)tmpValue2=(BYTE)(tmp-A+10);elsetmpValue2=(BYTE)(tmp-0);tmpValue2&=15;/取其后四位pMacRule-DesMacindex+=tmpVa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论