欢迎来到天天文库
浏览记录
ID:56673694
大小:45.00 KB
页数:9页
时间:2020-07-04
《CheckPoint防火墙状态表.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、·了解CheckPointFW-1状态表作者:LanceSpitzner(lancespitzner.net)整理:warning3(warning3nsfocus.)主页:.nsfocus.日期:2000-08-15<*译者:以前关于防火墙状态表,也只是有一个大概的了解,通过看这篇文章,也纠正了一些自己的错误看法,感觉很有收获,因此就把它翻译出来了。由于时间仓促,可能些地方翻的会有问题,如发现错误,请跟我联系。这篇文章的主要目的是帮助你了解FW-1的状态连接表是如何工作的。这表使FW-1知道谁在做什么,什么连接时是允许通过的...这篇文章是我对最新的FW-14.1版研究的一个
2、继续。为了使你更好的理解你自己的FW-1状态检查表并与我所说的进行验证,我将这篇文章中所用到的源码附在最后。状态检查(StatefulInspection)==============================让我们首先从一个很基本的问题开始我们的讨论。假设你有一个防火墙,它的过滤规则允许所有连接通过(any-any-accept),那么防火墙是否会允许一个用ACK位发起的新TCP连接通过呢?如果防火墙允许任何连接通过,那么似乎任意的包都应当通过。然而,如果从状态检查的工作原理上看,这个包又似乎应当被丢弃。我开始对状态检查(至少是对CheckPointFireWall-1
3、)的理解是这样的:当防火墙收到一个发起TCP连接请求的SYN包时,这个SYN包首先会与防火墙的过滤规则按顺序(从规则0开始)进行比较,如果所有的规则都不允许接受这个包,那它就被拒绝,这个连接就被丢弃或者拒绝(发送RST包给远程主机).然而,如果这个包被接受了,这个连接会话就被加入到防火墙的状态连接表中,这个表在核空间中分配。后续的每个包(不带SYN标记的包)Word资料·都会与状态表比较,如果相应的会话已经在表中了,那个这个包就是连接会话的一部分,然后这个包就被接受,允许通过。如果不是,这个包就被丢弃。这将改进系统性能,因为不需要将每个包都与过滤规则集进行比较,而是只对发起连接
4、的SYN包进行比较。所有其它的TCP包都在核空间中与状态表进行比较,这个速度是很快的。好,现在回到我们开始谈的那个问题上来。如果我们用一个ACK包发起一个会话,防火墙是否会接受这个包呢,即使过滤规则已经允许所有的连接通过?就象我们刚才说的,你可能认为会接受。但现在我们对状态连接表有了更多的认识,可能这个答案会是相反的了。当防火墙收到一个ACK包时,它会先与核空间中的状态连接表进行比较,而不是过滤规则集。当然防火墙的状态连接表中没有相应的会话记录,因为并没有一个SYN包发起过连接。那么,到底防火墙会不会接受这个包呢?答案-FW-1如何建立一个连接=================
5、===========答案是令人吃惊的。不仅这个ACK包被接受,它还会被加入到状态表中!我对防火墙状态表的理解并不正确。我所发现的结果是,当防火墙收到一个不在状态表中的包时,它会先与过滤规则进行比较,不管这个包是SYN,ACK或者是其他的什么包。如果过滤规则允许接受这个会话,那么这个会话就被加入到状态连接表中去。这个连接会话的所有后续包都会与状态表进行比较,既然在状态连接表中已经存在了相应的会话,因此这些包就被接受而不再与过滤规则集进行比较。fwtable.pl(ver1.0)将'fwtab-tconnections'得到的结果进行转化,我们得到下面的输出结果:注意:下面看到的
6、这些是我的状态连接表中那些使用ACK包发起的连接。Word资料·mozart#fwtable ----FW-1CONNECTIONSTABLE--- Src_IP Src_PrtDst_IP Dst_PrtIP_protKbuf Type Flags Timeout 192.168.7.131 10003 207.229.143.8 25 6 0 16385 02ffff00 2845/3600 192.168
7、.7.131 10002 207.229.143.8 24 6 0 16385 02ffff00 2845/3600 192.168.7.131 10001 207.229.143.8 23 6 0 16385 02ffff00 2845/3600 我们可以看到这三个包都被接受并被加入到防火墙状态表中,但它们都是使用用ACK包发起的连接。同样,对于Null,SYN/ACK,FIN/
此文档下载收益归作者所有