团队简介
我们是光大科技有限公司智能云计算部基础设施团队,致力于规划、设计、运维管理集团基础设施环境,保障集团基础设施环境稳定运行,我们团队拥有经验丰富的网络,应用交付,安全专家。将不定期分享网络运维技巧,分析各种网络协议,提供应用交付及安全案例。将与大家共同探索金融行业基础架构发展趋势。
引言
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题。其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
小葵花历史课堂
在开始今天的分享之前我们先来看看防火墙的前世今生。
如开篇所述,防火墙的主要功能是实现区域隔离。按照不同的实现方式,我们把常用的的防火墙分成三类,这也体现了防火墙一路打怪升级的历史。
图片来源于网络
一、包过滤防火墙
初代目防火墙通过acl访问列表实现对流量的控制,我们称之为包过滤防火墙,但是这种流控方式非常繁琐粗糙,同一条数据流需要配置双向访问的acl,并且仅能停留在协议和端口的层面,目前基本已经被淘汰了。具有acl的路由器已经可以完美取代包过滤防火墙。
二、代理防火墙
代理防火墙能够提供更多的安全保护,但是这要以牺牲速度和功能为代价。代理防火墙通过代理技术参与到一个TCP连接的全过程。当代理防火墙收到一个客户的连接请求时,先核实该请求,然后将处理后的请求转发给真实服务器,在接受真实服务器应答并做进一步处理后,再将回复交给发出请求的客户。然而这样压榨防火墙的工作方式常常会导致代理防火墙过劳死,出现在代理防火墙上的瓶颈导致这样的技术同样寿命不长。
三、状态检测防火墙
在前两代防火墙“表现平平”的情况下,状态检测防火墙救世登场,它在理念上实现了一个重大升级:把网络中的数据以流的方式对待。数据流在防火墙上形成会话表,同一条流通过匹配会话表通过防火墙。
在这里我们再简单提一下防火墙的其他分类方式:按照形态我们将防火墙分为硬件防火墙和软件防火墙,按照保护对象我们可以将防火墙分为单机防火墙和网络防火墙。我们今天的主角就是网络硬件状态检测防火墙(以下简称防火墙)。
防火墙里的hello world
在了解防火墙的工作原理之前我们要先了解几个防火墙的重要概念:
首先我们要注意防火墙是一个具有三层转发功能的应用层设备,只是大多数时间并不需要防火墙解包至应用层就可以完成工作。
其次我们需要区分会话、连接和命中的概念:会话是指数据包通过首包检测后在防火墙建立会话表;连接指在两个传输用户之间建立一种逻辑联系,使得通信双方都确认对方为自己的传输连接端点;命中指符合防火墙安全策略的数据包通过防火墙。
最后,我们要理解防火墙所引入的一个安全概念——ZONE(区域):
ZONE是防火墙区别于路由器的主要特征,防火墙基于zone工作 ,主要功能是区域隔离。ZONE是一个本地逻辑安全区域,包括一个或多个接口的组合,具有一个优先级。任意接口只有在划分在某个ZONE底下时才能正常工作,即防火墙人为的将各个接口“分出个三六九等”。例如将某个防火墙的1-5端口划分到trust区域6-10端口划分到untrust区域,则我们称从1端口进入防火墙、从6端口离开的流量称为从trust到untrust的流量。而按照优先级的大小,从低优先级区域访问高优先级区域的流量受限,需要配置安全策略(实际工作中跨zone访问通常都需要配置安全策略,即使是高优先级访问低优先级区域)。需要注意的是ZONE仅在防火墙本地有效,负责防火墙内部的流量控制和隔离,在防火墙与防火墙之间不存在ZONE的概念。
讲到这我们终于可以来看一看状态检测防火墙的真面目了。所谓状态检测,即检查当前的会话。前面提到过,同一条流通过匹配会话信息来通过防火墙。当防火墙收到一个数据包后检查自身已有的会话表,如果当前数据包的各项参数能够与已有会话表项相匹配(如五元组,源zone和目的zone等),如果有匹配的会话表,则匹配会话表转发(需要注意的是,匹配会话表仅代表数据包通过防火墙的安全检查,而会话表本身不能作为回程报文转发表项)。如果没有匹配会话表,看是否能够创建会话表。在这里又涉及到另一个概念——首包检测。
在开启首包检测的情况下,如果数据包不能匹配当前已有的会话表,只有特定数据包(用于创建连接的首包)能够触发防火墙会话,其余数据包将会被直接丢弃。常见的首包有TCP协议的syn,ICMP协议的ping echo request等,因为UDP协议不面向连接,因此将每一个UDP报文均视为首包,创建会话。如果关闭首包检测,则防火墙将每个数据包均视为首包,均创建会话。
最常见的需要关闭首包检测的情况是数据流来回路径不一致。假设内网出口防火墙采用旁挂模式,如图所示:
图片来源于网络
为减轻防火墙压力,由内网访问外网的流量默认为安全流量,不经过防火墙,由交换机直接转发。由外网进入内网的流量则需要进行访问控制,全部转发给防火墙进行过滤。此时,内网主机向外网服务器发送ping echo request报文,如果开启首包检测功能,则外网服务器的reply响应报文经过防火墙时,既不能匹配已有的会话,也不属于能够触发会话的首包,则防火墙直接丢弃该报文,导致通信失败。此时需要关闭首包检测功能,由reply报文独立触发会话机制,通过防火墙。
揭开防火墙的神秘面纱
在了解了防火墙所有常见的机制后,我们来看一看防火墙具体的工作原理。这里以常见的华为防火墙为例,不同品牌型号的防火墙可能会在细节上存有差异,但是整体工作思路并无差别,都分为前中后三个阶段:
一、查询会话前的基本处理
在接收到一个报文后,防火墙首先对MAC地址进行过滤,丢弃黑名单中的报文。然后解析数据帧的头部获取源目MAC地址,并根据接受报文的端口类型对报文进行不同的处理,解包至三层获取源目IP地址,并根据具体配置选择执行进一步的检查。
二、查询会话的基础过程
这个阶段是防火墙的核心处理环节,主要的安全功能都在这个阶段实现。防火墙根据该报文是否存在匹配的会话表项,有以下两种处理方式:
(一)不存在匹配的会话表项
此时报文被认为是一条流量的首包,进入首包处理流程。
-
进行状态检测机制检测,判断该报文是否属于正常的可以建立会话的首包。
-
对于正常首包,防火墙将进行一系列的查询和处理,以获取这条流量的用户和应用等无法通过解析头部获取的信息。
-
防火墙根据该报文的目的地址查询路由表,获取出接口信息,并依此判断目的安全区域。
-
如果管理员配置了认证策略,防火墙获取到流量的源和目的信息后,对用户进行认证。
-
防火墙根据之前提取的流量源和目的信息,对流量进行安全策略匹配。如果匹配成功,首先会根据策略动作是“允许”还是“禁止”决定是放行首包建立会话,还是丢弃首包禁止流量。如果动作为“允许”,那么防火墙会根据安全策略引用的内容安全配置文件对该条流量进行标记,在下一阶段将会进行内容安全的处理。
-
如果此时会话数尚未达到管理员配置的连接数限制阈值,防火墙就会为通过上述检测的首包建立会话。首包本身将继续进入后续的转发模块处理,而这条流量的后续报文将进入“存在匹配的会话表项”这个流程处理。
需要注意的是:
获取流量的用户和应用通常不能根据分析一个报文完成。为了获取这条流量的多个业务报文,防火墙将首先根据认证策略,向需要认证但是尚未登录的用户进行网页重定向,向其推送认证页面,以获取其用户信息。在用户认证通过后,防火墙将根据用户实际传输的多个报文分析出该条流量的应用类型。在这个分析过程中,防火墙会先根据首包先建立一条会话,其中的应用信息保留为空。直至分析完成后再刷新会话表项填入应用信息。此时这条流量所能匹配的策略就可能发生变化,防火墙对其的处理方式也会随之改变。因此,下图只是一个示意图,展示了各个模块的基本处理顺序。实际每一个报文的处理并非严格按照此流程图依次进行。
(二)在匹配的会话表项
此时,这条流量的首包已经通过了一系列路由查询和安全检测,并最终建立了会话。那么匹配了会话表项的后续报文就无需再重复一遍首包处理流程。这种机制可以提高防火墙的检测效率。
后续报文首先会触发在线用户表的刷新,以保持有流量的用户持续在线,然后通过状态检测后可以进入后续的转发模块处理。
由于防火墙认为“首包安全并不代表后续报文一定安全”,所以防火墙实现的是对一条流量持续不断的安全检测。在这个持续检测中,应用信息的识别、用户上下线、内容安全功能检测出流量携带入侵或病毒等安全风险、管理员配置变更等多种情况都有能导致会话表项的刷新。所以一旦会话表项被刷新过,防火墙就会对该条流量的报文重新进行一些检查和处理。但是会话刷新导致对报文重新检测的过程,只进行了少量需要重新确认报文处理方式的特性,其流程仍然比首包处理流程简单得多。加上会话刷新的情况并非经常出现,所以这种机制在保证了对流量的持续保护的同时,也不会导致处理效率的明显降低。
三、进一步的安全检查及流量转发
这个阶段的主要目的是对流量进行持续的安全防护,同时保证报文被正确发送。
-
根据带宽策略,防火墙会判断一下当前流量的带宽占用情况,以判断是否需要丢弃这个报文以降低流量速率。
-
根据安全策略中引用的内容安全配置文件,防火墙会对报文进行内容安全过滤。
-
根据源NAT策略,防火墙会对报文的源IP地址进行源NAT转换。
-
根据VPN配置,防火墙会判断该报文是否需要进入VPN隧道,进入哪条隧道,并且对需要通过VPN传输的报文进行必要的加密,封装等操作。
-
根据之前的MAC地址转发表或者路由表查询的结果,防火墙已经得知该报文的出接口。根据出接口配置的带宽阈值限制,防火墙会再次控制流量的速率。
-
最后,防火墙将报文通过出接口发送出去。
至此,防火墙完成了所有的工作。
小结
从防火墙的发展历史和工作流程不难看出防火墙在对流量的集中管控、高速处理和深度过滤上不断强化自身,安全管理工具不断完善,对于网络攻击的检测和告警将会成为防火墙的重要功能。同时利用防火墙建立VPN、IP加密以及安全协议的开发将会是未来一段时间内的一大热点,单向防火墙(网络二极管)将会作为一种适应市场的单独产品门类出现。
防火墙是整个网络安全系统中的一个分支,有着举足轻重的地位。但在实际应用中,安全防护一定是分布式的、立体的、全方位的。软硬结合,网络与主机结合,通过区域联动来化解攻击行为,才能在信息安全防御体系中起到壁垒作用。
图片来源于网络
参考资料
-
HUAWEI USG6000系列 & NGFW Module V100R001C30SPC600 产品文档
-
https://baike.baidu.com/item/%E4%BB%A3%E7%90%86%E9%98%B2%E7%81%AB%E5%A2%99/9570104?fr=aladdin
-
https://blog.csdn.net/qq_38265137/article/details/88548511
-
https://baike.baidu.com/item/%E9%98%B2%E7%81%AB%E5%A2%99/52767?fr=aladdin
-
https://articles.e-works.net.cn/security/article112827.html
往期回顾
1
数据库索引略知一二
2
从Mark Word中看Java锁的升级
3
统一日志中心关键设计揭秘 -索引生命周期管理
4
漫谈Redis与缓存
EBCloud
作者 | 王启翔
原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33099.html