为什么将负载均衡器放在防火墙后面?

为什么将负载均衡器放在防火墙后面?

我正在考虑购买一台 F5 负载平衡设备,它将代理入站 HTTP 连接到我内部网络上的五台 Web 服务器之一。我的假设是 F5 的外部接口将面向 Internet,而内部接口将面向 Web 服务器所在的内部网络。然而,我在网上看到的几张插图将 F5 设备放在在后面防火墙这种安排会导致额外的流量穿过防火墙,并且还会使防火墙成为单一故障点,对吗?

这种配置背后的原理是什么?

答案1

我认为经典的是:

Firewall <-> Load Balancer <-> Web Servers <-> ...

主要是昂贵的硬件防火墙时代遗留下来的。我已经实施了这样的方案,它们可以工作,但会使整个设置更加复杂。为了消除单点故障(例如允许升级防火墙),您需要在 2 个防火墙和 2 个负载均衡器之间进行网格流量(使用第 2 层网格或适当的第 3 层路由)。

在公共云上,人们倾向于实现类似如下的操作:

Load Balancer <-> [ (firewall + web) ] <-layer 2 domain or ipsec/ssl-> [ (firewall + app/db) ]

坦白说,这已经足够好了。

  1. 如果您使用负载均衡器终止 SSL 连接,则放置在负载均衡器前面的防火墙只能执行非常基本的第 3 层过滤,因为它看到的是加密流量。
  2. 您的 F5 已经配备了防火墙,其效果与您设置的过滤规则一样好。
  3. 我认为,当涉及到第 3 层时,纵深防御论点就显得很薄弱。Web 应用程序的攻击媒介是 SQL 注入,而不是突破防火墙来获取 root 访问权限。
  4. 小型 Web 服务器的核心通常足以处理来自 TCP 及以上层的过滤。

很高兴看到有关该主题的一些讨论。

答案2

我认为这是不言而喻的:和你将任何东西放在防火墙后面的原因是一样的。

答案3

我不会说有任何“额外”的流量穿过该防火墙。

如果有 5,000 个入站请求,并且您向每台服务器发送了 1,000 个请求,那么防火墙处理的请求数就不会比您向一台服务器发送 5,000 个请求或将防火墙置于 F5 后面时处理的请求数多(所有 5,000 个请求在某个时候仍然需要通过该防火墙,否则它们根本不在“私有”网络上)。

但防火墙确实是一个单点故障,但如果您花费预算购买单个 F5,那么该 F5 也会成为单点故障。

如果您要配置一个完全冗余的系统,那么您需要在主动/被动 HA 群集中安装两个 F5,然后您将拥有两个防火墙,也在主动/被动 HA 群集中。

它们可能在 F5 的文档中用单个图形来描述,但那是因为它只显示了防火墙的逻辑外观(有一个设备服务于所有请求),而不是物理设置(两个设备,其中一个处于 HA 待机状态)。

将负载均衡器置于边缘防火墙后面的另一个原因是,您的负载均衡器可能默认未经过网络强化(也许它的管理界面存在漏洞,也许默认允许所有端口,谁知道呢)。通过将其置于防火墙后面并只为公共需要的端口设置漏洞,您可以大大降低易受攻击的负载均衡器暴露在互联网上的风险。

答案4

通常,您希望将负载平衡器和 Web 服务器置于 DMZ(非军事区)中。内部和外部网络对 DMZ 的访问应由防火墙控制。如果负载平衡器位于防火墙前面,则无法平衡这两个负载。

正如其他人所发布的,除非您拥有冗余设备,否则防火墙和负载平衡器都将成为单点故障。

相关内容