如何将 Azure 负载均衡器前端的 Azure VM 上的源 IP 列入白名单

问题描述 投票:0回答:2

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

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

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


编辑:提供更多详细信息

Screenshot of NSGs

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

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

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

以下是我迄今为止所做的观察:

  • 除非我将 NSG 规则端口 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:仅向白名单中的客户端 IP 开放虚拟机对端口 8443 和端口 8543 的访问,并且
  • 目标 2:允许列入白名单的客户端 IP 能够使用负载均衡器的公共 IP 连接到该虚拟机上的这些端口

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

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

azure networking whitelist azure-load-balancer azure-nsg
2个回答
1
投票

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

如果您想限制客户端访问您的客户端,只需添加一条新的入站端口规则,以您的客户端的公网IP地址为

Source
,并在您的具体入站中指定
Destination port ranges
Protocol
规则。您可以通过在客户端计算机上打开该 URL 来检查客户端的公共 IPv4 here


0
投票

对于其他在这里绊倒的人:

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

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

另外,请注意查看您的客户端计算机计划连接的所有公共 IP。特别是在测试时,请使用公共 IP,而不是 VPN 网关地址范围 - 这就是我们所使用的,最终导致我们的白名单测试出现误报。

© www.soinside.com 2019 - 2024. All rights reserved.