是否有一种安全的方法允许 DMZ 中的 IIS 7 访问防火墙后面的 DB 服务器?

是否有一种安全的方法允许 DMZ 中的 IIS 7 访问防火墙后面的 DB 服务器?

我们的网络管理员坚持认为,托管在 DMZ 中的 Web 服务器访问防火墙后面的 DB 服务器是不安全的。为了解决这个问题,我们通过 Web 服务或 WCF 访问数据。我觉得这是一个不必要的性能负担,如果 Web 服务器可以直接访问 DB,就可以消除这种负担。

我给出的原因是,如果黑客能够登录到 Web 服务器,他们就可以访问数据库。是否可以只为 IIS 打开端口,还是不能那么具体?如果我们可以将其锁定为 IIS,那么黑客是否很容易利用这一点?

我读过互联网上的各种帖子,但似乎找不到明确的答案。

答案1

我为大型企业设置了平台,通常的做法是确保您的数据库与 Web 服务器位于不同的 VLAN 上,并在两者之间设置防火墙,仅将流量路由到数据库服务器端口,并在 Web 服务器前面设置防火墙。通常,您的前端防火墙会将端口 80 (HTTP) 和端口 443 (HTTPS) 转发到您的 Web 服务器。位于 Web 服务器和数据库服务器之间的防火墙会将来自 Web 服务器的流量转发到您的数据库使用的端口(如果使用 Microsoft SQL Server,通常为端口 1433)。

为了提高安全性:

  • 确保使用最低权限帐户访问数据库服务器
  • 如果您使用的是 ASP.NET,则可以在 web.config 中加密数据库连接字符串
  • 聘请第三方公司进行渗透测试,以发现任何漏洞
  • 确保定期安装更新和服务包。

如果您的数据库是 MI6 或 CIA 数据库,那么您的网络管理员可能是对的,但在我看来,他们似乎反应过度。

如果数据库确实包含绝对不能暴露给公共网络的数据,但数据库所需的数据并不是那么敏感,您是否可以考虑将您的网站所需的表复制到托管环境中的数据库中?

我会问他们一个问题:

  • 如果黑客获得了对网络服务器的访问权,他们可以调用您的网络服务吗?
  • 如果在 IIS 中发现漏洞,使他们能够访问您的 Web 服务器,那么他们肯定会利用托管您的 Web 服务的 Web 服务器上的相同漏洞吗?
  • 他们是否可以安装监视用户输入的软件来嗅探内存中的密码?

答案2

您的 Web 服务器也可以位于防火墙后面,只需将端口 80 转发到正确的服务器即可。您的 Web 服务器不需要的所有其他端口都应在最外部的防火墙上关闭。然后,您的 Web 服务器和数据服务器之间应该有一个防火墙。在该防火墙中,您只允许打开数据库所用的端口。

以下是一张图表

互联网 --> 防火墙 --> Web 服务器 --> 防火墙 --> 数据库

仅供参考,我是一名开发人员,尽管由于我们是一家小公司,所以我经常与公司的 IT 员工一起工作。

相关内容