毕业设计论文-简易Windows防火墙的设计与实现(含源程序代码).doc_第1页
毕业设计论文-简易Windows防火墙的设计与实现(含源程序代码).doc_第2页
毕业设计论文-简易Windows防火墙的设计与实现(含源程序代码).doc_第3页
毕业设计论文-简易Windows防火墙的设计与实现(含源程序代码).doc_第4页
毕业设计论文-简易Windows防火墙的设计与实现(含源程序代码).doc_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

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

文档简介

源程序代码等全套设计联系源程序代码等全套设计联系 QQ 174320523 各专业都有各专业都有 分类号 分类号 TP311 1TP311 1 U U D D C C D10621 408 2007 6003 0D10621 408 2007 6003 0 密密 级 公级 公 开开 编编 号 号 20030312242003031224 成成 都都 信信 息息 工工 程程 学学 院院 学学 位位 论论 文文 简易简易 WindowsWindows 防火墙的设计与实现防火墙的设计与实现 论文作者姓名 论文作者姓名 刘钟刘钟 申请学位专业 申请学位专业 计算机科学与技术计算机科学与技术 申请学位类别 申请学位类别 工学学士工学学士 指指导导教教师师姓姓名名 职职称称 索望索望 第 1 页 共 27 页 论文提交日期 论文提交日期 20072007 年年 0606 月月 1010 日日 简易简易 WindowsWindows 防火墙的设计与实现防火墙的设计与实现 摘摘 要要 当今时代是飞速发展的信息时代 计算机与信息处理技术日渐成熟 随着 Internet 和计算机网络技术的蓬勃发展 网络安全问题现在已经得到普遍重视 网络防火墙系统就是网络安全技术在实际中的应用之一 本设计实现的防火墙 采用 IP 过滤钩子驱动技术 过滤钩子驱动是内核模式驱动 它实现一个钩 子过滤回调函数 并用系统提供的IP 过滤驱动注册它 IP 过滤驱动随 后使用这个过滤钩子来决定如何处理进出系统的数据包 本防火墙由以 下几个模块组成 过滤规则添加模块 过滤规则显示模块 过滤规则存储模块 文件储存模块 安装卸载规则模块 IP 封包过滤驱动功能模块 用户只需要通 过主界面菜单和按钮就可以灵活地操作防火墙 有效地保护 Windows 系统的安 全 关键词关键词 防火墙 过滤钩子 过滤驱动 包过滤 The Design and Implement of Simple Windows Firewall Abstract The current era is a rapid development of information age The technologies of computer and information processing become maturity With the Internet and computer network technology to be flourishing network security that has been widely concerned Firewall system is one of the security technologies that used in the network This design has implemented a firewall adopting the IP filter hook driver technology it s driven through the kernel mode the filter hook callback function has been implemented and the filter hook driver is registered by the IP filter driver which is provided by system The IP filter driver uses the filter hook to handle the data packets in and out The firewall is composed of the following modules adding filter rules module display filter rules module storage filter rules module storage file module installation and unloading rules module IP packet driver module Users can finish the operation by using main menu and button and protect the system effectively Key words Firewall Filter Hook Filter Driver Packet Filtering 目目 录录 论文总页数 21 页 1 引言 1 1 1课题背景 1 1 2本课题研究意义 1 1 3本课题研究方法 1 2 防火墙概述 1 2 1防火墙的定义 1 2 2防火墙的基本策略 2 2 3包过滤防火墙 2 2 3 1 数据包 2 2 3 2 包过滤防火墙的工作原理 2 3 开发工具 3 3 1VISUAL C 6 0 3 3 2VSS 3 4 防火墙系统构成 3 4 1需求分析 3 4 2设计思路 4 4 3功能模块构成 4 4 4功能模块介绍 4 4 4 1 过滤规则添加删除功能模块 4 4 4 2 过滤规则显示功能模块 4 4 4 3 过滤规则存储功能模块 5 4 4 4 文件存储功能模块 5 4 4 5 文件载入功能模块 5 4 4 6 安装卸载功能摸块 5 4 4 7 IP 封包过滤驱动功能模块 5 5 防火墙设计 5 5 1程序关键类 5 5 1 1 应用程序类 CFireWallAPP 5 5 1 2 主框架类 CMainFrame 5 5 1 3 文档类 CFireWallDoc 6 5 1 4 视图类 CFireWallView 7 5 1 5 RuleInfo 类 7 5 2详细设计 8 5 2 1 主界面 8 5 2 2 添加过滤规则 8 5 2 3 删除过滤规则 11 5 3驱动程序设计 13 5 3 1 简介 13 5 3 2 结构图 14 5 3 3 该驱动的优点 14 5 3 4 本程序的驱动设计 14 6 程序测试 16 结 论 18 参考文献 19 致 谢 20 声 明 21 第 1 页 共 21 页 1 1引言引言 1 11 1课题背景课题背景 防火墙是一种隔离技术 是一类防范措施的总称 利用它使得内部网络与 Internet 或者其他外部网络之间相互隔离 通过限制网络互访来保护内部网络 防火墙是建立在内部网络与外部网络之间的唯一安全通道 简单的可以只用路 由器实现 复杂的可以用主机甚至一个子网来实现 它可以在 IP 层设置屏障 也可以用应用软件来阻止外来攻击 通过制定相应的安全规则 可以允许符合 条件的数据进入 同时将不符合条件的数据拒之门外 这样就可以阻止非法用 户的侵入 保证内部网络的安全 1 21 2本课题研究意义本课题研究意义 随着计算机技术和网络技术的发展 计算机网络给人们带来了很多便利 于此同时网络安全的问题也伴随着网络技术的发展而日趋严重 使用防火墙能 很好的提高系统的安全性 减少系统受到网络安全方面的威胁 本毕业设计选 择开发一个 Windows 下的防火墙 它能够对网络 IP 数据包按照用户的设置进 行过滤 通过此防火墙的开发锻炼了学生的实际动手能力对以后的学习和工作 能力的培养具有重要意义 1 31 3本课题研究方法本课题研究方法 本设计是使用 VC 6 0 的开发环境 运用 IP 过滤钩子驱动技术 设计和 实现的 本次毕业设计应首先分析防火墙的相关功能 结合本次毕业设计的相 关要求写出需求分析 其次 综合运用以前所学的相关知识 在设计中以需求 分析为基础 写出系统开发计划 实现流程及相关问题的实现方法 同时 在 开发设计与实现中 要保存好相关的设计文档 2 2防火墙概述防火墙概述 2 12 1防火墙的定义防火墙的定义 防火墙是指设置在不同网络 如可信任的企业内部网和不可信的公共网 或网络安全域之间的一系列部件的组合 它可通过监测 限制 更改跨越防火 墙的数据流 尽可能地对外部屏蔽网络内部的信息 结构和运行状况 以此来 实现网络的安全保护 在逻辑上 防火墙是一个分离器 一个限制器 也是一个分析器 有效地 监控了内部网和 Internet 之间的任何活动 保证了内部网络的安全 防火墙是设置在被保护网络和外部网络之间的一道屏障 实现网络的安全 保护 以防止发生不可预测的 潜在破坏性的侵入 防火墙本身具有较强的抗 攻击能力 它是提供信息安全服务 实现网络和信息安全的基础设施 第 2 页 共 21 页 2 22 2防火墙的基本策略防火墙的基本策略 按照美国国家计算机安全协会 NCSA 的建议 制定安全计划必须包括 服务访问策略和防火墙设计策略 服务访问策略应包括控制用户对某些 Internet 服务的访问 另外 用户也需要限制访问的方式 如 PPP 或 SLIP 在建立服务 访问政策时 需要注意两个方式 1 不允许从 Internet 上访问到用户的网络 但是允许个别用户 设定得到 的网络访问有限 Internet 站点 但必须进行地址伪装 2 允许有限的从 Internet 上访问到公司网络 如从 Internet 上只能访问公 司的 WWW 和 FTP 服务器 作为防火墙策略 就是定义实现服务访问策略的具体规则 在实现防火墙 策略时 用户可以采用以下两个原则之一 1 除了允许的事件之外 拒绝其它的任何事件 2 除了拒绝的事件之外 允许其它的任何事件 制定的策略是由一条条规则构成的 防火墙的规则可分为三条链 输入链 输出链和转发链 2 32 3包过滤防火墙包过滤防火墙 2 3 12 3 1 数据包数据包 数据包是指 IP 网络消息 IP 标准定义了在网上两台计算机之间发送的消 息的结构 结构上 一个包包含了一个信息头和应被传送数据的一段消息体 Linux 中包含的 IP 防火墙机制 3 种 IP 消息类型 ICMP Internet 控制消息协议 UDP 用户数据报协议 和 TCP 传输控制协议 所有的 IP 包头包含了源 目 的 IP 地址 IP 协议消息类型 包头里根据协议类型还包括了不同的字段 ICMP 数据包包含了一个类型字段 用来标识控制或状态消息类型 UDP 和 TCP 包包含了源和目的服务端口号 2 3 22 3 2 包过滤防火墙的工作原理包过滤防火墙的工作原理 采用这种技术的防火墙产品 通过在网络中的适当位置对数据包进行过滤 根据检查数据流中每个数据包的源地址 目的地址 所有的 TCP 端口号和 TCP 链路状态等要素 然后依据一组预定义的规则 以允许合乎逻辑的数据包通过 防火墙进入到内部网络 而将不合乎逻辑的数据包加以删除 因为路由器通常 分布在有不同安全需求和安全策略的网络的交界处 因此可以通过在路由器上 使用包过滤在可能的情况下实现只允许授权网络的数据进入 在这些路由器上 使用包过滤师一种比较经济的在现有路由基础结构上增加防火墙功能的机制 顾名思义 包过滤在路由过程中对指定包进行过滤 丢弃 对过滤的判断通常 基于单个包的头部所包含的内容 例如源地址 目的地址 协议 端口等 第 3 页 共 21 页 包过滤防火墙通常在操作系统内部实现 并且操作在 IP 网络和传输协议层 它在对基于 IP 包头信息实施过滤后 通过对包的路由作决策来保护系统 包过 滤防火墙由一组接受或禁止规则列表组成 这些规则明确定义了哪个包将被允 许或不允许通过网络接口 防火墙规则使用在上面描述的包头字段来决定是否 允许路由一个包通过 以达到它的目的 或则无声息的将包丢弃掉 或阻止包 并向它的发送机器返回一个错误状态 这些规则是基于特定的网络接口卡和主 机 IP 地址 网络层源和目的 IP 地址 传输层 TCP 和 UDP 服务端口 TCP 连 接标志 网络层 ICMP 消息类型及这些包是进入的还是发出的 包过滤功能是所有的防火墙都具备的一个基本功能 实际上防火墙要完成的 功能从根本上来说 就是要按照用户的要求来控制网络所流通的数据包 屏蔽那 些无益的连接 3 3开发工具开发工具 3 13 1Visual C 6 06 0 Visual C 6 0 是微软98 年推出的产品 它提供了强大的编译能力以及良 好的界面操作性 能够对Windows 9x Windows NT 以及Windows 2000 下的 C 程序设计提供完善的编程环境 同时Visual C 6 0 对网络 数据库等方面 的编程也都提供相应的环境支持 3 23 2VSS 版本控制是工作组软件开发中的重要方面 它能防止意外的文件丢失 允 许反追踪到早期版本 并能对版本进行分支 合并和管理 在软件开发和您需 要比较两种版本的文件或找回早期版本的文件时 源代码的控制是非常有用的 VSS 可以同 Visual Basic Visual C Visual J Visual InterDev Visual FoxPro 开发环境以及 Microsoft Office 应用程序集成在一起 提供了方便易用 面向项目的版本控制功能 Visual SourceSafe 可以处理由各 种开发语言 创作工具或应用程序所创建的任何文件类型 在提倡文件再使用 的今天 用户可以同时在文件和项目级进行工作 Visual SourceSafe 面向项目 的特性能更有效地管理工作组应用程序开发工作中的日常任务 4 4防火墙系统构成防火墙系统构成 4 14 1需求分析需求分析 该防火墙的主要功能是实现包过滤 其他功能主要包括以下几个方面 1 能设置过滤规则 包括 IP 地址 子网掩码 端口号 协议 2 能添加删除规则 3 能将过滤规则保存 第 4 页 共 21 页 4 能对过滤规则进行安装和卸载操作 即 将规则发送给 IP 过滤驱动或 从 IP 过滤驱动中删除规则 5 能正确完整的显示所添加的过滤规则 4 24 2设计思路设计思路 根据程序的需求来完成功能和模块化设计的思想 总体设计思路如下 任何程序都必须具有和用户进行信息交互的功能 因此用户接口部必须考 虑 根据功能要求 该部分应具备 用户操作的功能菜单 能对过滤规则进行 设置 显示规则界面 添加规则界面 这样程序的功能模块应该有 过滤规则添加删除功能模块 过滤规则显示 功能模块 过滤规则存储功能模块 文件储存功能模块 安装卸载规则功能模 块 4 34 3功能模块构成功能模块构成 功能模块构成如图 1 包过滤防火墙 过滤规则添加删除功能模块 过滤规则显示功能模块 过滤规则存储功能模块 文件储存功能模块 文件载入功能模块 安装卸载功能模块 IP 封包过滤驱动功能模块 图 1 功能模块图 4 44 4功能模块介绍功能模块介绍 4 4 14 4 1 过滤规则添加删除功能模块过滤规则添加删除功能模块 包过滤防火墙要进行数据包过滤就需要按照用户定义的规则进行包过滤 该功能模块就是使用户能够添加或删除过滤规则 过滤规则主要包括 源 IP 地 址 子网掩码 端口号 目的 IP 地址 子网掩码 端口号 协议 以及对符合 该规则的数据包是放行还是阻止进行设置 然后将设置好的规则添加到存储功 能模块 第 5 页 共 21 页 4 4 24 4 2 过滤规则显示功能模块过滤规则显示功能模块 该功能用于显示用户添加的规则 能够对每一条规则进行删除 安装 卸 载的操作 使防火墙过滤规则能够很详细的显示给用户 4 4 34 4 3 过滤规则存储功能模块过滤规则存储功能模块 该功能用于存储用户添加的过滤规则 接受用户对每一条规则的操作 并 按照用户的操作将规则进行处理 如 安装规则 则把用户选择的规则安装到 IP 过滤驱动 IP 接收到此规则后按照此规则进行数据包过滤 4 4 44 4 4 文件存储功能模块文件存储功能模块 使用户添加的过滤规则能够保存成文件的形式方便储存 在用户添加规则 后可以选择某一条规则进行保存 防火墙会将该规则保存为后缀名为 rul 的文 件 在下次打开防火墙的时候可以直接加载该规则 4 4 54 4 5 文件载入功能模块文件载入功能模块 相对于文件储存功能模块 该功能是实现用户可以导入一个后缀名为 rul 的并且保存了有效规则的文件 4 4 64 4 6 安装卸载功能摸块安装卸载功能摸块 防火墙要过滤数据包 就需要将 IP 过滤驱动按照定义的规则进行过滤 用 户通过添加规则将规则存储于防火墙的存储功能模块中 想要将规则发送给 IP 过滤驱动 就需要对该规则进行安装 安装和卸载的功能就是将过滤规则传送 给 IP 过滤驱动或是将已安装的规则从过滤驱动中删除 4 4 74 4 7 IPIP 封包过滤驱动功能模块封包过滤驱动功能模块 该功能模块是整个包过滤防火墙的核心部分 IP 封包过滤驱动能按照用户 定义的规则对数据包做出阻止或是放行的选择 5 5防火墙设计防火墙设计 5 15 1程序关键类程序关键类 5 1 15 1 1 应用程序类应用程序类 CFireWallAPP 每个 MFC 应用程序都必须包括一个从 CWinApp 派生的应用程序类 在本 程序中的应用程序类就是 CFireWAllApp 应用程序类构成了应用程序的主执行 线程 它封装了一个 Windows 应用程序的初始化 运行和终止 5 1 25 1 2 主框架类主框架类 CMainFrame 主框架类 CMainFrame 构成整个程序的框架 包括菜单 工具 按钮等 它构成了程序功能的主框架 下面列出了 CmainFrame 类中的主要方法和变量 第 6 页 共 21 页 class CMainFrame public CFrameWnd protected BOOL Installed 规则安装标志 TRUE 已安装 FALSE 未安装 protected BOOL started 开始过滤的标志 TRUE 已开始 FALSE 未开始 TDriver filterDriver 定义一个 TDriver 类的变量 TDriver ipFltDrv protected BOOL AddFilterToFw AddFilterToFw 完成将过滤钩子安装到防火墙 的功能 AFX MSG CMainFrame afx msg void OnAppExit 退出程序 afx msg void OnButtonadd 添加规则按钮 afx msg void OnButtondel 删除规则按钮 afx msg void OnButtonstart 开始过滤按钮 afx msg void OnButtonstop 停止过滤按钮 afx msg void OnButtonInstall 安装规则 afx msg void OnButtonuninstall 卸载规则 afx msg void OnMenuAddRule 添加规则菜单 afx msg void OnMenuDelRule 删除规则菜单 afx msg void OnMenuInstallRules 安装菜单 afx msg void OnMenuUninstallRules 卸载规则菜单 afx msg void OnMenuStart 开始过滤菜单 afx msg void OnMenuStop 停止过滤菜单 afx msg void OnMenuSaveRules 保存规则菜单 afx msg void OnMenuLoadRules 加载规则菜单 AFX MSG 在主框架类 CMainFrame 中定义了应用程序的所有基本功能 5 1 35 1 3 文档类文档类 CFireWallDoc MFC 程序中的文档类是用来存储数据变量的 在本程序中 CFireWallDoc 主 要用来存储用户添加的规则 当用户添加规则或删除规则时 就要向文档类 第 7 页 共 21 页 CFireWallDoc 中写入数据 当视图类 CFireWallView 需要将用户添加的规则显 示在规则列表时 或者将规则安装到驱动 就需要从文档类 CFireWallDoc 中读 取数据 class CFireWallDoc public CDocument public unsigned int nRules 规则序数 RuleInfo rules MAX RULES 最大规则数 int AddRule 添加规则 void DeleteRule unsigned int position 删除规则 void ResetRules 重置规则 即在加载规则前 需要删除规则列表中及 存储在文档类 CFireWallDoc 中的所有规则 其中 RuleInfo rule MAX RULES 是 RuleInfo 结构体的一个变量 该数组用 来存储规则 RuleInfo 类详细情况见 5 1 5 节介绍 5 1 45 1 4 视图类视图类 CFireWallView 视图类一般是用来显示信息的 在本程序中 CFireWallView 主要用来在 规则列表中显示存储在文档类 CFireWallDoc 中的规则 class CFireWallView public CFormView public CFireWallDoc GetDocument 指针指向文档类 和文档类 CFireWallDoc 关联 AFX VIRTUAL CFireWallView public protected virtual void OnInitialUpdate 在这个函数中初始化规则列表 AFX VIRTUAL public void UpdateList 更新规则列表 和 Doc 文档类保持一致 protected void AddRuleToList 将文档类 CFireWallDoc 中的规则显示出来 第 8 页 共 21 页 5 1 55 1 5 RuleInfo 类类 RuleInfo 类是用来定义过滤规则的数据结构 typedef struct RuleInfo unsigned long sourceIp unsigned long sourceMask unsigned short sourcePort unsigned long destinationIp unsigned long destinationMask unsigned short destinationPort unsigned int protocol int action RuleInfo PRuleInfo 5 25 2详细设计详细设计 5 2 15 2 1 主界面主界面 程序主界面如图 2 图 2 程序主界面 5 2 25 2 2 添加过滤规则添加过滤规则 添加过滤规则的功能是通过一个 添加规则 对话框完成 如图 3 第 9 页 共 21 页 图 3 添加规则对话框 添加规则功能是将对话框中的规则添加到存储数据的文档中 分两个步骤 1 取得添加规则对话框中的数据 int result UpdateData TRUE 使控件列表与控件关联 result inet addr m ipsource 从源 IP 地址编辑框获取源 IP 地址 赋给 srcIp result inet addr m srcMask 从源 IP 掩码编辑框获取源 IP 地址掩码赋给 srcMask result inet addr m ipdestination 从目的 IP 地址编辑框获取目 的 IP 地址赋给 dstIp result inet addr m dstMask 从目的 IP 掩码编辑框获取目 的 IP 掩码赋给 dstMask if m protocol TCP protocol 6 第 10 页 共 21 页 else if m protocol UDP protocol 17 else if m protocol ICMP protocol 1 else if m protocol 所有 protocol 0 if m action 放行 cAction 0 else cAction 1 srcPort m portsource 源端口 dstPort m portDestination 目的端口 2 将取得的数据添加到文档类中 BOOL CFireWallDoc AddRule unsigned long srcIp unsigned long srcMask unsigned short srcPort unsigned long dstIp unsigned long dstMask unsigned short dstPort unsigned int protocol int action rules nRules sourceIp srcIp rules nRules sourceMask srcMask rules nRules sourcePort srcPort rules nRules destinationIp dstIp rules nRules destinationMask dstMask rules nRules destinationPort dstPort rules nRules protocol protocol rules nRules action action nRules return TRUE 实现添加规则功能的程序流程图如图 4 第 11 页 共 21 页 图 4 添加规则流程图 5 2 35 2 3 删除过滤规则删除过滤规则 删除规则时 首先需要确定所要删除的规则 再将其从文档类中删除 同 时更新视图类的显示 当正在进行过滤时 则要先停止过滤 才能删除规则 删除规则 void CMainFrame OnButtondel CFireWallView view CFireWallView GetActiveView CFireWallDoc doc CFireWallDoc GetActiveDocument POSITION pos view m rules GetFirstSelectedItemPosition 选中的规 则 if started TRUE 如果正在过滤 CString strTemp strTemp Format 请先停止过滤 是 开始 格式匹配 取得对话框中的数据 将数据添加到 Doc 中 弹出添加规则对话框 结束 输入正确的规则 否 第 12 页 共 21 页 int position position view m rules GetNextSelectedItem pos position 是当前选择 的规则的下一条的序数 实现删除规则功能的程序流程如图 5 图 5 删除规则流程图 其中调用 DeleteRule 的代码为 CFireWallDoc doco CFireWallDoc GetActiveDocument 关联文档 类 doco DeleteRule position 调用 DeleteRule 函数删除规则 view UpdateList 更新规则列表的显示 void CFireWallDoc DeleteRule unsigned int position if position nRules return if position nRules 1 如果删除的规则不是最后一条 则将它删除后 后面的规则要往前移动 unsigned int i for i position 1 i nRules i 否 开始 取得当前选择的规则 正在过滤 调用 DeleteRule 更新列表显示 结束 停止过滤 是 第 13 页 共 21 页 rules i 1 sourceIp rules i sourceIp rules i 1 sourceMask rules i sourceMask rules i 1 sourcePort rules i sourcePort rules i 1 destinationIp rules i destinationIp rules i 1 destinationMask rules i destinationMask rules i 1 destinationPort rules i destinationPort rules i 1 protocol rules i protocol rules i 1 action rules i action nRules DeleteRule 调用的流程图如图 6 图 6 DeleteRule 的调用 5 35 3驱动程序设计驱动程序设计 5 3 15 3 1 简介简介 基于 Firewall Hook Driver 的包过滤驱动程序位于核心态 运行效率高 主 要用于在 IP 过滤驱动中拦截所有的网络数据包 根据过滤规则判别是否接收或 发送数据包 同时处理上层应用程序发送的 IRP 接收应用程序发送的过滤规 则等 安装过滤函数之前 先将过滤函数的地址填入 删除 开始 是最后一条 规则 后面规则往前移 删除 结束 取得当前规则 否是 第 14 页 共 21 页 IP SET FIREWALL HOOK INFO 结构的 FirewallPtr 指针中 Add 设置为 TRUE 并 指定该过滤函数优先级 Priority 然后向 IP 设备发送 IOCTL IOCTL IP SET FIREWALL HOOK 控制码 这样就完成了过滤函数的安装 卸载过滤函数的时候只用把 Add 设置为 FALSE 就行了 其他参数和安装时一 样 每个过滤函数可以设置一个优先级 系统调用这些函数的时候按照优先级 的顺序进行 直到某个函数返回 丢弃包 为止 如果所有的过滤函数都返回 允许包 那么这个包才能顺利通过系统 可以把这些过滤函数想象成一个过 滤链 所有的函数按照优先级排列 如果一个函数返回 丢弃包 这条过滤链 就断开了 5 3 25 3 2 结构图结构图 驱动程序结构如图 7 图 7 驱动结构图 5 3 35 3 3 该驱动的优点该驱动的优点 在 Windows 中这不是开发防火墙的唯一方法 其它的有诸如 NDIS 防火墙 TDI 防火墙 Winsock 分层防火墙 包过滤 API 等等 而 Filter Hook Driver 的 优点在于 1 这种方法所拥有的弹性可以使你过滤所有 IP 层 或以上 的通讯 但 不能过滤更低层的头部数据 例如 不能过滤以太帧数据 需要用 NDIS 过滤器 来做 2 这是一种简单的方法 安装防火墙和执行过滤功能非常简单 但包过 滤 API Packet Filtering API 更加容易使用 尽管它缺少弹性 例如不能处理包 第 15 页 共 21 页 的内容 不能用包过滤 API 修改内容 5 3 45 3 4 本程序的驱动设计本程序的驱动设计 本程序驱动的设计核心是通过使用 TDriver 类向 DrvFltIp 驱动程序发送控 制代码 START IP HOOK STOP IP HOOK ADD FILTER CLEAR FILTER 达到实现数据包过滤的目的 1 程序初始化时 调用 LoadDriver 加载 DrvFltIp 驱动 CMainFrame OnCreate ipFltDrv LoadDriver IpFilterDriver System32 Drivers IpFltDrv sys NU LL TRUE 2 当用户单击 开始过滤 按钮时 程序向驱动发送 START IP HOOK 控制代码 开始过滤 CMainFrame OnButtonstart filterDriver WriteIo START IP HOOK NULL 0 3 当用户单击 停止过滤 按钮时 程序向驱动发送 START IP HOOK 控制代码 停止过滤 CMainFrame OnButtonstop filterDriver WriteIo STOP IP HOOK NULL 0 4 当用户单击 安装规则 按钮时 程序向驱动发送 ADD FILTER 控制 代码 CMainFrame OnButtonInstall AddFilterToFw AddFilterToFw filterDriver WriteIo ADD FILTER 第 16 页 共 21 页 5 当用户单击 卸载规则 按钮时 程序向驱动发送 CLEAR FILTER 控 制代码 CMainFrame OnButtonuninstall filterDriver WriteIo CLEAR FILTER NULL 0 6 6 程序测试程序测试 计算机位于网关地址为 10 0 0 2 的局域网内 本地 IP 地址为 10 0 0 15 通过局域网连接于外部网络 可以 PING 通本地网关地址 10 0 0 2 和电信 DNS 服务器地址 61 139 2 69 如图 8 和图 9 图 8 PING 10 0 0 2 第 17 页 共 21 页 图 9 Ping 61 139 2 69 运行防火墙 点击 添加 按钮进行过滤规则设置 如图 10 源地址 10 0 0 2 目的地址 10 0 0 15 端口号 0 所有端口 协议 由于 PING 命令基于 ICMP 协议 所以协议选择 ICMP 行为 丢弃 图 10 添加规则图 点击 添加 按钮将规则保存到防火墙 如图 11 第 18 页 共 21 页 图 11 规则示图 点击 安装 防火墙将过滤规则添加到过滤驱动 点击 开始 防火墙开 始按照规则进行数据包过滤 如图 12 图 12 开

温馨提示

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

评论

0/150

提交评论