首页 理论教育 Linux集群防火墙技术研究

Linux集群防火墙技术研究

时间:2023-10-17 理论教育 版权反馈
【摘要】:传统单一的防火墙已经限制网络宽带的增长,极大地制约了网络的实际应用,同时也降低了网络性能及其可扩展性。防火墙经历了由简单到复杂、功能不断丰富和性能不断增强的过程,其采用的技术大致分为几种类型。③状态检测技术:状态检测防火墙是由Checkpoint公司率先提出的,又称为动态包过滤防火墙。

Linux集群防火墙技术研究

传统单一的防火墙已经限制网络宽带的增长,极大地制约了网络的实际应用,同时也降低了网络性能及其可扩展性。主要原因有:随着网络视频、IPTV和P2P业务的广泛应用,导致互联网络流量高速增长,防火墙网络带宽不够;防火墙所能处理的连接数目有限,无法处理过多用户的通信需求;防火墙身兼认证、访问控制、完整性检查等多项任务,处理能力有限。单一的防火墙不仅存在性能问题,还存在单点故障的瓶颈问题。为了解决这种问题,目前大多数防火墙厂商采用了双机热备的方式。双机热备系统由两台防火墙及双机热备软件组成,它采用主从工作方式,即一台防火墙节点处于活动工作状态,称为活动防火墙;另一台防火墙节点为备用机,处于热等待监控状态,但是并没有改变防火墙的单点接入方式。

(一)防火墙技术

防火墙是一种网络安全产品,是在两个网络之间强制实施访问控制策略的一个系统或一组系统。它应具有的功能大致包括:拒绝未经授权的用户访问网络;阻止未经授权的用户存取敏感数据;允许合法用户不受妨碍地访问网络资源。

防火墙经历了由简单到复杂、功能不断丰富和性能不断增强的过程,其采用的技术大致分为几种类型。①包过滤技术:析进出内部网络的所有数据包,按照一定的安全策略(包过滤规则)决定数据包是否能被允许通过。包过滤规则是以所收到的数据包包头信息为基础,如正数据包源地址、正数据包目的地址、封装协议类型(TCP、UDP、ICMP等)、TCP/UDP源端口号、TCP/UDP目的端口号、ICMP报文类型等。当一个数据包满足过滤规则,则允许该数据包通过,否则拒绝通过。②代理技术:代理技术与包过滤技术完全不同,包过滤是在网络层拦截所有的数据包,而代理技术是针对每一个特定应用都有一个程序。代理的原理是在应用层实现防火墙功能,即彻底隔断通信两端的直接通信,所有的通信都必须经过应用层代理转发。③状态检测技术:状态检测防火墙是由Checkpoint公司率先提出的,又称为动态包过滤防火墙。状态检测技术对于新建的应用链接,首先检查预先设置的安全规则,允许符合规则的链接通过,然后在内存中记录下该链接的相关信息,生成状态检测表。最后对于该链接的后续数据包,只要符合状态表,就可以通过。④其他防火墙技术:除了前面介绍的包过滤、代理、状态检测技术被广泛应用于防火墙系统外,一些新的技术正在防火墙产品中被采用,主要有NAT、VPN、内容检查、加密、身份认证等。

(二)防火墙的体系结构

防火墙一般有不同的体系结构,如屏蔽路由器体系结构、双重宿主主机体系结构、屏蔽主机防火墙体系结构和屏蔽子网防火墙体系结构。

屏蔽路由器,又称包过滤路由器,在一般路由器的基础上增加了一些新的安全控制功能,是一个检查通过它的数据包的路由器。这个方法在防火墙概念提出初期非常流行,主要是因为很多公司已经具备了这样的硬件条件,也没有专门的防火墙设备推出。原有路由器设备的公司只需要进行一些另外的包过滤配置即可实现防火墙安全策略。

双重宿主主机,又称应用型防火墙,指在运行防火墙软件的堡垒主机上运行代理服务器。双重宿主主机是一个被取消路由功能的主机,与双重宿主主机相连的外部网络与内部网络之间在网络层是断开的。这样做的目的是使外部网络无法了解内部网络的拓扑结构。双重宿主主机至少有两个网络接口,这种主机可以充当与这些接口相连的网络之间的路由器。它能从一个网络向另一个网络发送正数据包,然而双重宿主主机的防火墙体系结构禁止这种发送。因此,正数据包并不是从一个网络直接发送到另一个网络。外部网络能与双重宿主主机通信,内部网络也能与双重宿主主机通信。但是,外部网络与内部网络不能直接通信,它们之间的通信必须经过双重宿主主机的过滤和控制。

屏蔽主机防火墙由包过滤路由器和堡垒主机组成,它所提供的安全性能要比包过滤防火墙系统强,因为它实现了网络层安全(包过滤)和应用层安全(代理服务)的结合。入侵者在破坏内部网络的安全性之前,必须首先突破这两种不同的安全系统。采用这种体系结构的致命弱点是,一旦攻击者设法侵入堡垒主机,且在堡垒主机和其余的内部主机之间没有任何网络安全措施存在的情况下,如果路由器被损坏,整个网络就将对入侵者全面开放。

屏蔽子网防火墙利用两台路由器连接的子网与内外部网络隔离开,堡垒主机及其他公用服务器放在该子网中,这个子网被称为“停火区”或“非军事区”(Demilitarized Zone,DMZ)。如果攻击者试图完全破坏防火墙,他必须重新配置连接3个网的路由器。既切断连接,又不能把自己锁在外面,还不被发现,这会使黑客攻击变得更困难。

(三)Linux内核防火墙

