【发布时间】:2026-01-22 08:10:01
【问题描述】:
我想使用 IaaS VMs 在 Azure 上创建一个超偏执的中心辐射式 DMZ 设置。
我有一个面向公共 Internet 的前端服务器(即 IIS 网络服务器),我想严格锁定它。但是,前端需要访问一些后端服务器(即数据库、域控制器等)。我想确保:
- 只有前端服务器可以与后端服务器通信,并且只能在商定的端口上进行通信。
- 后端服务器无法从/向公共互联网接收或发送流量。
- 后端服务器无法相互通信。
- 这些规则在 VM 操作系统层之外强制执行,以提供深度防御。
这似乎是一个合理的方案,但我似乎无法在 Azure 上实现它。我能做的最接近的是:
- 创建 IaaS VM 前端并适当限制其端点
- 创建一个带有“FrontEnd”和“BackEnd”子网的Azure Virtual Network,将每台机器放在适当的子网上。
- 阻止 RDP 访问后端虚拟机。如果我想 RDP 到后端机器,我必须通过前端 VM 来完成。
- 在每台计算机上设置 Windows 防火墙规则,以实施这些中心辐射型规则。
这没问题,但它不像我想要的那样被锁定。我真的很想进行深度防御,这样我就不必依赖每台机器上的 Windows/Linux 防火墙设置。例如,假设后端服务器必须使用管理员凭据运行应用程序(假设没有替代方案)。我想要一个额外的保护层,这样后端服务器上的错误(或恶意查询)就不能:
- 重新配置后端的防火墙以减少限制。
- 与前端机器(包括公共互联网)以外的任何人交谈。
据我所知,这在使用虚拟网络的 Azure 上是不可能的,因为:
- Azure 虚拟网络似乎没有公开 ACL 或任何其他高级筛选支持。
- Azure IaaS VM 仅支持单个 NIC,因此前端不能同时在前端和后端子网上进行多宿主。
我错过了什么吗?似乎我可以使用多个虚拟网络一起破解某些东西,并将它们作为一堆 /30 子网一起使用 VPN,但这看起来很糟糕。如果我无法在 Azure 上解决这个问题,似乎我唯一合理的选择是尝试使用Virtual Private Cloud (VPC) 在AWS 上设置类似的东西。任何帮助/指导将不胜感激。
【问题讨论】:
-
致投票结束的人:也许这个问题最适合服务器故障,但 Windows Azure 团队要求我们在 Stack Overflow 上发布带有“azure”标签的问题(并因此赞助该标签这里),所以我觉得这是不求助于 MSDN 论坛的最佳折衷方案。
-
Azure 团队的建议不会覆盖关于 SO 的主题和主题。这是一个格式正确的问题,但是除非您可以将其整理成我们可以在此处回答的内容...嗯,也许您想以编程方式对其进行配置? *咳嗽*
-
@Charles 是的,我想以编程方式完成所有这些配置。我希望能够定期从后端添加/删除机器。
-
如果大家一致认为,考虑到我的所有限制,这将最好在 Server Fault 上运行,我可以迁移它(但似乎 Windows Azure 团队看起来并不多)。我只是不想求助于 MSDN 论坛,因为 SE 引擎要好得多。
-
如果手动执行,Azure 的几乎所有配置都是无用的。这种配置根本无法扩展。这不仅是基础设施问题,也是开发人员问题。学习基础设施部分可能是过程中的一个步骤,但最终结果应该是我们开发人员必须创建和维护的代码。因此,我认为这确实适合 SO。
标签: security networking azure dmz