3

我不确定我是否遗漏了一些简单的东西,或者我是否正在尝试做不可能的事情。

我使用 Web+Mobile App Services 模型在 Azure 上部署了一个 Tomcat 站点。这不是虚拟机。我希望能够将防火墙规则(网络安全组)应用于此应用服务。

这是我在资源组中所做的:

  1. 采用我现有的应用服务 (Tomcat) 并将其升级到 S1 机器大小。
  2. 使用默认设置创建了一个 VNET。这包括创建一个名为“default”的子网。所有地址空间建议都保留在 Azure 默认提示中。
  3. 使用应用服务上的网络设置刀片选择我刚刚创建的 VNET。
  4. 创建了一个网络安全组 - 添加了一个传入规则以拒绝来自任何来源的 HTTP 端口 80。
  5. 上面创建的关联 NSG 与默认子网
  6. 等待一切传播
  7. 测试在 HTTP 端口 80 上访问应用服务,并返回结果。

这不是我希望看到的。为了调试这个我测试了:

  1. 创建 Tomcat 虚拟机
  2. 在 VM 网络刀片上,将 VM 与“默认”子网关联,并专门从 VM 中删除网络安全组(将其留在子网上 - 只需确保它没有明确附加到 VM)
  3. 测试对 VM 的 HTTP 访问 - 流量被拒绝
  4. 已测试对应用服务的 HTTP 访问 - 仍然允许流量
  5. 更改了网络安全组规则以允许
  6. 已测试对 VM 的 HTTP 访问和允许的流量

如何让应用服务以虚拟机的方式使用网络安全组?我是否错过了如何在应用服务上配置子网的地方?是否有另一种方法可以将 NSG 与应用服务相关联?

我没有预算/不需要构建 ASE。我需要做的就是在我的应用服务前面放置一个防火墙,以阻止我不想看到使用的端口。

谢谢。

4

1 回答 1

3

你正在尝试做不可能的事情。请记住,应用服务中的 Web 应用程序必须通过 VPN 连接到 VNET,在您可以控制的多租户应用服务中,互联网和80/TCP443/TCP之间没有任何东西。

Client ---> 80/TCP Frontend layer ---> 80/TCP Web App ---> Point-to-site VPN ---> VNET ---> NSG_associated_with_subnet

所以,不去了。

看看是否<ipSecurity>适用于您的用例(我的其他答案提供了一个快速示例 - https://stackoverflow.com/a/38808091/4148708)。否则,您需要应用服务环境 (ASE) 或内部负载均衡器应用服务环境 (ILB ASE)。

它们都直接位于 VNET 的子网中,因此您可以使用 NSG 控制流量。

于 2016-09-22T21:36:19.600 回答