在同一台机器上安装数据库服务器和 Web 服务器是否有风险?

在同一台机器上安装数据库服务器和 Web 服务器是否有风险?

在同一台机器上与 Web 服务器一起运行数据库服务器似乎很简单,但是这样做是否会面临很大的安全风险?

环境将是 Windows 2008 服务器、Postgresql(最新版​​本,发布时可能是 9.0)和 Apache 2。

答案1

不必要。

假设您的 Web 服务器遭到入侵,无论攻击者在哪个服务器上运行,他们仍将获得访问相同数据库的凭证。毕竟,数据库服务器仍需要配置为允许来自 Web 服务器的合法请求。

(假设合理的安全措施,例如 mysqld 不接受来自本地主机的无密码根登录。)

话虽如此,您可能仍想运行单独的数据库服务器。原因与性能、可扩展性等有关。

答案2

我不同意发帖者所说的这不是一个安全问题,原因如下:

  • 你的前端服务应该有尽可能最小的攻击面。这是使用反向代理和防火墙的主要原因,也是将不必要的服务和程序远离不需要它们运行的​​服务器的原因。这就是为什么 Web 服务器是安全强化通行证最常见的目标。
  • 您的 Web 服务器不应该对您的数据库系统拥有上帝权限。因此,入侵 Web 服务器不会同时入侵数据库服务器。首先,Web 服务器用于访问数据库的帐户不应该对 SQL 框拥有本地管理权限,其权限应该仅限于数据库权限。其次,在这些 SQL 权限内,它应该在最小特权原则。例如,您的 Web 框不应能够在实例中实例化新数据库。理想情况下,您的 Web 框将无法删除表或从任何表中删除行,除非它绝对需要这样做。因此,如果正确配置的 2 层设置中发生入侵,攻击者使用 SQL 凭据的影响范围有限。

答案3

这实际上取决于您的 Web 和 DB 服务器(即软件)的安全模型,以及如果它们位于不同的服务器上,您对它们实施的防火墙/访问控制/IDP 的程度。

在其他条件相同的情况下,大概最好将两者分开。但实际上,至少在 LAMP 环境中,只要您使用 privsep Apache(如果您不确定,不用担心,您确实使用了)并且没有在 Web 应用程序中使用 root 登录 MySQL,并且您没有将 tcp/3306 暴露给外界,那么您实际上并没有获得很多通过将其中一个或另一个移至不同的硅片上,可以提高安全性。不过,您确实获得了性能和可调试性方面的好处。

您的问题似乎需要绝对的答案,但如果没有更多的信息(至少,我们谈论的操作系统和网络/数据库服务器类型),甚至很难给出一个有用的答案。

答案4

我不会——但这就是我。

这取决于你的设备前面有什么(即防火墙、负载均衡器等)以及它们的“紧密程度”,实际数据是什么(即一端是现在影响公开可用的数据,另一端是国家机密),组合它们是否会对性能产生影响,它们之间的网络强度(即层间防火墙)以及将应用的操作系统/应用程序强化的质量。

如果您不希望此系统处理过多负载,那么您可以考虑将系统虚拟化为两个独立的虚拟机;每个功能一个 - 甚至可能在它们之间有第三个纯软件防火墙虚拟机。这意味着即使有人破解了您的 Web 服务器,他们也必须破解数据库服务器,如果包含中间防火墙虚拟机。当然,这会降低整个系统的性能,但至少在某种程度上会更安全,并且如果您的负载增长到需要双服务器设计,这也会有所帮助,因为您只需将一个虚拟机移到第二台机器上即可。VMWare 的免费 ESXi 产品可以非常轻松地完成这一切,如果您愿意,已经有预先打包好的免费防火墙虚拟机可供实施。

相关内容