你真的理解防火墙吗?

版权声明:本内容为原创内容,转载请声明出处。

原文地址:http://www.excelib.com/article/286/show

要 想真正用活防火墙,首先需要弄明白防火墙到底是什么、起什么作用,只有这样才能用的得心应手,不过由于历史原因,现在普遍对防火墙概念的理解有一 定的误区,这就影响了对防火墙的灵活使用,所以在正式学习firewalld之前学生先给大家介绍一下防火墙的本质到底是什么。

“防火墙”到底是什么

“防火墙”在我国最早是一种建筑,他又叫“封火墙”,其主要作用就是防火,因为那时候的建筑都是以木质结构为主,而且又非常密集,所以一个住宅着火就很容易传播到邻近的住宅,最初的防火墙就是在这种木质结构上涂上灰泥从而达到将火源隔断的目的。

网络中的防火墙来源于英文单词“firewall”的翻译,有时候也叫“网络防火墙”,不过这个词使用的并不是非常准确,这也就导致了对防火墙的普遍误解。

一 想到防火墙大家的第一印象大概就是“隔离”,而且很多防火墙的资料也是这么介绍的,比如“将内网和外网进行隔离”、“将本地电脑和外部网络隔离” 等等, 而且有时候还会配一张示意图,图中的防火墙就是一堵墙。以前学生在刚接触防火墙的时候心里就产生了一些疑问:既然防火墙已经将网络给隔断了,那么正常的通 信是怎么进行的呢?是可以穿墙而过还是需要从其他通道进入呢?而且,当时学生甚至认为防火墙是用来防病毒的!

其实这一切的根源都来自对“防火墙”这个词本身的理解,实际上“网络防火墙”所起的并不是墙的作用,而是门卫的作用,如果按门卫去理解很多问题就迎刃而解了。

墙 和门卫有哪些区别呢?这个问题虽然看起来有些可笑,不过对于理解网络防火墙还是有好处的。首先,墙所起的作用是隔断,无论谁都过不去,但是门卫就 不一样 了,他的职能是检查和判断是否可以通过,只要符合条件就可以通过;其次,墙是死的,而门卫是活的,所以门卫还可以完成很多更加灵活的功能,比如有人要到A 部门办事,但A部门搬到新的办公地址去了,这时门卫就可以告诉来人“你要去的部门换地方了,你到XXX去吧”,再比如有的人并不是要进去办事,只是想从里 边穿过去抄近道,这种情况门 卫也能处理,但是墙是无论如何都办不到的。

理解防火墙本质的好处

可能有的读者会想:你这是在咬文嚼字,不就是个名词吗,理解不理解又有什么关系呢?会用不就行了?而且这么多年大家用的不也挺好的嘛!

其 实并不是这样,我们以前如果要使用一个防火墙一般都是先看他都具有哪些功能,其中我们能用到哪些,怎么去用,然后再去找文档、找例子。。。。。。 这其实是一 种被动的用法,因为这里我们其实是将防火墙当做一个新事物来学习和使用的(虽然我们一般刚开始都会将其理解为墙,但是慢慢会发现他跟墙的模型并不相符,所 以就会将其当做一个新的事物来学习),但是理解了防火墙的本质就是门卫之后就不一样了,这时我们在使用防火墙的时候首先就要想:我要给我的服务器(或者自 己的PC)找个门卫,这个门卫需要做什么,然后再去找防火墙、查具体某功能的配置方法等等,这样就主动了。

不仅如此,在理解了其本质之后 还有更大的好处,比如你想好了想找的“门卫”都需要有哪些功能之后又去找防火墙,然而却发现没有一款防火墙可以满足你 的需求,这时候创新的机会就来了!也就是说通过防火墙和门卫功能的类别更容易设计出更加合理和易用的防火墙。我们来看个例子,比如一个门卫应该可以有按时 间段放行的功能,但是现有防火墙却很少有这个功能,其实这个功能很多地方都是可以用得到的,比如每天要定时远程备份一下日志,那么只要在每天在特定的时间 段开放端口就行了,而不需要一直开着,当然这种需求可以通过定时任务很容易地解决,不过只要从“门卫”的角度去思考,这样的需求还有很多。

