摘 要 网络安全问题长期威胁着网络终端用户,需要有有效的安全工具解决这个问题,个人防火墙就是其中的一种常用的安全工具。为了实现个人防火墙软件,选用VC++ 6.0开发工具。软件系统主要包括两项工程,一是核心模块设计,即DLL工程,实现了封包截获、管制动作和协议封包的解析任务,主要利用Winsock 2 SPI技术实现网络封包截获,之后利用控管规则对过往封包进行合法性检查和过滤,方法是首先利用Winsock 2 SPI技术建立winsock钩子,用它来截获winsock的调用,然后作出相应动作处理,动作处理需通过控管规则的检查后,确定socket连接是否允许通过,其中控管规则由用户层设置;二是用户模块设计,即EXE工程,实现用户界面和负责与DLL模块的通信,提供了3个主要界面,即封包监视、控管规则、控管规则设置。最后通过测试和应用,基本解决了终端用户的网络连接安全问题。(所有权: 毕业设计网 )
关键词: 过滤;动态连接库;Winsock 2 SPI;网络封包;协议封包 The Design of the Personal Firewall Based on Windows Abstract The terminal users of network are always threaten by the problems of security of network,so we need a effective tool to solve this problem.The personal firewall is one of the common tools of security. VC++ is selected to implement the personal firewall.The system has two projects mainly. One of the projects is the design of core module which can be called the project of DLL.This project implements behaviors of management and the analysis of packets of protocols. The technology of Winsock 2 SPI is used to capture of pakcets of network. After that, then the checking and filtering of the packets are done using the rules of control and management. At the beginning, the control rules build up the Hook of winsock which is used to capture the tranfer of winsock,and then it implements relative behaviors.The link of socket will be or not get through checking by the rules of control and management. The rules of control and management are set by the layer of user.Then, we should design the module of user which can be called the project of exe. It implements the interface of user and the module of communication with DLL. It provides three main interfaces, they are the watching of filtering packet, the rules of control and management and the setting of rules of control and management. Finally, it has solved the requirement of security of terminal users after the final testing and application.
Key words: Filter ;DLL;Winsock 2 SPI;Network packets; Protocol packets
本课题为防火墙软件,较多的使用系统接口,而且界面简单。另外,防火墙主要传播渠道是互联网,这就要求体积应尽量的小,安装尽量方便。所以选择VC为开发工具。(所有权: 毕业设计网 )
系统设计与模块划分 本课题要实现的具体功能 本设计实现的具体功能如下: 1. 封包监视 (1) 提供封包监视页面。 (2) 提供清空监视列表,停止/开始监视及停止/开始滚动功能。 2. 控管规则设置 (1) 手工添加,删除及修改控管规则。 (2) 自学习添加控管规则。 (3) 控管规则中目的网络IP地址段的设置。 (4) 提供控管规则设置页面。 3. 封包过滤 (1) DLL给出设置工作模式和设置控管规则的接口函数。工作模式分为3种形式:放行所有,拒绝所有和过滤。 (2) DLL根据工作模式和控管规则对过往封包进行过滤。 (3) DLL将通过的网络封包通知EXE取走 。
目录 1 引言 1 1.1 课题背景与意义 1 1.2 设计实现的主体功能 1 1.3 本课题的研究方法 1 2 WINSOCK 2 SPI编程技术 2 2.1 WINSOCK 2 SPI基础 2 2.2 传输服务提供者 2 3 开发平台与开发工具 2 4 系统设计与模块划分 3 (所有权: 毕业设计网 ) 4.1 本课题要实现的具体功能 3 4.2 程序工作流程图 3 4.3 模块划分 4 4.3.1 模块划分原则 4 4.3.2 模块结构 4 4.3.3 模块接口定义 5 4.4 控管规则文件结构设计 6 4.4.1 控管规则文件需要存储的内容 7 4.4.2 控管规则文件结构 8 4.5 界面设计 8 4.5.1 制定界面风格 8 4.5.2 界面设计文档 8 4.6 编码规则 12 5 核心功能的代码实现 12 5.1 DLL的封包截获 12 5.2 DLL的访问控管 16 5.2.1 对服务提供者函数做管制的函数 16 5.2.2 封包处理函数 17 5.2.3 管制函数 17 5.2.4 设置函数 20 6 测试 21 结 论 22 参考文献 22 致 谢 24 声 明 25
参考文献 [1] Davis Chapman(美国).学用VC++6.0[M].北京:清华大学出版社,1999年9月。 [2] 朱雁辉.Windows防火墙与网络封包截获技术[M].北京:电子工业出版社,2002年7月。 [3] 郑莉,董渊.C++语言程序设计[M].北京:清华大学出版社,2001年7月。 [4] 黎连业,张维,向东明.防火墙及其应用技术[M].北京:清华大学出版社,2004年7月。 [5] 孙鑫等.VC++深入详解[M].北京:电子工业出版社,2006年1月。 [6] 龚波.MFC技术内幕[M].北京:机械工业出版社,1999年5月。 [7] 阎慧等.防火墙原理与技术[M].北京:机械工业出版社,2004年4月。 |