Azure 网络安全组不起作用? (附加到子网)

Posted

技术标签:

【中文标题】Azure 网络安全组不起作用? (附加到子网)【英文标题】:Azure Network Security Groups not working? (attached to subnet) 【发布时间】:2015-03-08 02:46:18 【问题描述】:

我正在尝试保护虚拟网络中的一些子网。

我有带有子网 A、B、C 的虚拟网络 1。

我在每个子网中都有一个带有默认端点(RDP 和 WinRM)的 VM。

我使用以下命令创建网络安全组并将其附加到子网 C:

$SGName = 'SecurityGroupC'
$location = 'West US'
$virtualNetwork = '1'
$subnet = 'C'

New-AzureNetworkSecurityGroup -Name $SGName -Location $Location -Label $SGName

Get-AzureNetworkSecurityGroup -Name $SGName | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName $VirtualNetwork -SubnetName $Subnet

我可以通过运行看到默认规则:

Get-AzureNetworkSecurityGroup -Name $SGName -Detailed

其中显示了预期的默认规则:

Name  : SecurityGroupC
Rules : 

       Type: Inbound

    Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                            Prefix          Range         Address Prefix   Port Range             
    ----                 --------  ------   --------------- ------------- ---------------- -------------- --------
    ALLOW VNET INBOUND   65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
    ALLOW AZURE LOAD     65001     Allow    AZURE_LOADBALAN *             *                *              *       
    BALANCER INBOUND                        CER                                                                   
    DENY ALL INBOUND     65500     Deny     *               *             *                *              *       


       Type: Outbound

    Name                 Priority  Action   Source Address  Source Port   Destination      Destination    Protocol
                                            Prefix          Range         Address Prefix   Port Range             
    ----                 --------  ------   --------------- ------------- ---------------- -------------- --------
    ALLOW VNET OUTBOUND  65000     Allow    VIRTUAL_NETWORK *             VIRTUAL_NETWORK  *              *       
    ALLOW INTERNET       65001     Allow    *               *             INTERNET         *              *       
    OUTBOUND                                                                                                      
    DENY ALL OUTBOUND    65500     Deny     *               *             *                *              *       

根据这些规则,我在子网 C 中的 VM 上的 RDP 端点应该停止工作。但是,我仍然可以从 Internet 直接 RDP 到我的虚拟机。有什么我遗漏的吗?

【问题讨论】:

您是否删除了虚拟机中默认创建的端点? 嗨 Kitt...我面临同样的问题...我原以为 RDP 流量会被阻止,但事实并非如此。你能找出原因吗? 【参考方案1】:

当您创建虚拟机时,它会自动创建一个 RDP 端点。此设置似乎覆盖了您的网络安全组值。

我通常会向它添加一个 ACL “0.0.0.0/0” “DENY”,以便在需要时重新启用它。

【讨论】:

【参考方案2】:

根据网络安全组的功能: “网络安全组与基于端点的 ACL 不同。端点 ACL 仅在通过输入端点公开的公共端口上工作。NSG 在一个或多个 VM 实例上工作,并控制 VM 上的所有入站和出站流量。” 第一条入站规则 = "ALLOW VNET INBOUND 65000 Allow VIRTUAL_NETWORK * VIRTUAL_NETWORK * "

这允许虚拟机内部的所有流量。由于 VM 上没有端点 ACL 并且启用了 RDP 端点,因此流量可以到达 VM。

更新:你是对的。它不应允许 RDP 访问。根据常见问题解答下的此链接:http://azure.microsoft.com/blog/2014/11/04/network-security-groups/

4.我已经为我的 VM 定义了 RDP 端点并且我正在使用网络安全组我是否需要访问控制规则才能从 Internet 连接到 RDP 端口? 是的,网络安全组中的默认规则不允许从 Internet 访问任何端口,用户必须创建特定规则以允许 RDP 流量。

【讨论】:

【参考方案3】:

我刚刚发现了同样的事情。我还发现删除和重新创建端点然后允许 NSG 按预期运行,即似乎如果 NSG 是在端点之后创建/链接的,它不起作用但如果 NSG 是先完成,就完成了!

【讨论】:

【参考方案4】:

您必须应用更改,这就是您没有得到预期行为的原因:

Set-AzureRmVirtualNetwork -VirtualNetwork $virtualNetwork 

希望这会有所帮助!

【讨论】:

以上是关于Azure 网络安全组不起作用? (附加到子网)的主要内容,如果未能解决你的问题,请参考以下文章

javascript 在构建器中将元素移动到中心列之外(对于组不起作用)

使用 git deploy 进行 Azure 网站远程调试不起作用

组内的 Laravel 组不起作用,它没有看到命名空间参数

为啥贪心硬币找零算法对某些硬币组不起作用?

Azure网络安全组NSG

FormData 附加不起作用