首页 > 代码库 > 你真的理解防火墙吗
你真的理解防火墙吗
要想真正用活防火墙,首先需要弄明白防火墙到底是什么、起什么作用,只有这样才能用的得心应手,不过由于历史原因,现在普遍对防火墙概念的理解有一定的误区,这就影响了对防火墙的灵活使用,所以在正式学习firewalld之前学生先给大家介绍一下防火墙的本质到底是什么。
“防火墙”到底是什么
“防火墙”在我国最早是一种建筑,他又叫“封火墙”,其主要作用就是防火,因为那时候的建筑都是以木质结构为主,而且又非常密集,所以一个住宅着火就很容易传播到邻近的住宅,最初的防火墙就是在这种木质结构上涂上灰泥从而达到将火源隔断的目的。
网络中的防火墙来源于英文单词“firewall”的翻译,有时候也叫“网络防火墙”,不过这个词使用的并不是非常准确,这也就导致了对防火墙的普遍误解。
一想到防火墙大家的第一印象大概就是“隔离”,而且很多防火墙的资料也是这么介绍的,比如“将内网和外网进行隔离”、“将本地电脑和外部网络隔离”等等, 而且有时候还会配一张示意图,图中的防火墙就是一堵墙。以前学生在刚接触防火墙的时候心里就产生了一些疑问:既然防火墙已经将网络给隔断了,那么正常的通信是怎么进行的呢?是可以穿墙而过还是需要从其他通道进入呢?而且,当时学生甚至认为防火墙是用来防病毒的!
其实这一切的根源都来自对“防火墙”这个词本身的理解,实际上“网络防火墙”所起的并不是墙的作用,而是门卫的作用,如果按门卫去理解很多问题就迎刃而解了。
墙和门卫有哪些区别呢?这个问题虽然看起来有些可笑,不过对于理解网络防火墙还是有好处的。首先,墙所起的作用是隔断,无论谁都过不去,但是门卫就不一样 了,他的职能是检查和判断是否可以通过,只要符合条件就可以通过;其次,墙是死的,而门卫是活的,所以门卫还可以完成很多更加灵活的功能,比如有人要到A部门办事,但A部门搬到新的办公地址去了,这时门卫就可以告诉来人“你要去的部门换地方了,你到XXX去吧”,再比如有的人并不是要进去办事,只是想从里边穿过去抄近道,这种情况门 卫也能处理,但是墙是无论如何都办不到的。
理解防火墙本质的好处
可能有的读者会想:你这是在咬文嚼字,不就是个名词吗,理解不理解又有什么关系呢?会用不就行了?而且这么多年大家用的不也挺好的嘛!
其实并不是这样,我们以前如果要使用一个防火墙一般都是先看他都具有哪些功能,其中我们能用到哪些,怎么去用,然后再去找文档、找例子。。。。。。这其实是一 种被动的用法,因为这里我们其实是将防火墙当做一个新事物来学习和使用的(虽然我们一般刚开始都会将其理解为墙,但是慢慢会发现他跟墙的模型并不相符,所以就会将其当做一个新的事物来学习),但是理解了防火墙的本质就是门卫之后就不一样了,这时我们在使用防火墙的时候首先就要想:我要给我的服务器(或者自 己的PC)找个门卫,这个门卫需要做什么,然后再去找防火墙、查具体某功能的配置方法等等,这样就主动了。
不仅如此,在理解了其本质之后还有更大的好处,比如你想好了想找的“门卫”都需要有哪些功能之后又去找防火墙,然而却发现没有一款防火墙可以满足你的需求,这时候创新的机会就来了!也就是说通过防火墙和门卫功能的类别更容易设计出更加合理和易用的防火墙。我们来看个例子,比如一个门卫应该可以有按时间段放行的功能,但是现有防火墙却很少有这个功能,其实这个功能很多地方都是可以用得到的,比如每天要定时远程备份一下日志,那么只要在每天在特定的时间段开放端口就行了,而不需要一直开着,当然这种需求可以通过定时任务很容易地解决,不过只要从“门卫”的角度去思考,这样的需求还有很多。
真正好的创意其实是建立在扎实的基本功和对事物本质的深层次理解上的,而不是为了创新而创新出来的。
防火墙与杀毒软件
对于不了解防火墙的用户来说很多时候都分不清防火墙和杀毒软件之间的关系,而且往往会认为防火墙就是用来防病毒的,其实这是对防火墙非常大的误解,这也许跟大家心目中防火墙的“墙”、“保护”、“安全”等特征有关系,但是防火墙其实并不能防病毒。
我们上面说了,防火墙所起的是门卫的作用,不过这个门卫的逻辑非常简单,他主要关心的只有两样东西:1、从哪来的2、到哪里去,别的东西他一概不管(实际上还 有一些东西,比如是有预约的——TCP,还是无预约的——UDP,如果是有预约的还会判断是刚要去预约还是已经预约好了等内容)。而病毒是属于所携带的内容方面的东西,这部分并不是门卫的职责范围,而是应该有专人去负责,这就好像有人跟门卫说要去市场部,而且门卫所接到的指令是“所有到市场部的全部放行”,所以门卫就放行了,但是没想到此人是到市场部去吵架的!不过这就不是门卫应该管的事情,而是保安所应该管的事情了。其实不仅如此,我们的防火墙这个“门 卫”即使见到来的人拿着刀、拿着枪,也一样会放行,因为他只关心两样东西:从哪里来和到哪里去。
这种结构虽然“分工明确”,但是我们总会觉得这种门卫有点不近人情,至少算不上一个好门卫。那么能不能让他包含查毒、防毒甚至杀毒的功能呢?当然没问题,因为防火墙就是一个软件,软件都是人写的, 只要我们把相应的功能给加进去就可以了,非常简单!不过事实上并非如此,我们还拿门卫的例子来给大家解释,因为门卫需要负责检查所有进出的人,而要想知 道某个人是否携带了违禁物品(病毒)就需要对其进行收身,如果门卫要对所有人都进行收身,那么大家可以想象一下在上下班这种人流高峰期会是一种什么场景!而 且对于服务器来说一秒钟就可能会有成千上万的访问,所以哪怕每次检查多用一点点时间,累计起来就非常可怕了!而且以我们现在这种特征码的检查方式来说检查病毒所用的并不是“一点点时间”,所以这种想法虽然技术上没有问题,但是并不可行,至少从现在的技术来看是不可行的。
我们来总结一下,防火墙就像一个门卫,他的职能是负责让不让进出,而进去之后干什么那就不是他需要管的事情了,这应该是保安(杀毒软件)或者其他相关部门的人所需要负责的。
理解了防火墙的本质之后再来学习、使用防火墙就容易了,不过对于Centos7新的防火墙firewalld来说还有一个很多人没有真正理解透的概念,那就是zone,学生下节再给大家详细介绍。
你真的理解防火墙吗