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


8

在与Web服务器相同的机器上运行数据库服务器似乎很容易,但是这样做是否要冒很大的安全风险?

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


这取决于。您能否提供有关您正在考虑的特定方案的更多详细信息?
K. Brian Kelley'7

Answers:


7

不必要。

假设您的Web服务器受到攻击,无论它们在什么服务器上运行,攻击者仍将获得访问相同数据库的凭据。毕竟,仍将数据库服务器配置为允许来自Web服务器的合法请求。

(假定明智的安全措施(例如mysqld)不接受来自本地主机的无密码的root登录。)

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


3
我同意,更大的问题将是您在同一台计算机上同时运行时的性能下降。
ChrisF 2010年

5

我不同意张贴者所说的这不是安全问题,这是为什么:

  • 您的前置服务应尽可能减少攻击面。这是使用反向代理和防火墙,并使不必要的服务和程序远离不需要它们运行的​​服务器的主要原因。这就是为什么Web服务器是安全强化过程最常见的目标。
  • 您的Web服务器不应拥有数据库系统的上帝权利。因此,损害Web服务器也不会损害数据库服务器。对于初学者,Web服务器用于访问数据库的帐户不应具有对SQL框的本地管理权限,其权限应仅限于数据库权限。其次,在这些SQL权限内,它应在最小特权原则下运行。例如,您的Web框应该无法实例化实例中的新数据库。理想情况下,您的Web框将无法删除表或从绝对不需要的任何表中删除行。因此,如果在正确配置的2层设置中进行了妥协,攻击者使用SQL凭据的影响范围将受到限制。

1
我认为没有人说两盒式解决方案更安全。但是,问题是,用这个问题引述该风险是否为“大”。答案显然取决于具体情况,例如,我不会在单台机器上运行面向Internet的银行网站。但是,一台受到适当锁定的Web服务器一旦受到破坏,对其数据库服务器的访问权限将不会比受到破坏之前多或少。它的原理与解决方案是在两台计算机还是一台计算机上无关。如果那不是真的,那么该重新架构系统了。
BMDan

我没有遵循你的逻辑。如果您破坏了Web服务器并获得了该计算机的权限,那么您将拥有该计算机上的所有内容。如果这包括整个数据库及其所有数据,那么一切都会受到损害。但是,如果您有2个单独的服务器,则在任何程度上完全破坏Web服务器,只会使您对Web服务器本身可访问的数据进行数据级访问。
克里斯·索普

3

这实际上取决于Web和DB服务器(即软件)的安全模型,以及如果它们位于单独的服务器上,则对这两者强制执行的防火墙/访问控制/ IDP的程度。

所有其他条件相同,它可能是最好是两个分开的情况。但是实际上,至少在LAMP环境中,只要您使用privsep Apache(如果不确定,不用担心,就可以),并且在您的Web应用程序中不使用root登录到MySQL,而且您没有将tcp / 3306暴露给外界,因此,通过将一个或另一个转移到另一块硅片上,并不能真正获得太大的安全性。但是,您确实获得了性能和调试能力方面的好处。

您的问题似乎是需要绝对答案的样式,但是如果没有更多信息(至少,我们正在谈论的是哪种操作系统和Web / DB服务器风格),甚至都很难提供有用的信息。


1
+1基本的安全性和最佳做法足以容纳大多数数据。
克里斯·S

我们将运行:Windows Server 2008和Postgresql 8.4(或9.0发行时),Apache 2
CLJ 2010年

0

我看不到将数据库和Web服务器放在同一硬件上的额外安全风险。如果Web服务器被破坏,则仍然可以访问数据。安全不是隔离层的典型原因。

无论哪种情况,您都希望确保数据库服务器正在侦听非标准端口,仅响应来自Web服务器的请求,并且防火墙仅允许对Web服务器的http / s请求,而不允许其他端口或地址。

尽管如此,将它们分开是一个好习惯。每台服务器更易于管理和配置,并且您可以更轻松地处理故障,问题,重建,性能问题等。因此,您可能考虑在同一硬件上安装两个虚拟服务器,然后在性能或容量要求时将它们分开。


0

我不会-就是我。

这取决于盒子前面的内容(即防火墙,负载均衡器等)以及它们的“紧密程度”,实际数据是什么(即,一端当前影响的公开数据,另一端是国家机密) ,将它们组合在一起是否会对性能产生影响,它们之间的网络强度(即层间防火墙)以及将要应用的OS /应用程序强化的质量。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.