防火墙技术及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 代理防火墙

随着Web服务越来越普及,针对应用层的攻击也越来越普遍,急需一个可保护网络免受应用层攻击的防火墙。包过滤防火墙明显无法胜任,因此代理防火墙应运而生。

应用代理防火墙是最安全的访问类型之一。应用代理部署于受保护的网络和不安全的网络之间。每当应用程序发出请求时代理程序都会将请求拦截到防火墙处理。与实际传递客户端的初始请求相反,防火墙应用代理程序会发起自己的请求当目标服务器响应防火墙的代理请求时防火墙代理程序将响应发给客户端就像它是目标服务器一样(分别与两端建立TCP连接)。这样,客户端和目标服务器实际上就不会直接进行交互。代理防火墙工作模式如图1-5所示。

图1-5 代理防火墙工作模式

代理防火墙和包过滤防火墙正好相反,相比包过滤防火墙(不关心上层应用,只识别IP头部),它是最安全的防火墙类型,因为可以对整个数据包(包括其应用程序部分)进行全面检查。代理防火墙工作原理如图1-6所示。

图1-6 代理防火墙工作原理

因为报文会从下到上传送到防火墙的应用层,所以防火墙可以对应用协议的合规性进行检查,判断报文格式是否遵循协议标准,可以细化到每一个报文的头部字段和内容,例如不仅可以过滤一个HTTP请求的端口是否是80或8080,也可以判断它的请求方法(GET/POST)、请求的URI、请求的版本信息(1.0/1.1)、浏览器类型、压缩编码方式(Accept-Encoding)、接受的语言(Accept-Language)等。对于FTP,代理防火墙可以只允许它从远端服务器查看文件列表和下载(LIST、GET请求),而不允许它上传外发文件(PUT请求)。

代理防火墙的优点如下:

1)代理网关支持用户认证。因为可以看到内部用户的全部信息(ID、Cookie等),因此可以进行用户的认证并能够登记详细的用户信息。

2)相比包过滤防火墙动辄上百条访问控制策略的情况,代理防火墙更易于配置和维护。因为用户只需要关心上层的应用特征,而不用逐包地配置访问策略。

3)采用全代理的工作模式,更利于交互的可视化。可以审计和记录交互的全过程,提供详细的日志信息。

4)安全性极高,可以隐藏内部主机免受外部攻击。由于只能先与防火墙建立连接,因此攻击者无法直接攻击内部主机。

5)内部用户对外访问的地址都转换为防火墙的IP地址,自然解决了IP地址紧缺的问题。

虽然代理防火墙很安全,控制的粒度也很精细,但是由于种种原因,它并不是当今社会的主导技术,主要是它有如下缺点:

1)由于应用代理防火墙实际上是启动自身与目标系统的第二个连接,因此它需要两倍的连接量才能完成其交互。在较小的范围内,速度下降不会是一个很大的问题,但是当应对具有高并发连接的需求时,这不是可扩展的技术。到了今天,即使拥有超高性能的通用CPU和高效的操作系统,应用代理防火墙在不同现实环境中的性能仍然会有很大差异。

2)当代理防火墙要与多种不同的应用程序进行交互时,它需要具备处理多种不同应用程序的引擎,才能与其所连接的应用程序进行交互。对于大多数高使用率的原始应用程序(如Web浏览或HTTP),这不是问题。但是,如果使用的是专有协议,那么使用应用代理防火墙可能不是最佳解决方案。而且应用程序的版本更新很快,HTTP从最初的0.9,到HTTP 1.0,再到HTTP 2.0,代理防火墙显然很难跟上应用更新的速度。