全站搜索
基于状态包过滤的防火墙技术
作者:管理员    发布于:2015-11-16 15:34:09    文字:【】【】【

  近十几年来,信息化浪潮席卷,越来越多的企业,包括工业控制领域的传统企业,都接入Internet和企业外部进行信息共享和交流,但是Internet上针对信息网络的攻击层出不穷,破坏了正常的网络秩序。为了有效隔离外部入侵,对防火墙的应用越来越广泛。

  另一方面,对于工控企业内部,随着工业以太网技术本身的不断完善,越来越多的工控网络采用了Ethemet-TCP/IP协议,在增强网络扩展能力的同时,需要提供一种机制在各个控制子网络之间进行有效的控制,减少系统间相互干扰。而防火墙则是一种有效的手段。

  本文在介绍传统包过滤的基础上,引人改进型的状态包过滤技术,将两者进行分析比较。

  2包过滤技术工作原理包过滤防火墙一般位于内部网络和外部网络的边界上,是内外网络通信的出入点,所有进出内部网络的流量首先都要经过防火墙的审查。

  网络层中数据包的封装格式如图一所示,包过滤则主要利用了报头中下列字段中的一些或全部,和预先设定好的过滤规则作比较,来决定是否转发该数据包。

  数据部分|传输层报头|网络层报头I网络数据包源端口::源IP地址1目的IP地址1报头字段包过滤防火小论是对待有连接的TCP协议,还是无连接朱鹏:硕士研究生的UDP协议,它都以单个数据包为单位进行处理,对数据传输的状态并不关心,因而传统包过滤又称为无状态包过滤。

  3包过滤的局限性传统包过滤还是存在着缺陷,特别是不能很好的处理动态端口连接的情况,下面以一个简单的防火墙构建例子来进行说明。

  假设通过部署包过滤防火墙,将内部网络和外部Internet分隔开,配置过滤规则审查内外网络数据流,以开通内部主机A和外部服务器的web访问为例,如所示:我们知道web通信涉及到客户端和服务器端两个端点。由于服务器将web服务绑定在固定的80端口上,即web服务器IP地址:80端口。但是客户端的端口号是动态分配的,即预先不能确定客户使用哪个端口进行通信,这种情况称为动态端口连接。包过滤处理这种情况只能将客户端动态分配端口的区域全部打开(;1024-65535>才能满足正常通信的需要。

  下面的过滤规则使用如下格式的伪规则来配置:I方向I源IP:源端口I目的IP:目的端口I数据包类型I防火墙动作I技术创新在主机A和服务器间开放web通道,我们可以使用如下的过滤规则:从上面配置我们可以清楚看到传统包过滤存在以下缺陷:际使用的端口。

  1.传统包过滤缺乏动态性,即使当前不存在活动连接,防火墙还是开放着端口。

  4状态包过滤态检测机制,将属于同一连接的所有包作为一个整体的数据流看待,对接收到的数据包进行分析,判断其是否属于当前合法连接,从而进行动态的过滤。

  跟传统包过滤只有一张过滤规则表filteringtable不同,状态包过滤同时维护过滤规则表和状态表(statetable)。状态表中保留着当前活动的合法连接,它的内容是动态变化的。当新的连接通过验证,在状态表中则添加该连接条目,而当一条连接完成它的通信任务后,状态表中的该条目将自动删除。

  分析几种状态包过滤防火墙的实现,其内部处理流程大致如图三所示:国自控网丨订|斑。姐6面6(伸497 1.当接收到数据包,首先查看状态表,看该包是否属于当前合法连接,若是,则接受该包让其通过,否则进入(2)2.在过滤规则表中遍历,若触发DROP动作,直接丢弃该其通过状态检查,因而安全性较差。

  近几年来,各防火墙厂商着重利用TCP协议的实现细节,设计安全性更好、实现更的合法包判定算法,如C1SC公司包,重新跳回⑴,处理后续数据包;若触发ACCEPT动作,则进重新循环处理后续数据包3.在状态表中加入该新连接条目,并允许数据包通过。重新技术创新跳回⑴,处理后续数据包。

  下面使用状态包过滤重新配置前面的例子在主机A和服务器间开放web通道,主机A是初始连接发起者IOUTI主机A地址:*1服务器地址:80ITCP协议I接受并加入状态表I和前面的配置不同,状态包过滤只需设定发起初始连接方向上的过滤规则即可,该规则不仅决定是否接受数据包,而且也是往状态表中添加新连接的判断标准。

  原先的动态端口范围1024-65535)由取代,表示过滤规则并不关心主机A是以什么端口进行连接的,也就是说,主机A分配到哪一个端口都允许外出,但是返回通信就要基于已存连接的情况进行验证。

  因而状态包过滤借助状态表,可以按需开放端口,分配到哪个动态端口,就只开放这个端口,一旦连接结束,该端口重新被关闭,这样很好的弥补了前面提到的传统包过滤缺陷,大大增强了安全性。

  5状态包过滤实现的关键技术在状态包过滤整个运作过程中,状态表的每一项代表了该设备所知道的单个通信会话,每一项都保存可标识它所代表的通信会话的信息条目,这些信息按不同的实现各有不同,大致包括源和目的ip地址信息、标志、顺序号和应答号等。当穿过有状态设备发出一条连接时,就会创建一个状态表项;之后,当通信返回时,设备将数据包中的信息与状态表信息进行比较,以判断该数据包是否为当前通信会话的一部分。若数据包与一个当前表项相关,就允许它通过。

  因而,如何对后续通信进行验证,来判断其是否属于当前合法通信是实现的关键。这种合法包判定算法的设计,关系到状态包过滤的性能和安全性,是实现状态包过滤的核心。

  现在大多数防火墙的状态包过滤模块都是通过匹配连接双方的ip地址和端口号来跟踪状态。假设内部主机1发起初始连接与外部主机2通信,通过验证后,在状态表中增加条目:应用在其PIX防火墙上的自适应安全算法Jpfilter防火墙提出的基于跟踪滑动窗口的检测算法。

  6结束语本文通过对包过滤和状态包过滤两种技术进行分析和比较,可以看出状态包过滤能提供安全性更高配置更灵活的防范。

  无论是防御企业外部的入侵,还是控制内部网络的相互干扰都是一种很有效的机制。

访问统计
51客服