今天,我们进行状态检测防火墙的原理介绍。同时附送网络地址转换原理的简单介绍!
随着华山派的不断扩大,整个内部网络也越来越庞大。每天都有大量的数据与外界交互,处于网关处的防火墙要处理的数据包越来越多,虽然能挡住很多***,但是处理效率确越来越慢,渐成为整个网络的瓶颈。而且随着网络的扩大,门派里的计算机越来越多,当初五岳派分给华山的IP地址也出现严重不足。目前在华山,为了能抢到1个IP地址上网,好多弟子都是通宵等待,不停的使用“ipconfig/renew”,一旦获得一个IP,基本就霸着不放,直到IP地址租期到期才肯罢休。为了能尽量使每个师兄弟都有机会上网,令狐冲已经把每个动态IP地址的租器调到1个小时,就是这样,也还有很多弟子没网上。现在在华山上网,真是比春运排队买火车票还累。
现在华山弟子联名上书岳不群,要求撤消防火墙,增加IP地址的数量,否则就退会。
岳不群急忙找来令狐冲,严令他赶快解决目前的问题。条件是:防火墙当然不能撤,IP地址尽量能多几个。否则,就再也不许他见小师妹了。
令狐冲郁闷的走出师傅的房间,满脑子的防火墙和IP地址。怎么办啊?防火墙上的规则已经被他减少到了最少,如果规则再少的话,就起不到作用了;IP地址可以联系电信公司五岳分公司,多申请几个,不过还是杯水车薪啊。
“郁闷啊!!!!!!!”快疯了的令狐冲奔进自己房间,抱起酒瓶开始狂灌。。。。。。
令狐冲被一阵阵嘈杂的声音吵醒了!
“这是今天要送东西来的人的名单,他们要是来送东西了,你记到这张纸上,然后把单子交给边门,叫送东西的人以后直接走边门,不要走正门了。不然一会客人越来越多,就来不及接待了!”好像是师娘在吩咐弟子做事情呢。
令狐冲心里咯噔一下,忙开门出屋,外面已经是一片热闹,师娘在指挥大家干这干那呢。看到令狐冲出来,忙叫到:“冲儿,你怎么喝这么多酒啊?今天你师傅50大寿,还不快去帮忙干活!”
“师娘,你刚才说什么记下来走什么边门的我没听清楚,你再说下。”
“你怎么关心起这个了?”
“你先说说啊,急死我了”
“你怎么怪怪的?我刚才说今天你师傅50大寿,我们定了很多东西,一会会有人送来,正门会有很多人,都挤到这里会很不方便。我就写了个名单,叫门房看着,有人来就对一下单子,如果是送东西的,就叫他们记下来,然后以后就从边门送东西,这样一来,就会很快了。真不知道你一天想什么呢,喝这么多酒,搞的整个人怪怪的。”
“对啊,这不就是我要得到的答案吗?!在防火墙里也建个零时的表,把合法的访问连接都放到这个表里,以后他们的访问就直接对照这个表,而不匹配防火墙的规则,这样,包过滤的速度不就大大加快了吗?我真TMD是个天才啊!!”令狐冲一阵狂喜,大喊着:“谢谢师娘!!!!!!!!”然后一溜烟像自己的房间奔去。
“记得一会来给师傅敬酒!!!”
“知道了。”
……
三天后,令狐冲把改良好的防火墙内核更新到防火墙上面。果然,整个网络的访问速度大大提高。新的防火墙就叫做“状态检测防火墙”。当然,他和以前的包过滤的区别是,在防火墙的核心中,会实时建立一长所有合法连接的状态表,所有的合法连接只是在最开始访问的时候去匹配防火墙的规则,当规则通过后,就把当前的连接写到状态表中去,这样一来,以后这个连接的所有访问都是只检查一下状态表,不去匹配规则库,转发效率大大的提高了!!
华山弟子一片欢腾!
但IP地址不够的问题该怎么解决呢?
回去看看rfc文档吧。令狐冲一边思考一边走进资料室中。
从资料室出来,冲哥查到不少东西。Rfc上不是说保留了3个IP地址网段,分别是A,B,C类地址中的一个。A类10.0.0.0/8B类172.16.0.0/12C类192.168.0.0/16。如果我用这三类中的一类来组网,那么华山派可以做到没台计算机都能有一个IP地址。可是这些地址不能用于和外界通讯,只能在华山派的自己网络中使用。怎么才能使得所有的弟子使用保留的IP地址上网呢???真是头通的问题啊!
令狐冲决定再仔细研究下TCP/IP协议,看看有没有解决的方法!
经过1周的苦苦研究,令狐冲终于找到了解决方法。他发现有了防火墙以后,所有外出的数据包都要经过防火墙处理转发。
数据包在网络中的传送,是根据数据包中的包头信息进行传递的。就是说根据ip地址和端口号进行转发的。那个如果我们更改了数据包的发送地址(源地址),数据包同样可以在网络中进行传送的。
对于内部网络中的专用的地址,他发过来的数据包,在通过防火墙的时候,我们替换他的发送IP地址和端口号,使他的源IP地址变成一个合法的IP地址,并从新分个端口号,然后把这个改变纪录下来,等返回来的数据包过防火墙时,把地址再替换回来,不就可以了吗?
明白了转发的原理,令狐冲马上把这个地址转换(NAT)的功能加如到了防火墙中!!
经过了网络改造的华山派,每个弟子都可以自由的网上冲浪了。
“天才就是天才!!!”令狐冲一边散步一边摇头。
今日知识点
状态检测防火墙:
状态/动态检测防火墙,试图跟踪通过防火墙的网络连接和包,这样防火墙就可以使用一组附加的标准,以确定是否允许和拒绝通信。它是在使用了基本包过滤防火墙的通信上应用一些技术来做到这点的。
当包过滤防火墙见到一个网络包,包是孤立存在的。它没有防火墙所关心的历史或未来。允许和拒绝包的决定完全取决于包自身所包含的信息,如源地址、目的地址、端口号等。包中没有包含任何描述它在信息流中的位置的信息,则该包被认为是无状态的;它仅是存在而已。
一个有状态包检查防火墙跟踪的不仅是包中包含的信息。为了跟踪包的状态,防火墙还记录有用的信息以帮助识别包,例如已有的网络连接、数据的传出请求等。
例如,如果传入的包包含视频数据流,而防火墙可能已经记录了有关信息,是关于位于特定IP地址的应用程序最近向发出包的源地址请求视频信号的信息。如果传入的包是要传给发出请求的相同系统,防火墙进行匹配,包就可以被允许通过。
一个状态/动态检测防火墙可截断所有传入的通信,而允许所有传出的通信。因为防火墙跟踪内部出去的请求,所有按要求传入的数据被允许通过,直到连接被关闭为止。只有未被请求的传入通信被截断。
如果在防火墙内正运行一台服务器,配置就会变得稍微复杂一些,但状态包检查是很有力和适应性的技术。例如,可以将防火墙配置成只允许从特定端口进入的通信,只可传到特定服务器。如果正在运行Web服务器,防火墙只将80端口传入的通信发到指定的Web服务器。
状态/动态检测防火墙可提供的其他一些额外的服务有:
将某些类型的连接重定向到审核服务中去。例如,到专用Web服务器的连接,在Web服务器连接被允许之前,可能被发到SecutID服务器(用一次性口令来使用)。
拒绝携带某些数据的网络通信,如带有附加可执行程序的传入电子消息,或包含ActiveX程序的Web页面。
跟踪连接状态的方式取决于包通过防火墙的类型:
TCP包。当建立起一个TCP连接时,通过的第一个包被标有包的SYN标志。通常情况下,防火墙丢弃所有外部的连接企图,除非已经建立起某条特定规则来处理它们。对内部的连接试图连到外部主机,防火墙注明连接包,允许响应及随后再两个系统之间的包,直到连接结束为止。在这种方式下,传入的包只有在它是响应一个已建立的连接时,才会被允许通过。
UDP包。UDP包比TCP包简单,因为它们不包含任何连接或序列信息。它们只包含源地址、目的地址、校验和携带的数据。这种信息的缺乏使得防火墙确定包的合法性很困难,因为没有打开的连接可利用,以测试传入的包是否应被允许通过。可是,如果防火墙跟踪包的状态,就可以确定。对传入的包,若它所使用的地址和UDP包携带的协议与传出的连接请求匹配,该包就被允许通过。和TCP包一样,没有传入的UDP包会被允许通过,除非它是响应传出的请求或已经建立了指定的规则来处理它。对其他种类的包,情况和UDP包类似。防火墙仔细地跟踪传出的请求,记录下所使用的地址、协议和包的类型,然后对照保存过的信息核对传入的包,以确保这些包是被请求的。