18张图详解防火墙基本原理:安全区域、安全策略、会话表、Server

文章正文
发布时间:2024-06-13 00:34

前面我们讲解了什么是防火墙,18图详解防火墙和路由器、交换机的区别,今天继续介绍下防火墙的基本原理,主要从安全区域、安全策略、会话表、server-map四个方面说起。

安全区域

1、什么是安全区域

安全区域是防火墙中重要的概念,防火墙可以将不同的接口划分到不同的安全区域。

一个安全区域可以说就是若干个接口的集合,一个安全区域里面的接口具有相同的安全属性。

如下图所示:防火墙把不同的接口分成3个安全区域,出口区为untrust区域,内网区分为trust区和DMZ区;

2、默认安全区域

华为防火墙划分了4个默认的安全区域:

(1)受信区域(trust):通过将内网终端用户所在区域划分为trust区域;

(2)非受信区域(untrust):通常将Internet等不安全的网络划分为untrust区域;

(3)非军事化区域(dmz):通常将内网服务器所在区域划分为DMZ区域;

(4)本地区域(local):设备本身,包括设备的各接口本身;

由设备主动发出的报文均可认为是从Local区域中发出的;

如果需要设备响应并处理的报文均可认为是由local区域接收。

3、默认安全区域优先级

默认的安全区域不能够删除,每个安全区域都设置了固定的优先级。优先级值越大,表示优先级越高

用户也可以根据自己的需求创建安全区域;

4、不同安全区域间通信举例

如上图所示:

PC连接防火墙的G0/0/1口,防火墙将G0/0/1口划分在trust区域;

运营商网络连接防火墙的G0/0/2口,防火墙将G0/0/2划分在untrust区域;

那么如果PC需要访问internet是否能够通过防火墙呢?这个就和防火墙的安全策略有关。下面我们就来讲下安全策略。

安全策略

1、什么是安全策略

安全策略是防火墙中对流量转发、以及对流量中的内容进行安全一体化检测的策略。

当防火墙收到流量后,会对流量的属性(包括五元组、用户、时间段等)进行识别,从而和安全策略进行匹配,如果能够匹配上,则执行相应的动作。

如上图所示:PC访问internet,匹配到防火墙安全策略,动作为permit,因此流量可以通过防火墙。如果动作为deny,则流量不能够通过防火墙。

2、安全策略组成

安全策略由匹配条件、动作、安全配置文件组成。

(1)匹配条件:

匹配条件包括五元组(源地址、目的地址、源端口、目的端口、协议)、VLAN、源安全区域、目的安全区域、用户、时间段等

(2)动作:

动作包括允许和禁止。

如果动作为“允许”:

如果没有配置内容安全检测,则允许流量通过。

如果配置内容安全检测,最终根据内容安全检测的结论来判断是否对流量进行放行。

禁止:表示拒绝符合条件的流量通过。

如果动作为“禁止”,防火墙不仅可以将报文丢弃;

还可以针对不同的报文类型选择发送对应的反馈报文。发起连接请求的客户端/服务器收到防火墙发送的阻断报文后,可以快速结束会话并让用户感知到请求被阻断。

(3)安全配置文件:

内容安全检测包括反病毒、入侵防御等,它是通过在安全策略中引用安全配置文件实现的。

如果其中一个安全配置文件阻断该流量,则防火墙阻断该流量。

如果所有的安全配置文件都允许该流量转发,则防火墙允许该流量转发。

3、安全策略匹配过程

防火墙的安全策略一般配置很多条,如果都可以匹配应该优先匹配哪一条呢?

安全策略的匹配按照策略列表顺序执行,从上往下逐条匹配,如果匹配了某条策略,将不再往下匹配。

因此,配置安全策略的顺序很重要,需要优先配置精确的安全策略,然后再配置粗略的安全策略。

系统默认存在一条缺省安全策略default

缺省安全策略位于策略列表的最底部,优先级最低,所有匹配条件均为any,动作默认为禁止。如果所有配置的策略都未匹配,则将匹配缺省安全策略default。

会话表

1、什么会话表?

会话表用来记录TCP、UDP、ICMP等协议连接状态的表项,是防火墙转发报文的重要依据;

那么什么是基于连接状态转发报文呢?防火墙基于“状态”转发报文:

(1)只对首包或者少量报文进行检测然后确认一个连接状态;(会话表)

(2)后续大量的报文根据连接状态进行控制;

会话表就记录了大量的连接状态;这种机制大大的提升了防火墙的检测和转发效率。

如上图所示:客户端PC1访问服务器PC2,PC1向PC2发起HTTP连接;

(1)PC1发送报文;

(2)首包达到防火墙,创建会话表项(如下);防火墙会话表中标示出“http”协议和连接信息,并识别出此流量在公共路由表中被转发;

(3)防火墙放行报文;

(4)PC2回复报文;

(5)回复报文匹配防火墙会话;

(6)防火墙转发报文;

2、会话表的创建

防火墙在开启状态检测情况下,只有首包会创建会话表项,后续报文匹配会话表即可转发;

3、会话表老化时间

对于一个已经建立的会话表表项,只有当它不断被报文匹配才有存在的必要。如果长时间没有报文匹配,则说明可能通信双方已经断开了连接,不再需要该条会话表项了。

为了节约系统资源,系统会在一条表项连续未被匹配一段时间后,将其删除,即会话表项已经老化。

4、长连接

对于某些特殊业务中,一条会话的两个连续报文可能间隔时间很长。

例如:

用户通过FTP下载大文件,需要间隔很长时间才会在控制通道继续发送控制报文。

用户需要查询数据库服务器上的数据,这些查询操作的时间间隔远大于TCP的会话老化时间。

如果只靠延长这些业务所属协议的老化时间来解决这个问题,会导致一些同样属于这个协议,但是其实并不需要这么长的老化时间的会话长时间不能得到老化。

这会导致系统资源被大量占用,性能下降,甚至无法再为其他业务建立会话。所以必须缩小延长老化时间的流量范围。

长连接功能可以解决这一问题。长连接功能可以为这些特殊流量设定超长的老化时间。

Server-map

1、为什么会出现server-map表?

由于会话表对哪些报文属于同一条流量的标准过于严格,会导致一些特殊协议不能正确匹配会话表。

Server-map表可以解决这一问题。

例如使用FTP协议的port方式传输文件时:

既需要客户端主动向服务器端发起控制连接;

又需要服务器端主动向客户端发起服务器数据连接;

如果设备上配置的安全策略为允许单方向上报文主动通过,则FTP文件传输不能成功。

2、server-map表原理

通常情况下,如果在设备上配置严格的安全策略,那么设备将只允许内网用户单方向主动访问外网。

为了解决这一类问题,FW引入了Server-map表,Server-map用于存放一种映射关系。

这种映射关系可以是控制数据协商出来的数据连接关系;

也可以是配置NAT中的地址映射关系;

使得外部网络能透过设备主动访问内部网络。

生成Server-map表之后,如果一个数据连接匹配了Server-map表项,那么就能够被设备正常转发,并在匹配Server-map表后创建会话,保证后续报文能够按照会话表转发。

3、server-map表报文转发过程

防火墙收到报文后,如果没有命中会话表,防火墙则进入首包处理流程,查询是否命中server-map表。

如果命中,则生成会话表,转发报文;

如果没有命中,则执行其他包处理流程。