(5) 允许本地主机(网络)和其它主机(网络)的所有连接;
(6) 拒绝本地主机(网络)和其它主机(网络)的所有连接;
(7) 允许本地主机(网络)和其它主机(网络)的指定端口的连接;
(8) 拒绝本地主机(网络)和其它主机(网络)的指定端口的连接;
下面简单介绍包过滤器的操作过程:
(1)包过滤设备端口要能够存储过滤规则;
(2)当端口接收到数据包时,分析数据包的包头。大多数的包过滤设备通常只能检查IP数据包、TCP数据包、或UDP数据包的包头中的信息;
(3)用特殊的方式存储过滤规则,这里要注意一点,要保证被应用于处理包的规则的顺序要同包过滤器中的规则存储序列一致;
(4)当数据包被规则中的任何一条拒绝通行的时候,丢弃该数据包;
(5)当数据包被规则中的任何一条允许通行的时候,继续处理该数据包;
(6)当包不满足规则中的任何一条的时候,阻塞该数据包;
包过滤功能是防火墙的一个基本功能,任何防火墙都应该拥有。事实上,从根本上来说,防火墙从诞生以来,需要它完成的功能就是根据用户的需求,对进出网络的数据包进行合理的操作,决定处理方法。
2.3 设计方案
2.3.1 开发硬件、软件平台及开发工具
(1)硬件环境:
开发该系统使用的是笔记本电脑:
处理器:Intel Core i5
内存:2GB;
网络:局域网。
(2)软件环境、开发工具:
我选择的是在windows的环境下开发包过滤防火墙,是基于windows XP系统而言的。另外,我选用了WinXP_DDK和Visual C++6.0还有QuickSys作为开发工具。
DDK的全称是Device Development Kit,也就是设备开发包。DDK之中提供了丰富的Windows内部信息,比如Windows内部函数、变量定义、结构定义等等,当你想要开发一个设备驱动程序的时候,例如显卡驱动程序等,就必须要使用DDK来开发。通过DDK所提供的那些内部信息,你就能够编写深入到Windows内部,甚至可以绕过Windows安全机制的程序。
Visual C++6.0是1998年微软推出的产品,它拥有强大的编译能力、良好的界面操作性、非常好的稳定性和兼容性。它也是Windows应用程序开发的主流工具,同时也很适合操作系统的底层开发。Visual C++6.0不仅仅是一个编译器,同时它还可以作为一个全面的应用程序开发环境,应用于专业级的Windows应用程序开发。Visual C++6.0也是一个集成开发工具,它提供可视化的资源编辑功能以及软件代码自动生成功能。系统会为我们在应用程序开发过程中,自动生成大量的各类文件,对我们的开发过程而言,这当然是莫大的福音。
Visual C++6.0采用的是MFC框架,MFC编程充分体现了面向对象编程技术的长处,在我们编程过程中,不用再过于关心对象的方法是如何实现的,类库中拥有丰富的各类对象,它们拥有强大的功能。运用它们,能使我们程序中的绝大部分功能得到很好地实现,这将大大减少程序员们在应用程序开发过程中编写的代码量,强有力地保证程序的良好可调试性。MFC类库中的对象的那些属性和方法,都经过了极其谨慎的编写,也严格的调试过,所以还是非常可靠的。通常人们常常将MFC理解为一个类库,但是它更是一种程序结构,是一种编程风格。MFC可以说是一个扩展了的C++类层次结构,能够让Windows应用程序开发变得更容易。所有最难搞定的问题,MFC能够帮你完成,这就是使用MFC框架的最大好处。MFC中很多被调用的成员函数已经能够完成你自己可能很难完成的工作,这样一来,你的应用程序开发的速度就能极大提升。 VC++Filter-Hook Driver包过滤防火墙的编程实现(4):http://www.751com.cn/jisuanji/lunwen_21721.html