论文部分内容阅读
绪论随着越来越多的主机连入网络,网络安全变得越来越重要。增强网络安全的一种机制就是过滤掉那些潜在的不怀好意的网络数据包。防火墙就是提供基于策略的网络过滤,用于阻挡网络策略所禁止的数据流通过。防火墙由几部分组成,但最关键的部分通常是包过滤。包过滤分两类:无状态过滤(传统的)、有状态过滤。状态过滤能够跟踪已建立的连接,并能够将到达的数据包与它们关联起来,而无状态过滤则仅仅依赖于单个数据包来做出决策。状态过滤意味着防火墙不仅仅检测单个数据包,而且检测该包所属的连接。如果该数据包通过了防火墙的过滤规则,那么它将在状态表中建立起一个入口。当数据包到达时,在应用防火墙的规则之前,首先搜索状态表看是否有匹配的入口,如果该数据包属于状态表中所跟踪的连接中的一部分,那么数据包将无条件通过,而不需要遍历过滤规则。无状态过滤防火墙相对于状态过滤来说实现起来简单,但是配置复杂,而且不太安全。对于无状态过滤来说,每个到达的数据包都是新的数据包(于在此之前或之后到达的数据包没有任何关联)。因为每个会话都有两端,因此,无状态过滤对于每个会话来说需要两条规则,一条用于请求,一条用于应答。因为状态防火墙要使用状态表来进行决策,因此状态表对于状态防火墙来说至关重要,特别是在那些要求 7X24 小时不间断的为用户提供访问服务的网络系统中,但目前防火墙存在一个单点失效的问题,一旦防火墙倒塌,内部用户就与外网隔离开了。我们可以使用两个(或多个)防火墙来解决这个问题。所有数据都通过主防火墙,当它失效时,备份防火墙从失效处开始接管它的工作。这样,现有连接得到了保存,网络继续通信,就像什么事情都没发生一样。 <WP=85>二、本文的主要研究内容本文的主要研究工作分为两个部分。第一部分是分析状态防火墙的原理以及目前linux内核中防火墙的实现,并对其状态过滤机制作了改进,在此基础之上,分两种情况实现了状态防火墙中状态表的同步,从而使得从备份防火墙在接管主防火墙工作时状态表的一致,能够持续的提供服务。第二部分是网络接管部分,网络接管主要根据vrrp协议来实现,目前Linux上的实现vrrpd只能监控一个网络接口的状态,不能同时监控多个网络接口,本文在此基础之上实现了多网络接口的接管。归纳起来,本文的创造性工作和所得到的结论如下:深入分析了当前linux内核状态防火墙的实现,在linux中,状态的检测由连接跟踪机制来完成,连接的状态并不用来进行过滤,只是用于作为过滤规则中的一匹配选项,这样过滤的速度会有所下降,本文在连接跟踪的基础之上,允许根据连接的状态来进行过滤,一旦发现该连接已经建立起来(表示允许该连接通过),那么该连接上所有的数据包将不再遍历过滤规则,这样提高了防火墙的处理速度和性能。分两种情形实现了状态表同步1、防火墙之间通过共享媒质连接,这种情况下,两个节点同时接收数据包,维护着相同的状态信息,但是处于Standby状态的防火墙不对数据包进行转发,只有处于Active状态的防火墙对数据包进行转发。因此当处于Active状态的防火墙出现故障时(包括掉电、连接的网络线路有至少一根出现故障),备份防火墙将在很短的时间内变为Active状态,并接替原Active状态防火墙的IP和MAC地址,对防火墙两端的设备完全透明。并且由于Standby状态的防火墙与Active状态的防火墙维持的状态连接信息完全相同,因此,对原有的连接也完全透明,不需要重新进行连接。2、当防火墙之间不是通过共享媒质连接时,如采用交换机,此时情况发生了变化,交换机不会将数据包转发到原Standby状态的防火墙所连接的接口,我们<WP=86>需要将主防火墙中的状态更新信息传给备份防火墙,节点之间通信本文采用组播通信,由于组播通信依赖udp进行传输:不可靠。为保证数据到达的完整性,本文实现了可重传机制。在备份节点进行初始化时,主节点会首先将目前状态表所有信息复制一份给备份节点,备份节点初始化之后,一方面根据主节点传过来的状态更新信息更新自己的状态表,另外一方面监控主节点的状态,一旦发现主节点失效,就进行接管。实现了多网络接口的接管由于防火墙一般用于局域网和外网之间,存在多个网络接口,当发现主节点失效时,其上的各网络接口所对应的网络应该进行同步接管。目前linux下的vrrpd能够进行单网络接口的监控,它是依据vrrp(virtual router redundancy protocol)协议,当隔一定的时限未收到主节点的通告报文时,就接管主节点上的网络,但是它运行在单网络接口上,不能同时监控多接口,本文基于当前vrrpd的实现,实现了多网络接口的监控,由于网络接管时间可以调整,默认情况下是3秒,能够满足用户的要求,而且对用户来说网络的接管是透明的。结论本文所实现的高可用状态防火墙具有广泛的适用性、性能好、先进性、可靠性好等优点,而且基于linux这个开放源代码的系统来进行研究和实现,具有较高的性价比。随着linux在服务器端日益表现出的良好的稳定性和其低廉的价格优势(自然而然的高性价比),同时linux下的防火墙的运行表现也得到了也越来越多的用户的一致好评?