1、能够捕获发送给该计算机的所有链路层帧;
2、能够感知所收到IP分组的网络层和运输层主要协议字段内容;
3、能够根据预先制定的规则对IP分组进行过滤;
4、能够方便地添加、删除、编辑、保存和读取过滤规则。
5、所编制的防火墙软件应能独立运行。
2.2 包过滤防火墙原理说明
使用包过滤技术开发的防火墙,都是在网络上的合适的位置,对数据包进行过滤。首先根据数据包包头部分所包含的源IP地址、目的IP地址、源端口、目的端口、协议类型以及数据包传递方向等,根据一组事先定义好的规则,允许符合规则设定的数据包通过防火墙,进入到内部网络,丢弃掉所有不符合规则设定的数据包。包过滤防火墙主要是在路由器上实现的,因为,路由器是属于网络的交界地带,会有许许多多的进进出出的数据包经过。通过在路由器上使用包过滤技术,仅仅允许被授权的网络的数据进出,这样能使网络更加安全。另外,这也是一种很经济的机制,借助现有的路由基础结构,结合包过滤技术,完全可以形成一个功能较为强大的防火墙,既经济又实用。包过滤实际上实现的功能就是在路由的过程中,过滤指定的数据包。对于过滤操作的判定,一般是基于单个包的头部所包含的内容,依据过滤规则来进行。
包过滤防火墙一般是作用于IP网络层和传输层,在对于IP包的包头信息进行过滤条件检查之后,需要决定包的路由,保护系统安全。包过滤防火墙之中有个非常重要的组成部分——一组决定接受或禁止的操作的规则列表。通过这部分,防火墙能够明确决定哪个包将被允许通过网络接口,哪个包被拒绝通过网络接口。过滤规则的主要信息包括:
(1)IP源地址
(2)IP目标地址
(3)协议(TCP包、UDP包和ICMP包)
(4)TCP或UDP包的源端口
(5) TCP或UDP包的目标端口
(6) ICMP消息类型
(7)TCP包头中的ACK位
(8)数据包到达的端口
(9)数据包出去的端口
在TCP/IP协议之中,每个服务是有自己特定的端口号的,例如:HTTP的标准端口号是80等等。如果我们发现某些服务对计算机系统安全构成威胁,为了禁止这些服务,我们可以通过屏蔽掉与该服务相对的特定的端口来实现。另外,包过滤防火墙还能够阻塞内部主机与外部主机的连接,或者阻塞与另外一个网络之间的连接。
提及数据包过滤,不得不提一类特殊的路由器——过滤路由器,这种路由器和普通的路由器差别很大。普通的路由器完成的功能主要是,通过检查数据包的目标IP地址,根据特定的算法,找到一个到目的IP地址的最佳路径。这样的话就很可能有两种情况出现:
(1)如果路由器能够找到到达目标IP地址的一个路径,那么就会将数据包发送出去;
(2)如果路由器寻找不到一个到达目标IP地址的合适路径,那么就通知该数据包的发送者,该数据包不可达。
与此不同,过滤路由器完成的功能更加强大。它会仔细检查数据包,一般可以完成两大功能:
(1)寻找有没有到达目标IP地址的路径;
(2)决定是否应该发送数据包。
第二项功能决定于过滤路由器的过滤策略,并且是强制执行的。
路由器的过滤策略主要有这些:
(1) 允许来自某个主机(网段)的所有连接;
(2) 拒绝来自某个主机(网段)的所有连接;
(3) 允许来自某个主机(网段)的指定端口的连接;
(4) 拒绝来自某个主机(网段)的指定端口的连接; VC++Filter-Hook Driver包过滤防火墙的编程实现(3):http://www.youerw.com/jisuanji/lunwen_21721.html