Criar um grupo de segurança de rede (clássico) usando o PowerShell

Você pode usar um NSG para controlar o tráfego em uma ou mais instâncias de máquina virtual (VM), adaptadores de rede (NICs) ou sub-redes em sua rede virtual. Um NSG contém regras de controle de acesso que permitem ou negam o tráfego com base na direção do tráfego, no protocolo, no endereço e porta de origem e no endereço e porta de destino. As regras de um NSG podem ser alteradas a qualquer momento e as alterações se aplicam a todas as instâncias associadas.

Para saber mais sobre NSGs, visite O que é NSG.

Importante

Antes de trabalhar com os recursos do Azure, é importante entender que, no momento, o Azure apresenta dois modelos de implantação: Azure Resource Manager e clássico. Verifique se você entendeu os modelos e as ferramentas de implantação antes de trabalhar com qualquer recurso do Azure. Você pode exibir a documentação para ferramentas diferentes clicando nas guias na parte superior deste artigo.

Este artigo aborda o modelo de implantação clássico. Também é possível criar NSGs no modelo de implantação do Gerenciador de Recursos.

Cenário

Para ilustrar melhor como se cria NSGs, este documento usará o cenário a seguir:

Cenário de Rede Virtual

Nesse cenário, você criará um NSG para cada sub-rede na rede virtual TestVNet, conforme abaixo:

  • NSG-FrontEnd. O front-end de NSG será aplicado à sub-rede FrontEnd e contém duas regras:
    • rdp-rule. Permite tráfego RDP para a sub-rede FrontEnd.
    • web-rule. Permite tráfego HTTP para a sub-rede FrontEnd.
  • NSG-BackEnd. O back-end de NSG será aplicado à sub-rede BackEnd e contém duas regras:
    • sql-rule. Permite o tráfego SQL somente da sub-rede FrontEnd.
    • web-rule. Nega todo o tráfego limitado da Internet da sub-rede BackEnd.

A combinação dessas regras cria um cenário de DMZ, em que a sub-rede de back-end só pode receber tráfego de entrada para SQL da sub-rede front-end e não tem acesso à Internet, enquanto a sub-rede de front-end pode se comunicar à Internet e receber somente solicitações HTTP de entrada.

O exemplo de comando PowerShell abaixo espera um ambiente simples já criado com base no cenário acima. Se você quiser executar os comandos da forma como eles aparecem neste documento, primeiro crie o ambiente de teste criando uma VNet.

Criar um NSG para a sub-rede de front-end

  1. Se você nunca usou o Azure PowerShell, consulte Como instalar e configurar o Azure PowerShell.

  2. Crie um grupo de segurança de rede nomeado NSG-FrontEnd:

    New-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" -Location uswest `
      -Label "Front end subnet NSG"
    
  3. Crie uma regra de segurança permitindo acesso da Internet à porta 3389:

    Get-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" `
      | Set-AzureNetworkSecurityRule -Name rdp-rule `
      -Action Allow -Protocol TCP -Type Inbound -Priority 100 `
      -SourceAddressPrefix Internet  -SourcePortRange '*' `
      -DestinationAddressPrefix '*' -DestinationPortRange '3389'
    
  4. Crie uma regra de segurança permitindo acesso da Internet à porta 80:

    Get-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" `
      | Set-AzureNetworkSecurityRule -Name web-rule `
      -Action Allow -Protocol TCP -Type Inbound -Priority 200 `
      -SourceAddressPrefix Internet  -SourcePortRange '*' `
      -DestinationAddressPrefix '*' -DestinationPortRange '80'
    
  5. Associe o grupo de segurança de rede a uma sub-rede:

    Get-AzureNetworkSecurityGroup -Name "NSG-Frontend" `
    | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName "TestVNet" `
    -Subnet "FrontEnd"
    

Criar um NSG para a sub-rede de back-end

  1. Crie um grupo de segurança de rede nomeado NSG-BackEnd:

    New-AzureNetworkSecurityGroup -Name "NSG-BackEnd" -Location uswest `
      -Label "Back end subnet NSG"
    
  2. Crie uma regra de segurança, permitindo o acesso na sub-rede front-end à porta 1433 (porta padrão usada pelo SQL Server):

    Get-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" `
      | Set-AzureNetworkSecurityRule -Name rdp-rule `
      -Action Allow -Protocol TCP -Type Inbound -Priority 100 `
      -SourceAddressPrefix 192.168.1.0/24  -SourcePortRange '*' `
      -DestinationAddressPrefix '*' -DestinationPortRange '1433'
    
  3. Crie uma regra de segurança impedindo o acesso da sub-rede à Internet:

    Get-AzureNetworkSecurityGroup -Name "NSG-BackEnd" `
      | Set-AzureNetworkSecurityRule -Name block-internet `
      -Action Deny -Protocol '*' -Type Outbound -Priority 200 `
      -SourceAddressPrefix '*'  -SourcePortRange '*' `
      -DestinationAddressPrefix Internet -DestinationPortRange '*'
    
  4. Associe o grupo de segurança de rede a uma sub-rede:

    Get-AzureNetworkSecurityGroup -Name "NSG-Backend" `
    | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName "TestVNet" `
    -Subnet "BackEnd"