我想使用IaaS VM在 Azure 上创建一个超偏执的中心辐射型DMZ设置。
我有一个面向公共 Internet 的前端服务器(即 IIS Web 服务器),我想严格锁定它。但是,前端需要访问一些后端服务器(即数据库、域控制器等)。我想确保:
- 只有前端服务器可以与后端服务器通信,并且只能在商定的端口上进行通信。
- 后端服务器无法从/向公共互联网接收或发送流量。
- 后端服务器无法相互通信。
- 这些规则在 VM 操作系统层之外实施,以提供深度防御。
这似乎是一个合理的场景,但我似乎无法在 Azure 上实现它。我能做的最接近的是:
- 创建 IaaS VM 前端并适当限制其端点
- 创建具有“前端”和“后端”子网的Azure 虚拟网络,将每台计算机放置在适当的子网上。
- 阻止 RDP 访问后端虚拟机。如果我想 RDP 到后端机器,我必须通过前端 VM 来完成。
- 在每台机器上设置 Windows 防火墙规则,以强制执行这些中心辐射式规则。
这工作正常,但它不像我想要的那样锁定。我真的很想进行深度防御,这样我就不必依赖每台机器上的 Windows/Linux 防火墙设置。例如,假设后端服务器必须使用管理员凭据运行应用程序(假设没有替代方案)。我想要一个额外的保护层,这样后端服务器上的错误(或恶意查询)就不能:
- 重新配置后端的防火墙以减少限制。
- 与前端机器以外的任何人交谈(包括公共互联网)。
据我所知,这在使用虚拟网络的 Azure 上是不可能的,因为:
- Azure 虚拟网络似乎没有公开 ACL 或任何其他高级筛选支持。
- Azure IaaS VM 仅支持单个 NIC,因此前端不能同时在前端和后端子网上进行多宿主。
我错过了什么吗?似乎我可以使用多个虚拟网络一起破解某些东西,并将它们作为一堆 /30 子网一起使用 VPN,但这看起来很糟糕。如果我无法在 Azure 上解决这个问题,似乎我唯一合理的选择是尝试使用Virtual Private Cloud (VPC)在AWS上设置类似的东西。任何帮助/指导将不胜感激。