防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,有选择地接受外部访问,对内部强化设备监管、控制对服务器与外部网络的访问,在被保护网络和外部网络之间架起一道屏障,以防止发生不可预测的、潜在的破坏性侵入。

防火墙有两种,硬件防火墙和软件防火墙,他们都能起到保护作用并筛选出网络上的攻击者。在这里主要给大家介绍一下我们在企业网络安全实际运用中所常见的硬件防火墙。

防火墙技术分类

防火墙技术经历了包过滤、应用代理网关、再到状态检测三个阶段。

包过滤技术是一种简单、有效的安全控制技术,它通过在网络间相互连接的设备上加载允许、禁止来自某些特定的源地址、目的地址、TCP端口号等规则,对通过设备的数据包进行检查,限制数据包进出内部网络。包过滤的最大优点是对用户透明,传输性能高。但由于安全控制层次在网络层、传输层,安全控制的力度也只限于源地址、目的地址和端口号,因而只能进行较为初步的安全控制,对于恶意的拥塞攻击、内存覆盖攻击或病毒等高层次的攻击手段,则无能为力。

状态检测是比包过滤更为有效的安全控制方法。对新建的应用连接,状态检测检查预先设置的安全规则,允许符合规则的连接通过,并在内存中记录下该连接的相关信息,生成状态表。对该连接的后续数据包,只要符合状态表,就可以通过。这种方式的好处在于:由于不需要对每个数据包进行规则检查,而是一个连接的后续数据包(通常是大量的数据包)通过散列算法,直接进行状态检查,从而使得性能得到了较大提高;而且,由于状态表是动态的,因而可以有选择地、动态地开通1024号以上的端口,使得安全性得到进一步地提高。

1. 包过滤技术

包过滤防火墙一般在路由器上实现,用以过滤用户定义的内容,如IP地址。包过滤防火墙的工作原理是:系统在网络层检查数据包,与应用层无关。这样系统就具有很好的传输性能,可扩展能力强。但是,包过滤防火墙的安全性有一定的缺陷,因为系统对应用层信息无感知,也就是说,防火墙不理解通信的内容,所以可能被黑客所攻破。

防火墙,基础原理
包过滤防火墙工作原理图

包过滤防火墙工作在网络层,对数据包的源及目地IP具有识别和控制作用,对于传输层,也只能识别数据包是TCP还是UDP及所用的端口信息。现在的路由器、Switch Router以及某些操作系统已经具有用Packet Filter控制的能力。 

由于只对数据包的IP地址、TCP/UDP协议和端口进行分析,包过滤防火墙的处理速度较快,并且易于配置。 

包过滤防火墙具有根本的缺陷:

不能防范黑客攻击。包过滤防火墙的工作基于一个前提,就是网管知道哪些IP是可信网络,哪些是不可信网络的IP地址。但是随着远程办公等新应用的出现,网管不可能区分出可信网络与不可信网络的界限,对于黑客来说,只需将源IP包改成合法IP即可轻松通过包过滤防火墙,进入内网,而任何一个初级水平的黑客都能进行IP地址欺骗。 不支持应用层协议。假如内网用户提出这样一个需求,只允许内网员工访问外网的网页(使用HTTP协议),不允许去外网下载电影(一般使用FTP协议)。包过滤防火墙无能为力,因为它不认识数据包中的应用层协议,访问控制粒度太粗糙。 不能处理新的安全威胁。它不能跟踪TCP状态,所以对TCP层的控制有漏洞。如当它配置了仅允许从内到外的TCP访问时,一些以TCP应答包的形式从外部对内网进行的攻击仍可以穿透防火墙。 

综上可见,包过滤防火墙技术面太过初级,就好比一位保安只能根据访客来自哪个省市来判断是否允许他(她)进入一样,难以履行保护内网安全的职责。 

2. 应用网关防火墙

应用网关防火墙检查所有应用层的信息包,并将检查的内容信息放入决策过程,从而提高网络的安全性。然而,应用网关防火墙是通过打破客户机/服务器模式实现的。每个客户机/服务器通信需要两个连接:一个是从客户端到防火墙,另一个是从防火墙到服务器。另外,每个代理需要一个不同的应用进程,或一个后台运行的服务程序,对每个新的应用必须添加针对此应用的服务程序,否则不能使用该服务。所以,应用网关防火墙具有可伸缩性差的缺点。

防火墙,基础原理
应用网关防火墙工作原理图

应用代理网关防火墙彻底隔断内网与外网的直接通信,内网用户对外网的访问变成防火墙对外网的访问,然后再由防火墙转发给内网用户。所有通信都必须经应用层代理软件转发,访问者任何时候都不能与服务器建立直接的TCP连接,应用层的协议会话过程必须符合代理的安全策略要求。 