Linux提供的防火墙软件包内置于Linux内核中,是一种基于包过滤的防火墙。其中心思想是根据网络层IP包头中的源地址、目的地址及包类型等信息来控制包的流向,更彻底的过滤则是检查包中的源端口、目的端口以及连接状态等信息。Netfilter/IPtables是Linux内核防火墙系统,它由组件Netfilter和Iptables组成。Netfilter是Linux核心中的一个通用架构,用于扩展各种服务的结构化底层服务。Netfilter组件也称为内核空间(Kernel Space),是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集。(www.xing528.com)

Netfilter是Linux 2.4实现的防火墙框架,它比以前任何一版Linux内核的防火墙子系统都要完善、强大。Netfilter提供了一个抽象、通用化的框架,该框架定义的一个子功能就是包过滤子系统。Netfilter由一系列基于协议栈的钩子函数(hook function)组成,这些钩子函数都对应某一具体的协议。当前Netfilter已经基于IPv4、IM等协议实现了对应的钩子函数。

Netfilter框架包含以下三个部分。一是为每种网络协议(IPv4、IPv6等)定义一套钩子函数(IPv4定义了5个钩子函数),这些钩子函数在数据包流过协议栈的几个关键点被调用。在这几个关键点中,协议栈将把数据包及钩子函数标号作为参数调用Netfilter框架。二是内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现挂接。这样,当某个数据包被传递给Netfilter框架时,内核能检测是否有任何模块对该协议和钩子函数进行了注册。若注册了,则调用该模块注册时使用的回调函数,这样这些模块就有机会检查(可能还会修改)该数据包、丢弃该数据包及指示Netfifter将该数据包传入用户空间的队列。三是那些排队的数据包是被传递给用户空间异步地进行处理。一个用户进程能检查数据包、修改数据包,甚至可以重新将该数据包通过离开内核的同一个钩子函数注入内核。

(四)集群技术

集群就是一组计算机,它们作为一个整体向用户提供一组网络资源。对集群的研究起源于集群系统良好的性能——可扩展性。提高CPU主频和总线带宽是最初提高计算机性能的主要手段,但是这一手段对系统性能的提高是有限的。人们通过增加CPU个数和内存容量来提高性能,于是出现了向量机、对称多处理机(SMP)等。但是,当CPU的个数超过某一阈值,这些多处理机系统的可扩展性就变得极差。主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长,而集群系统的性能随着CPU个数的增加几乎是线性变化的。

一般把集群系统分为两类:高可用集群和高性能计算集群。

高可用(High Availability)集群,简称HA集群。高可用集群就是采用集群技术来实现计算机系统的高可用性,就是利用集群系统的容错性对外提供7×24小时不间断的服务。目前已经有在Linux下的高可用集群,如Linux HA项目。高可用集群通常有两种工作方式:一是容错系统,通常是主从服务器方式。从服务器检测主服务器的状态,当主服务器工作正常时,从服务器并不提供服务。一旦主服务器失效,从服务器就开始代替主服务器向客户提供服务。二是负载均衡系统,集群中所有的节点都处于活动状态,它们共同分摊系统的工作负载,充分利用集群的处理能力,提高对任务的处理效率。一般Web服务器集群、数据库集群和应用服务器集群等都属于这种类型。

高性能计算(High Perfermance Computing)集群,简称HPC集群,也称为科学计算集群。在这种集群上运行的是专门开发的并行应用程序,它可以把一个问题的数据分布到各台计算机上,利用这些计算机的资源来完成计算任务,从而可以解决单机不能胜任的工作(如问题规模太大、单机计算速度太慢等)。这类集群致力于提供单个计算机所不能提供的强大计算能力,广泛应用在天气预报石油勘探与油藏模拟、分子模拟、生物计算等领域

(五)负载均衡机制

负载均衡技术是提高系统性能、广泛应用于服务器集群系统的新技术。比如处理能力是每秒几万个请求的IA服务器,无法在一秒钟内处理几十万甚至上百万个请求。但若能将10台这样的服务器组成一个系统,并有办法将所有请求平均分配到所有的服务器,那么这个系统就会拥有每秒处理几十万到几百万个请求的能力,这就是负载均衡的基本思想。

负载均衡算法通常包括任务的静态分配和动态调度。静态分配是客户进行服务请求时,系统按照一定的负载均衡算法将任务分配到适当的节点进行处理。动态调度是指进程运行过程中,根据系统负载情况,通过将进程从负载较重的节点转移到另一负载较轻的节点继续运行,实现负载的动态均衡。常用的负载均衡算法一般可以分为以下6种:①轮转法,即每个集群的节点都在相等的地位下被轮流选择。②散列法,即通过单射不可逆的HASH函数,按照某种规则将网络请求发往集群节点。③最小连接法,即在最小连接法中,平衡器记录目前所有活跃连接,把下一个新的请求发给当前含有最小连接数的节点。④最低缺失法,即平衡器长期记录到各节点的请求情况,把下个请求发给历史上处理请求最少的节点。与最小连接法不同的是,最低缺失记录过去的连接数而不是当前的连接数。⑤最快响应法,即平衡器记录自身到每一个集群节点的网络响应时间,并将下一个到达的连接请求分配给响应时间最短的节点。⑥加权法,就是根据节点的优先级或当前的负载状况(权值)来构成负载平衡的多优先级队列,队列中的每个等待处理的连接都具有相同的处理等级,这样在同一个队列里,可以按照前面的轮转法或者最小连接法进行均衡,而队列之间按照优先级的先后顺序进行均衡处理。在这里,权值是基于各节点能力的一个估计值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