状态检防火墙原理.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态检防火墙原理

浅谈状态检测防火墙和应用层防火墙的原理(结合ISA SERVER) 防火墙发展到今天,虽然不断有新的技术产生,但从网络协议分层的角度,仍然可以归为以下三类: 1, 包过滤防火墙; 2, 基于状态检测技术(Stateful-inspection)的防火墙; 3, 应用层防火墙。 这三类防火墙都是向前包容的,也就是说基于状态检测的防火墙也有一般包过滤防火墙的功能,而基于应用层的防火墙也包括前两种防火墙的功能。在这里我将讲讲后面两类防火墙的实现原理。 先从基于状态检测的防火墙开始吧,为什么会有基于状态检测的防火墙呢?这就要先看看第一类普通包过滤防火墙的主要缺点,比如我们要允许内网用户访问公网的WEB服务,来看看第一类普通包过滤防火墙是怎样处理的呢?那首先我们应该建立一条类似图1所示的规则: 但这就行了吗?显然是不行的,因为这只是允许我向外请求WEB服务,但WEB服务响应我的数据包怎么进来呢?所以还必须建立一条允许相应响应数据包进入的规则。好吧,就按上面的规则加吧,在动作栏中我们填允许,由于现在数据包是从外进来,所以源地址应该是所有外部的,这里不做限制,在源端口填80,目标地址也不限定,这个这个目标端口怎么填呢?因为当我访问网站时本地端口是临时分配的,也就是说这个端口是不定的,只要是1023以上的端口都有可能,所以没有办法,那只有把这些所有端口都开放了,于是在目标端口填上1024-65535,这样规则就如图2所示了,实际上这也是某些第一类防火墙所采用的方法。 想一想这是多么危险的,因为入站的高端口全开放了,而很多危险的服务也是使用的高端口啊,比如微软的终端服务/远程桌面监听的端口就是3389,当然对这种固定的端口还好说,把进站的3389封了就行,但对于同样使用高端口但却是动态分配端口的RPC服务就没那么容易处理了,因为是动态的,你不便封住某个特定的RPC服务。 上面说了这是某些普通包过滤防火墙所采用的方法,为了防止这种开放高端口的风险,于是一些防火墙又根据TCP连接中的ACK位值来决定数据包进出,但这种方法又容易导致DoS攻击,何况UDP协议还没有这种标志呢?所以普通包过滤防火墙还是没有解决这个问题,我们仍然需要一种更完美的方法,这时就有了状态检测技术,我们先不解释什么是状态检测防火墙,还是来看看它是怎样处理上面的问题的。同上面一样, ?????? 首先我们也需要建立好一条类似图1的规则(但不需要图2的规则),通常此时规则需要指明网络连接的方向,即是进还是出,然后我在客户端打开IE向某个网站请求WEB页面,当数据包到达防火墙时,状态检测引擎会检测到这是一个发起连接的初始数据包(由SYN标志),然后它就会把这个数据包中的信息与防火墙规则作比较,如果没有相应规则允许,防火墙就会拒绝这次连接,当然在这里它会发现有一条规则允许我访问外部WEB服务,于是它允许数据包外出并且在状态表中新建一条会话,通常这条会话会包括此连接的源地址、源端口、目标地址、目标端口、连接时间等信息,对于TCP连接,它还应该会包含序列号和标志位等信息。当后续数据包到达时,如果这个数据包不含SYN标志,也就是说这个数据包不是发起一个新的连接时,状态检测引擎就会直接把它的信息与状态表中的会话条目进行比较,如果信息匹配,就直接允许数据包通过,这样不再去接受规则的检查,提高了效率,如果信息不匹配,数据包就会被丢弃或连接被拒绝,并且每个会话还有一个超时值,过了这个时间,相应会话条目就会被从状态表中删除掉。 ?????? 就上面外部WEB网站对我的响应包来说,由于状态检测引擎会检测到返回的数据包属于WEB连接的那个会话,所以它会动态打开端口以允许返回包进入,传输完毕后又动态地关闭这个端口,这样就避免了普通包过滤防火墙那种静态地开放所有高端端口的危险做法,同时由于有会话超时的限制,它也能够有效地避免外部的DoS攻击,并且外部伪造的ACK数据包也不会进入,因为它的数据包信息不会匹配状态表中的会话条目。 ????? 上面虽然是讲的针对TCP(WEB服务)连接的状态检测,但这同样对UDP有效,虽然UDP不是像TCP那样有连接的协议,但状态检测防火墙会为它创建虚拟的连接。 ?????? 相对于TCP和UDP来说,ICMP的处理要难一些,但它仍然有一些信息来创建虚拟的连接,关键是有些ICMP数据包是单向的,也就是当TCP和UDP传输有错误时会有一个ICMP数据包返回。对于ICMP的处理,不同的防火墙产品可能不同的方法,在ISA SERVER 2000中,不支持ICMP的状态检查,只能静态地允许或拒绝ICMP包的进出。 ????? 从上面可以看出,基于状态检测的防火墙较好的解决了第一类普通包过滤防火墙的问题,为了更直观的理解状态检测防火墙,我们还来看看一些实际例子,这些例子都是在ISA S

文档评论(0)

cgsx259 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档