应用代理网关的优点是可以检查应用层、传输层和网络层的协议特征,对数据包的检测能力比较强。 

缺点也非常突出,主要有:

难于配置。由于每个应用都要求单独的代理进程,这就要求网管能理解每项应用协议的弱点,并能合理的配置安全策略,由于配置繁琐,难于理解,容易出现配置失误,最终影响内网的安全防范能力。 处理速度非常慢。断掉所有的连接,由防火墙重新建立连接,理论上可以使应用代理防火墙具有极高的安全性。但是实际应用中并不可行,因为对于内网的每个Web访问请求,应用代理都需要开一个单独的代理进程,它要保护内网的Web服务器、数据库服务器、文件服务器、邮件服务器,及业务程序等,就需要建立一个个的服务代理,以处理客户端的访问请求。这样,应用代理的处理延迟会很大,内网用户的正常Web访问不能及时得到响应。 

总之,应用代理防火墙不能支持大规模的并发连接,在对速度敏感的行业使用这类防火墙时简直是灾难。另外,防火墙核心要求预先内置一些已知应用程序的代理,使得一些新出现的应用在代理防火墙内被无情地阻断,不能很好地支持新应用。 

在IT领域中,新应用、新技术、新协议层出不穷,代理防火墙很难适应这种局面。因此,在一些重要的领域和行业的核心业务应用中,代理防火墙正被逐渐疏远。 

但是,自适应代理技术的出现让应用代理防火墙技术出现了新的转机,它结合了代理防火墙的安全性和包过滤防火墙的高速度等优点,在不损失安全性的基础上将代理防火墙的性能提高了10倍。 

3. 状态检测防火墙

状态检测防火墙基本保持了简单包过滤防火墙的优点,性能比较好,同时对应用是透明的,在此基础上,对于安全性有了大幅提升。这种防火墙摒弃了简单包过滤防火墙仅仅考察进出网络的数据包,不关心数据包状态的缺点,在防火墙的核心部分建立状态连接表,维护了连接,将进出网络的数据当成一个个的事件来处理。可以这样说,状态检测包过滤防火墙规范了网络层和传输层行为,而应用代理型防火墙则是规范了特定的应用协议上的行为。

防火墙,基础原理
状态检测防火墙工作原理图

我们知道,Internet上传输的数据都必须遵循TCP/IP协议,根据TCP协议,每个可靠连接的建立需要经过“客户端同步请求”、“服务器应答”、“客户端再应答”三个阶段,我们最常用到的Web浏览、文件下载、收发邮件等都要经过这三个阶段。这反映出数据包并不是独立的,而是前后之间有着密切的状态联系,基于这种状态变化,引出了状态检测技术。

状态检测防火墙摒弃了包过滤防火墙仅考查数据包的IP地址等几个参数,而不关心数据包连接状态变化的缺点,在防火墙的核心部分建立状态连接表,并将进出网络的数据当成一个个的会话,利用状态表跟踪每一个会话状态。状态监测对每一个包的检查不仅根据规则表,更考虑了数据包是否符合会话所处的状态,因此提供了完整的对传输层的控制能力。

网关防火墙的一个挑战就是能处理的流量,状态检测技术在大为提高安全防范能力的同时也改进了流量处理速度。状态监测技术采用了一系列优化技术,使防火墙性能大幅度提升,能应用在各类网络环境中,尤其是在一些规则复杂的大型网络上。

任何一款高性能的防火墙,都会采用状态检测技术。

4. 复合型防火墙

复合型防火墙是指综合了状态检测与透明代理的新一代的防火墙,进一步基于ASIC架构,把防病毒、内容过滤整合到防火墙里,其中还包括VPN、IDS功能,多单元融为一体,是一种新突破。常规的防火墙并不能防止隐蔽在网络流量里的攻击,在网络界面对应用层扫描,把防病毒、内容过滤与防火墙结合起来,这体现了网络与信息安全的新思路。它在网络边界实施OSI第七层的内容扫描,实现了实时在网络边缘布署病毒防护、内容过滤等应用层服务措施。

防火墙,基础原理
复合型防火墙工作原理图
四类防火墙的对比包过滤防火墙:包过滤防火墙不检查数据区,包过滤防火墙不建立连接状态表,前后报文无关,应用层控制很弱。应用网关防火墙:不检查IP、TCP报头,不建立连接状态表,网络层保护比较弱。状态检测防火墙:不检查数据区,建立连接状态表,前后报文相关,应用层控制很弱。复合型防火墙:可以检查整个数据包内容,根据需要建立连接状态表,网络层保护强,应用层控制细,会话控制较弱。