真正好的创意其实是建立在扎实的基本功和对事物本质的深层次理解上的,而不是为了创新而创新出来的。

防火墙与杀毒软件

对于不了解防火墙的用户来说很多时候都分不清防火墙和杀毒软件之间的关系,而且往往会认为防火墙就是用来防病毒的,其实这是对防火墙非常大的误解,这也许跟大家心目中防火墙的“墙”、“保护”、“安全”等特征有关系,但是防火墙其实并不能防病毒。

我 们上面说了,防火墙所起的是门卫的作用,不过这个门卫的逻辑非常简单,他主要关心的只有两样东西:1、从哪来的2、到哪里去,别的东西他一概不管 (实际上还 有一些东西,比如是有预约的——TCP,还是无预约的——UDP,如果是有预约的还会判断是刚要去预约还是已经预约好了等内容)。而病毒是属于所携带的内 容方面的东西,这部分并不是门卫的职责范围,而是应该有专人去负责,这就好像有人跟门卫说要去市场部,而且门卫所接到的指令是“所有到市场部的全部放 行”,所以门卫就放行了,但是没想到此人是到市场部去吵架的!不过这就不是门卫应该管的事情,而是保安所应该管的事情了。其实不仅如此,我们的防火墙这个 “门 卫”即使见到来的人拿着刀、拿着枪,也一样会放行,因为他只关心两样东西:从哪里来和到哪里去。

这种结构虽然“分工明确”,但是我 们总会觉得这种门卫有点不近人情,至少算不上一个好门卫。那么能不能让他包含查毒、防毒甚至杀毒的功能呢?当然没 问题,因为防火墙就是一个软件,软件都是人写的, 只要我们把相应的功能给加进去就可以了,非常简单!不过事实上并非如此,我们还拿门卫的例子来给大家解释,因为门卫需要负责检查所有进出的人,而要想知 道某个人是否携带了违禁物品(病毒)就需要对其进行收身,如果门卫要对所有人都进行收身,那么大家可以想象一下在上下班这种人流高峰期会是一种什么场景! 而 且对于服务器来说一秒钟就可能会有成千上万的访问,所以哪怕每次检查多用一点点时间,累计起来就非常可怕了!而且以我们现在这种特征码的检查方式来说检查 病毒所用的并不是“一点点时间”,所以这种想法虽然技术上没有问题,但是并不可行,至少从现在的技术来看是不可行的。

我们来总结一下,防火墙就像一个门卫,他的职能是负责让不让进出,而进去之后干什么那就不是他需要管的事情了,这应该是保安(杀毒软件)或者其他相关部门的人所需要负责的。

理解了防火墙的本质之后再来学习、使用防火墙就容易了,不过对于Centos7新的防火墙firewalld来说还有一个很多人没有真正理解透的概念,那就是zone,学生下节再给大家详细介绍。

时间: 2024-12-04 18:11:22

你真的理解防火墙吗?的相关文章

你真的理解防火墙吗

原文地址:http://www.excelib.com/article/286/show 要想真正用活防火墙,首先需要弄明白防火墙到底是什么.起什么作用,只有这样才能用的得心应手,不过由于历史原因,现在普遍对防火墙概念的理解有一定的误区,这就影响了对防火墙的灵活使用,所以在正式学习firewalld之前学生先给大家介绍一下防火墙的本质到底是什么. "防火墙"到底是什么 "防火墙"在我国最早是一种建筑,他又叫"封火墙",其主要作用就是防火,因为那时

三层,你真的理解了吗?

这篇博客,在草稿箱存了很久,直至今日才准备发表.为什么呢?刚开始写这个博客的时候是三层登录刚刚实现.代码是借鉴的网上大神的,只是实现了简单的登录功能.知道它有三个层,每层是干吗的,理解也仅仅局限于官方的解释.也就是下面的这些东东: UI(view):显示层,只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理. BLL(Business Logic Layer):业务逻辑层,通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理.处理完成后,返回必要数据给UI

对于C#中的一些点滴你真的理解了吗?

