0

我有一个面向公众的标准 sku,Azure 负载平衡器,它使用负载平衡规则将某个端口的传入请求转发到虚拟机。此虚拟机在子网级别定义了一个 NSG,允许该端口的传入流量,源设置为“Internet”。

目前,此设置有效,但我需要实施白名单 - 仅允许特定 IP 地址集能够通过负载平衡器连接到此虚拟机。但是,如果我在 NSG 规则中删除“Internet”源类型,则无法再通过负载均衡器访问 VM。

有没有其他人遇到过类似的用例,在可通过负载均衡器访问的虚拟机上设置 IP 白名单的最佳方法是什么。谢谢!


编辑:提供更多细节

NSG 截图

这些是在子网中定义的顶级 NSG。

我们有一个公共负载平衡器,位于应用上述 NSG 的虚拟机前面。此虚拟机没有特定的公共 IP,并且依赖于负载均衡器的公共 IP。

公共负载均衡器将端口 8443 和端口 8543 上的所有流量转发到此虚拟机,没有会话持久性,并且出站和入站使用相同的 IP。

以下是我到目前为止所做的观察:

  • 除非我将 NSG 规则 Port_8443(在上表中)的源指定为“Internet”,否则无法通过负载平衡器的公共 IP 在此端口上访问此虚拟机。
  • 当我保留仅将特定 IP 地址列入白名单的 NSG 规则 Port_8543 时,无法通过负载平衡器的公共 IP 在此端口上访问此虚拟机,即使其中一个列入白名单的客户端尝试连接到此端口也是如此。
  • 我尝试将 NSG 规则 Custom_AllowAzureLoadBalancerInBound 添​​加到比 port_8543 更高的优先级,但它仍然没有打开此访问权限。
  • 我还尝试将 Azure 负载均衡器 VIP (168.63.129.16) 添加到 Port_8543 NSG,但这也没有打开负载均衡器公共 IP 上对端口 8543 的访问。

我也玩过负载平衡规则选项,但似乎没有什么能实现我想要的——即:

  • 目标 1:仅开放虚拟机在端口 8443 和端口 8543 上的访问权限给白名单的客户端 IP,并且
  • 目标 2:允许列入白名单的客户端 IP 能够使用负载均衡器的公共 IP 连接到此虚拟机上的这些端口

我只能实现上述目标之一,但不能同时实现这两个目标。

我还尝试使用分配给虚拟机的专用公共 IP 进行相同的白名单;这也失去了与端口的连接,我没有分配“互联网”源标签。

4

2 回答 2

0

Azure 在每个网络安全组中都有默认规则。它允许来自 Azure 负载均衡器资源的入站流量。

在此处输入图像描述

如果您想限制客户端访问您的客户端,您只需要添加一个新的入站端口规则,其中您的客户端的公共 IP 地址为 the ,并在您的特定入站规则中Source指定and。您可以通过在客户端计算机上打开该 URL检查客户端的公共 IPv4 。Destination port rangesProtocol

于 2020-10-13T06:27:34.473 回答
0

只是想为其他在这里绊倒的人添加一个注释:

如果您希望为少数特定客户端 IP 将 Azure VM(公开或私有)列入白名单,则必须执行以下步骤:

  • 为虚拟机(或子网)创建 NSG - 如果尚不可用
  • 添加 NSG 规则以允许来自特定端口上特定客户端 IP 的入站流量
  • 添加 NSG 规则以拒绝来自所有其他来源的入站流量 [这确实是可选的,但有助于确保设置的安全性]

另外,请注意查看您的客户端计算机计划连接的所有公共 IP。尤其是在测试时,使用公共 IP 而不是 VPN 网关地址范围——这是我们使用的,最终得到了白名单测试的误报。

于 2020-11-10T23:31:44.277 回答