为了获得最大的安全,我应该使用分布式模式还是反向代理设置?

为了获得最大的安全,我应该使用分布式模式还是反向代理设置?

我使用 ColdFusion 已有很长时间了。我脑子里一直有个想法:为了获得最大的安全性,您应该将 Web 服务器与 ColdFusion 服务器物理分开。因此,我一直使用 Adob​​e 所称的“分布式模式”来实现这一点。IIS 位于一台服务器上,而 ColdFusion 位于另一台服务器上。它们像往常一样通过 Web 连接器进行通信,尽管是通过网络。

几年来,我遇到过一些帖子,其中提到使用反向代理与在分布式模式下运行一样安全。使用反向代理设置,Web 服务器和 ColdFusion 服务器位于同一台物理机器上,但有一个代理服务器处理请求并充当 Web 服务器(基本上)。但在我看来,物理分离更安全。

互联网上很难找到任何明确的建议。即使在ColdFusion 11 文档-有关 Web 服务器配置工具的更多信息(包括有关多宿主和分布式使用的信息),请参阅配置和管理 ColdFusion 指南。(尽管在引用的页面上并没有太多相关信息。)这两种设置似乎在各种博客和帖子中都有提及,但我发现人们更常使用反向代理设置而不是分布式模式设置。没有什么具体的东西,只是我在网上搜索后的看法。在分布式模式下运行,Web 服务器和 ColdFusion 服务器位于不同的服务器上,在设置时肯定会增加一层复杂性。静态文件位于 Web 服务器上,CFML 文件位于 ColdFusion 服务器上。等等。当您使用第三方产品时,这可能很难正确配置。

所以我的问题是,假设其他所有条件都相同,为了获得最大安全性,您是使用分布式模式还是反向代理设置?以及您这样做的原因。

不幸的是,ColdFusion 锁定指南让事情变得混乱。以下是我发现的。

在里面ColdFusion 9 锁定指南(第 14-15 页)其中指出:

您可能还考虑以分布式模式安装 ColdFusion。这允许 Web 服务器驻留在与 ColdFusion 服务器物理上分开的服务器上。您还可以将多个 Web 服务器连接到单个 ColdFusion 服务器(在 ColdFusion 9 文档中,这称为多宿主)。这种分离可以提供额外的安全性,在需要最大安全性的环境中应考虑使用。要安装分布式模式,请选择内置 Web 服务器选项。有关配置分布式模式的信息,请参阅http://www.adobe.com/support/coldfusion/administration/cfmx_in_distributed_mode/cfmx_in_distributed_mode02.html有关多宿主的详细信息,请参阅http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fc3.html

另一种将面向公众的 Web 服务器与 ColdFusion 服务器分开的方法是使用反向代理。在反向代理设置中,ColdFusion 服务器仍安装有 Web 服务器,但所有外部客户端请求均由代理服务器处理,某些请求将发送到 ColdFusion 服务器进行处理。

在里面ColdFusion 10 锁定指南(第 27 页)该声明被缩减为以下内容:

为了实现最大程度的安全,请考虑在不同的物理服务器上运行 Web 服务器和 ColdFusion。将面向公众的 Web 服务器和 ColdFusion 服务器分开的一种方法是使用反向代理。

在反向代理设置中,ColdFusion 服务器仍将安装 Web 服务器,但所有外部客户端请求都将由代理服务器处理,只有特定请求才会发送到 ColdFusion 服务器进行处理。请参阅 Web 服务器文档以设置反向代理。

并且在ColdFusion 11 锁定指南两者都没有提及。它似乎应该在第 11 页左右,其他文档中的语句以及运行 Web 服务器配置工具都位于该页。我很好奇 Pete 为什么将其从最新文档中删除。

当我使用 Adob​​e ColdFusion 时,我也用 Railo 标记了这个问题以获得更多输入。

答案1

您混淆了“分布式模式”(将 Web 服务器和 CF 服务器放在不同的机器上)与使用反向代理是相互排斥的。实际上,它们是两个不同的问题。反向代理只是使用标准 Web 连接器的一种替代方案。它只是让您的 Web 服务器(IIS、Apache、Nginx)将 CFML 页面的请求重定向到 CF 机器上给定主机/端口上的 HTTP/HTTPS 或 AJP 端口。您可以配置反向代理以代理到本地主机或网络上的任何其他服务器,只要相应的端口是打开的。

例如,您可以在 Tomcat 的 8009 端口上启用 AJP 监听器。然后在您的 Apache Web 服务器(可以是网络上的任何位置)上使用 proxy_ajp 模块将 .cfm 文件的代理请求反向发送到该端口。

我个人从未处理过分布式模式,因为针对我的 Web 服务器的攻击媒介似乎要少得多。但如果您选择使用“分布式模式”,则可以使用常规连接器或反向代理来实现。这取决于您。

答案2

分布式模式或反向代理设置将提供大致相似的安全级别,但分布式模式将具有额外的高可用性和可靠性服务器场景。

相关内容