1、防火墙技术之状态防火墙() 2009-08-22 19:06:52标签:防火墙 状态 技术 应用状态防火墙技术介绍前面讲到了包过滤防火墙的一些细节东西,大家可以发现我一直强调包过滤的核心在于,起源于防火墙的需要,但是应用远远不止于防火墙。需要提前定义分类数据包,然后跟 filtering 进行接口绑定然后对流经接口的数据包进行匹配,如果匹配便根据定义的还是对数据包进行允 许还是拒绝(丢弃)处理,如果不匹配那么就将数据包丢给全局防火墙默认策略处理,对于默认策略各家厂商定义不同,也可以自定义那么从包过滤技术的分析中大家可以看到,包过滤是静态的,静态的原因在于提前需要定义及策略,而且包过滤关注协议的
2、层,也就是三层以下这样来说她的处理就显的简单而单一熟悉网络技术的人都知道,其实我们的业务应用更加复杂,除了复杂的协议状态机转换,许多的协议都是多通道的,这样来说这些状态及应用层信息一般来说都非静态的,会根据报文的交互进行状态机转换所以包过滤将显的心有余而力不足在这样的需求下基于应用状态的防火墙技术()诞生了那么采用什么样的方式来处理数据包呢?首先所关心的对象已经发生变化,不再是包头,不再是单纯的五元组信息,而是关心技术层的连接的数据流信息,当然这个数据流信息包括如的三次握手建连接,四次握手终结连接的状态机 变化,还包括应用层如协议的控制与数据通道的建立及解除等等那么在这个过程中有这样几个问题需
3、要注意:)关注数据流,那么如何识别一条数据流?的处 理一般是基于(会话)的,所有属于同一会话的所有数据包都被堪称一条流并统一对待那么会话是一个什么的东西呢?会话一般包括如下这样信息:协议 状态(老化时间) 源(源端口)目的(目的端口)目的(目的端口)源(源端口)如上所示一条会话是有如上七元组来标示的,如果一个数据包可以匹配会话的话就称为同一数据流)如何确定一应用性连接的正确性?所谓的状态防火墙就是对协议的状态进行动态监控,如果状态转化不符合协议定义,那么这样的报文将被掉只有那些完全匹配符合协议状态机的报文将会呗正确投递到相应的模块进行处理那么如何来确定一条应用性连接的正确性呢?答案就是状态转换
4、表,也就是所谓的状态机()下面来举个例子说明:的:,receive ,receive ,receive ,receive ,receive ,receive ,receive ,receive 上面就详细的表述了的状态机转换及触发条件,会话会维护每种支持协议的状态机,会依赖会话管理模块进行状态动态监控以实现动态防火墙处理还有一点需要注意的是,不同的系统可能对如,这样的无状态的协议的定义是不同的,处理上也有一些差异,在这里不再详细讲述,轻关注会话管理详细讲解)如何检测应 用层内容的合法性(如 )?还可以 对应用层的报文的内容加以检测,如ava 等, 对不信任站点的阻断功能,当然这方面的检测是有限
5、的, 对于应用层数据的合法性的检测更多的依赖过滤技术进行Java Blocking 是对通过 HTTP 协议传输的 Java Applets 程序进行阻断。当配置了 Java Blocking 后,用户为试图在 Web 页面中获取包含 Java Applets程序而发送的请求指令将会被阻断。)如何保证传输层 (应用层)数据通道的正确建立?传输层协议检测一般指通用的检测 ,与 应用层数据不同,传输层协议检测主要关注传输层数据(插口地址)对于要求返回外部接口的报文要跟出接口报文完全匹配,也就是说五元组要完全匹配。否则返回的数据报文将被丢弃处理。至此介绍了一些实现需要的一些概念,准备,那么下面将详细
6、的介绍的 细节(未完待续,尽请关注防火墙技术之状态防火墙)防火墙技术之状态防火墙() 2009-08-22 21:07:11标签:防火墙 状态 技术 应用状态防火墙功能介绍前面介绍了的基本原理,跟踪协议状态机以实现对应用层状态的动态监控,所以状态防火墙被称为动态防火墙。动态就在于状态机是动态变化的,这样的处理使得对数据的过滤更加周全,更加深入。本文想细致区分状态防火墙的功能,以期能更深入的了解状态防火墙技术。综合来说可以具有如下几个方面的功能: 支持应用层协议检测,包括:,等 支持通用、通道检测 支持会话状态动态管理 支持分片报文检测 支持端口到应用的映射() 支持阻塞 支持会话日志与调试跟踪
7、 下面将逐个对这些功能进行分析:.应用层协议检测(简单邮件传输协议 ):检测基于传输的应用,包括对协议状态机转换的检测,错误的状态报文将被阻塞或丢弃检测:是超文本传输协议,检测基于 传输的应用,是无状态的协议因此检测应用协议的状态完全等同于通用检测对于协议,提供的对来自制定网段或主机的传输的 applets 的检测和过滤检测: 检测 基于的 应用,包括对控制通道的状态机进行检测,错误的状态转换报文将被阻塞丢弃支持对和两种方式的数据通道协商的检测 ,并根据协商参数动态创建数据通道的会话状态表和临时访问控制列表检测:实时流传输协议检测基于传输的应用包括 对 控制通道重媒体传输通道(基于的)参数协商
8、的检测,并动态创建媒体通道的会话状态表和临时访问控制列表检测 :是制定的分组网络的多媒体传输协议检测基于传输的应用,包括对呼叫信令的检测,用于检测和维护动态创建媒体控制通道,检测基于媒体控制通道重媒体传输通道(基于的)参数协商的检测,并动态创建媒体通道的状态表和临时访问控制列表.通用的 协议检测检测 会 话的 发起和结束的状态转换过程,包括会话发起的次握手和关闭的次握手,根据这些状态来创建更新和删除会话状态表和临时访问控制表当检测到第一个临时访问控制和允许表项,以允许该会话所有的相关的报文能通过防火墙,而且它非相关报文则呗阻塞和丢弃,检测是其他基于应用层协议的基础协议没有 连接和状 态的概念当
9、检测到会话发起的第一个数据包时,开始维护这些会话相关的状态,并创建一个(临时访问 控制列表)允许表项,以为发起方收到的第一个接受方回送的数据流的时候,此会 话建立其他的与此回话无关的报文则被阻塞和丢弃,检测是其他基于的 应用层协议检测的基础。.会话状态动态 管理支持通过配置会话超时时间实现会话状态信息的管理。用户可以通过对的等状态等待超时老化时间进行配置管理,达到根据会话时间对会话状态进行管理的目的。此外,在应用层协议检测中提到,对于存在状态机转换的应用层协议,也支持根据的正确性与否管理会话状态信息的目的。可以实现会话状态的自动创建与删除。.分片报 文检测如果报文内容大于接口的大小,数据包将会
10、被分片,形成多个更小的包,在所有分片后的数据包中只有第一个分片包含了完整的包信息,其他分片只有地址信息。检测根据的分片标识把收到的报文区分为非分片和分片首片及非首片报文三类报文。记录 所有被分片报文的状态信息以提供对分片报文正常检测和过滤的支持,对于首片报文,根据 报文的层信息及层以外的信息创建会话状态表与表,当所有后续分片到达时,使用保存的会话信息和中的每一匹配条件进行精确匹配。.端口到应 用的映射()应用层协议使用通用的端口进行通信,允许用户对不同应用定义一组新的端口号,用于应用使用非通用端口时的情况,如应用在号端口提供,就可以用指定,从而知道端口是数据。.阻塞功能由于恶意的 applet
11、s 对用户计算机资源造成破坏,用 户需要限制未经用户允许的 applet下载至用户网络中, 功能便可以实现对来自不可信任站点的 applets 的过滤。而实现上是采用定义站点的信任与否,当检测到报文是不可信任的站点的 applets 时采取丢弃操作。(未完待续请关注防火墙之状态防火墙()防火墙技术之-状态防火墙 ASPF(3) 2009-08-23 09:41:09标签:防火墙 ASPF 状态 技术 状态防火墙 ASPF 工作原理一般来说跟其他安全业务一样,ASPF 也是基于会话管理模块的,我们知道会话 session 是动态的,所以 ASPF 也是动态的,有状态跟踪的,另外 ASPF 的精髓
12、还在于出 报文打开一个安全的通道,返回 报文在这个安全的通道中传输,而维护这个安全通道的依然是访问控制列表 ACL,当然这儿的 ACL 称为临时访问控制列表 TACL,之所以称为临时,因为它是动态的用过即删,首报文动态创建 TACL,然后返回报文检查是否匹配 TACL,如果完全匹配责放行,如果不匹配责丢弃。说来说去,大家也许可以看到之所以称状态防火墙 ASPF 是动态防火墙,原因在于两点:1.ASPF 是以 session 为基础的, session 的动态性决定了 ASPF 的动态性。2.ASPF 需要 创建 TACL 打开报文返回的安全通道,TACL 是动态创建和删除的,所以注定 ASPF
13、 是动态的。理解了以上两点,那么你也就从心里开始接受 ASPF 了,因为这是ASPF 的精华 核心。下面介绍一下 ASPF 维护的两个表:a 会话状态 表前面也讲到了会话表项是一个七元组:协议 状态(老化时间) 源 IP(源端口)-目的 IP(目的端口)目的 IP(目的端口)-源 IP(源端口)(用于返回报文匹配)可以看出一条会话其实就可以理解为一个 TCP 连接(当然不一定是TCP 会 话),会话状态表维护了一个会话中某一个时刻会话所处的状态,用于匹配后续的发送报文,并检测会话状态的转换是否是正确的。session table 是在检测到第一个报文时创建的,随着不同的状 态触发条件会进入到不
14、同的状态中并维护。ASPF 于包过滤的最大区别就在于ASPF 考虑到会 话的上下文,不仅包括当前的会话状态,还记录了本次会话之前的通信信息,具有更好的灵活性与安全性,这也是 ASPF 动态过滤的关键。b 临时访问控制列表 TACL虽然被称为 TACL,但是它独立于 ACL,更确切的说是利用了 ACL访问控制的思想,是动态的,非静态配置指定的。TACL 在创建 session table 时创建,会话结束后自动删除,依赖于 session 的,从功能上说它相当于一个扩展的 ACL 的 permit 项,用于匹配一个会 话中所有应答报文。下面以 FTP 为例来说明一下 ASPF 多通道应用层协议检
15、测的过程:如上图所示假设 FTP client 向 FTP server 的 21 号端口发起FTP 控制通道的连接,通过协商由服务器端的 21 端口想客户端的 20 号端口发起数据通道的连接,数据传输超时或结束连接删除。FTP 检测在 FTP 连接建立到关闭的过程中的处理如下:1.检查从出接口向外发送的 IP 报文,确认为基于 TCP 的 IP 报文2.检查端口号确认连接为控制连接,建立返回报文的 TACL 和session table3.检查 FTP 控制连接报文,解析 FTP 指令,根据指令更新状 态表,如果包含数据通道建立指令,则创建数据连接的临时访问控制列表,对数据连接不进行状态处理
16、。4.对于返回报文,根据协议类型做相应的匹配检查,检查将根据ingredients 的协议的状态表和 TACL 决定报文是否允 许通过。5.FTP 连接删除时,会话状态表及 TACL 随之 删除。以上介绍了 ASPF 是如何 处理多通道协议的应用协议检查的。对于像 SMTP.HTTP 等单通道 协议的检测过程就相对较为简单,当发起连接时建立会话状态表和 TACL,连接删除是系统自动删除。而对于传输层协议 TCP/UDP 检测,跟应用 层协议检测不同, 传输层协议检测只是简单的五元组信息检查,要求返回报文必须完全跟原报文 sip,sport,dip,dport 和 proto 一致才可以放行,否则直接丢弃。上面介绍就是 ASPF 的工作原理。