如何在 Azure 的 Vnet 中阻止公共端口并允许端口?

Posted

技术标签:

【中文标题】如何在 Azure 的 Vnet 中阻止公共端口并允许端口?【英文标题】:How to block ports from public and allow ports within Vnet in Azure? 【发布时间】:2020-02-24 15:47:31 【问题描述】:

我已经在 Azure 中设置了站点对点 ***。 我想为使用 *** 客户端登录的用户允许端口 3389、22、5432、8080,同时在此 VM 的公共 IP 上只允许端口 8080。这些配置可以在 NSG 上完成 我怎样才能做到这一点?

在 VM/Networking 选项卡中,我可以看到 NSG 连接到子网,另一个 NSG 连接到 NIC。

【问题讨论】:

【参考方案1】:

首先,尽可能不要将 NSG 分配给 NIC - 这并不是说它会导致 不好 做法,它只会增加管理难度。尽管在一些非常严格的安全场景中,这可能是必要的。

您的点对点 *** 将由 *** 网关提供服务,客户端将从客户端地址池中获得一个 IP 地址。

在您的场景中,您需要创建一个入站规则以允许从 *** 客户端连接到应用到的任何和所有 NSG 中的目标 VM 的内部 IP 地址:

网关子网 VM 网卡的子网 VM 的 NIC

如果您没有将 NSG 应用于网关子网,则可以保持原样。

您需要从 *** 网关获取客户端地址池,并使用 CIDR 标记的网络地址填充源 CIDR 范围。示例如下:



确保您已为规则分配适当的优先级,以便在任何可能优先的拒绝操作规则之前对其进行处理。

您可能希望从该规则中排除 8080,而是创建一个单独的允许任何源地址访问它的规则。此规则需要存在于子网和 NIC NSG 上。

【讨论】:

所以基本上我们只是配置面向公共互联网的网卡的 NSG 来响应这个 IP 范围? 客户端 *** 流量通过您的网关子网 -> 虚拟机子网 -> 虚拟机网卡。因此,您应该在适用于这三个位置中的任何一个的任何 NSG 中制定此规则。您可以在 Azure 网络观察器中使用 IP 流验证来测试流,该流将突出显示任何阻塞或允许的 NSG。 NIC 上的 NSG 是什么阻止了公共 IP 流量对吧?我们可以在所有这些级别设置 Nsg,但归结为保留在 NIC 中的 ip 过滤以阻止公共流量,对吗?如果是这种情况,那么使用 *** 有什么好处吗?很抱歉问了这么多问题,因为如果情况属实,花费和设置 *** 配置没有任何意义。【参考方案2】:

您只需要一条允许来自 Internet 的 8080 的规则,NSG 默认规则已经允许在包含 *** 网关路由的虚拟网络标签上进行通信

【讨论】:

哈哈。 Tat 刚从我头顶飞过。谢啦。我刚刚删除了 NIC NSG 上的所有入站限制。允许的 Vnet 访问。默认情况下,由于 NIC 中的拒绝规则,所有公共端口请求都被拒绝。为了让任何端口公开,我只需要添加例外以在 NIC NSG 上公开。感谢您的帮助。你打了。我很感激你:P

以上是关于如何在 Azure 的 Vnet 中阻止公共端口并允许端口?的主要内容,如果未能解决你的问题,请参考以下文章

具有公共 IP 的应用程序网关后面的 Azure 容器组

是否可以在 VNET 上使用公共 IP 访问服务配置 Azure API 管理

从本地连接 Azure 公共服务

Azure SQL 槽 VNet 的 Azure 函数连接字符串

如何在端口 445 被阻止的环境中挂载 Azure 文件共享

删除多个 vnet 对等体 azure CLI