废话不多说看题目,看看我们自己真的理解了吗? 1.如下代码输出的结果是什么? public class A{ public virtual void Func(int  number=10) { Console.WriteLine("Class A Func:"+number); } } public class B{ public virtual void Func(int  number=10) { Console.WriteLine("Class B Func:&quo

你真的理解大数据吗?

(大讲台——国内首个it在线自适应学习平台,轻量级的高薪就业和技能提升解决方案) 大数据很火,已然是一种大势所趋,是雷军口中的下一个吹起猪的风口,是刘强东哥伦比亚大学深造回来的第一个发展对象.大数据牵动着全国精英的心.然而,你真的理解什么是大数据吗? 就目前来看,对大数据进行解释的声音总体分为两种,一种是大数据数据量级要大,一般可达到pb级别,有了足量的数据之后,根据数据搭建起一个全方位多角度立体化的识别体系,比如说谣言这件事,以前数据量虽大,但处理技术欠佳,不能对谣言这类信息作出全方位立体化多

你真的理解函数式编程吗?

你真的理解函数式编程吗? 大数据以及人工智能越来越流程,你是否可以轻松适应大数据编程,函数式编程在其中起着重要作用,如何从面向对象编程跳槽到函数式编程?你是否觉得函数式各种概念难于理解?本场 Chat 将为你解答.我将为你分享亲身学习和理解关于函数式编程的经验: 高阶函数.闭包.匿名函数等 高阶函数和闭包是啥关系? 柯里化 函数式编程思维 适合人群: 如果你想转人工智能领域,请关注此 Chat 如果你想了解机器学习,请关注此 Chat 如果你正在学习一下机器学习,请购关注 Chat 实录提要:

领域模型,你真的理解的了吗?

领域模型,你真的理解的了吗? 背景 UML比较难学,主要是其本身很复杂并且涉及到大量的概念名词.领域模型就是其中之一,网络上搜索到关于领域模型的知识应该是有两种,一种是来源于最初的传统软件开发过程,一种来源于领域驱动设计(DDD),这两者很容易混淆.以下是我对领域模型这个概念的一些理解. 1. 领域模型是什么? 理论派观点: Domain Model是一个商业建模范畴概念,即使一个企业不开发软件,也具备其业务模型: 所有同行企业,其业务模型必定有非常大的共性和内在的规律性. 由行业内的各个企业的

我想这次我真的理解了 JavaScript 的单线程机制

今天面试的时候被问到一个问题,是关于 JS 异步的.当时我脑海中闪过了一个单线程的概念,但却没有把真正的原理阐述清楚.所以回来特意重新回顾了前面单线程和异步相关的一些知识点. 虽然之前学习的时候也接触了单线程模型相关的东西,但当时理解得并不是很清楚和明白.所以这道面试题也没有给出一语中的的答案.重新阅读阮一峰的 <JavaScript 运行机制详解>和我之前写的<setTimeout 异步与回调>之后.我决定重新写一篇博客来更加白话的总结 JS 的单线程机制和异步. 重演历史 -

【java基础】程序员你真的理解反射机制吗?

目录 前言 1.反射的概述 2.正式使用反射之前很有必要了解的Class类 3.反射的使用 前言 很多讲解反射的博客文章并没有详细讲解Class类,~当然包括之前的我也一样~,这样的文章只会让反射徒有其表,并不能让大多数初学者真正理解反射,而恰恰反射的原理就在于Class对象!可见他的重要性,这篇文章我将总结一下关于Class类的知识,可能还不是很全面,各位担待点哈QnQ,我之前也写过几篇关于反射的文章,主要是反射真的太重要了,现在重新总结一篇~主要是前面总结的太潦草了~,对反射重新认识顺道再结

你真的理解__block修饰符的原理么?

开篇自测 在本文的开头,提出两个简单的问题,如果你不能从根本上弄懂这两个问题,那么希望你阅读完本文后能有所收获. 为什么block中不能修改普通变量的值? __block的作用就是让变量的值在block中可以修改么? 如果有的读者认为,问题太简单了,而且你的答案是: 因为编译器会有警告,各种教程也都说了不能修改. 应该是的吧. 那么我也建议你,抽出宝贵的几分钟时间阅读完本文吧.在开始揭开__block的神秘面纱之前,很不幸的是我们需要重新思考一下block的本质和它的实现. block是什么?