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

Cha*_*ker 5 firewall load-balancing

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

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

Joh*_*ers 7

我原以为这是不言而喻的:与您将任何东西放在防火墙后面的原因相同。


小智 5

我认为经典的是:

Firewall <-> Load Balancer <-> Web Servers <-> ...
Run Code Online (Sandbox Code Playgroud)

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

在公共云上,人们倾向于实现类似的东西:

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

坦率地说,这已经足够好了。

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

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


Mar*_*son 5

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

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

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

如果您要配置完全冗余的系统,则在主动/被动 HA 集群中需要两个 F5,然后在主动/被动 HA 集群中也会有两个防火墙。

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

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