Como bloquear o tráfego de rede com o Azure Virtual Network Manager - Azure PowerShell

Este artigo mostra-lhe como criar uma regra de segurança para bloquear o tráfego de rede de saída para as portas 80 e 443, que possa adicionar às suas coleções de regras. Para obter mais informações, consulte Regras de administração de segurança.

Pré-requisitos

Antes de começar a configurar as regras de segurança, confirme as seguintes etapas:

  • Você entende cada elemento em uma regra de administração de segurança.
  • Você criou uma instância do Azure Virtual Network Manager.
  • É necessária a versão instalada de Az.Network de 5.3.0 ou superior para aceder aos cmdlets necessários.

Criar a configuração de administrador de segurança

Crie uma configuração de administrador de segurança usando New-AzNetworkManagerSecurityAdminConfiguration. A configuração inclui as coleções de regras e as regras que criar nas secções seguintes.

$config = @{
    Name = 'SecurityConfig'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
}
$securityconfig = New-AzNetworkManagerSecurityAdminConfiguration @config

Adicionar o grupo de rede a um grupo de configuração

Uma configuração de administrador de segurança aplica-se a um ou mais grupos de rede. Estes passos armazenam o grupo de rede numa variável e adicionam-no a um grupo de configuração.

  1. Armazene o grupo da rede numa variável usando Get-AzNetworkManagerGroup.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $networkgroup = Get-AzNetworkManagerGroup @ng   
    
  2. Crie um item de grupo de segurança para o grupo de rede usando New-AzNetworkManagerSecurityGroupItem.

    $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
    
  3. Crie um grupo de configuração e adicione o item de grupo da etapa anterior.

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.PSNetworkManagerSecurityGroupItem]]$configGroup = @()  
    $configGroup.Add($groupItem) 
    

Criar a coleção de regras

Crie uma coleção de regras de administrador de segurança usando New-AzNetworkManagerSecurityAdminRuleCollection. A coleção aplica-se ao grupo de configuração que criou na secção anterior.

$collection = @{
    Name = 'myRuleCollection'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
    ConfigName = 'SecurityConfig'
}
$rulecollection = New-AzNetworkManagerSecurityAdminRuleCollection @collection -AppliesToGroup $configGroup

Crie a regra de negação para as portas 80 e 443

Estes passos definem os prefixos de endereço e as portas da regra, e depois criam uma regra chamada Block_HTTP_HTTPS que nega o tráfego de saída para as portas 80 e 443.

  1. Defina os prefixos e portas dos endereços de origem e destino usando New-AzNetworkManagerAddressPrefixItem.

    $sourceip = @{
        AddressPrefix = 'Internet'
        AddressPrefixType = 'ServiceTag'
    }
    $sourceprefix = New-AzNetworkManagerAddressPrefixItem @sourceip
    
    $destinationip = @{
        AddressPrefix = '10.0.0.0/24'
        AddressPrefixType = 'IPPrefix'
    }
    $destinationprefix = New-AzNetworkManagerAddressPrefixItem @destinationip
    
    [System.Collections.Generic.List[string]]$sourcePortList = @() 
    $sourcePortList.Add("65500") 
    
    [System.Collections.Generic.List[string]]$destinationPortList = @() 
    $destinationPortList.Add("80")
    $destinationPortList.Add("443")
    
  2. Crie a regra de segurança usando New-AzNetworkManagerSecurityAdminRule.

    $rule = @{
        Name = 'Block_HTTP_HTTPS'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
        SecurityAdminConfigurationName = 'SecurityConfig'
        RuleCollectionName = 'myRuleCollection'
        Protocol = 'TCP'
        Access = 'Deny'
        Priority = '100'
        Direction = 'Outbound'
        SourceAddressPrefix = $sourceprefix
        SourcePortRange = $sourcePortList
        DestinationAddressPrefix = $destinationprefix
        DestinationPortRange = $destinationPortList
    }
    $securityrule = New-AzNetworkManagerSecurityAdminRule @rule
    

Efetivar implantação

Aplique a configuração de segurança para as regiões de destino utilizando Deploy-AzNetworkManagerCommit. Constrói a $configIds lista a partir da configuração de administrador de segurança que criaste anteriormente e depois passa-a para o commit.

[System.Collections.Generic.List[string]]$configIds = @()
$configIds.Add($securityconfig.Id)

$regions = @("westus")
$deployment = @{
    Name = 'myAVNM'
    ResourceGroupName = 'myAVNMResourceGroup'
    ConfigurationId = $configIds
    TargetLocation = $regions
    CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @deployment 

Excluir configuração de segurança

Se já não precisar da configuração de segurança, certifique-se de que os seguintes critérios são verdadeiros para poder eliminar a configuração de segurança em si:

  • Não há implantações de configurações em nenhuma região.
  • Exclua todas as regras de segurança em uma coleção de regras associada à configuração de segurança.

Remover a implantação da configuração de segurança

Remova a implementação de segurança implementando uma configuração com Deploy-AzNetworkManagerCommit.

[System.Collections.Generic.List[string]]$configIds = @()
[System.Collections.Generic.List[string]]$regions = @()   
$regions.Add("westus")     
$removedeployment = @{
    Name = 'myAVNM'
    ResourceGroupName = 'myAVNMResourceGroup'
    ConfigurationId = $configIds
    TargetLocation = $regions
    CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @removedeployment

Remover regras de segurança

Remova a regra de segurança que criou anteriormente usando Remove-AzNetworkManagerSecurityAdminRule.

$removerule = @{
    Name = 'Block_HTTP_HTTPS'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
    SecurityAdminConfigurationName = 'SecurityConfig'
    RuleCollectionName = 'myRuleCollection'
}
Remove-AzNetworkManagerSecurityAdminRule @removerule

Remover coleções de regras de segurança

$removecollection = @{
    Name = 'myRuleCollection'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
    SecurityAdminConfigurationName = 'SecurityConfig'
}
Remove-AzNetworkManagerSecurityAdminRuleCollection @removecollection

Excluir configuração

Apague a configuração de segurança com Remove-AzNetworkManagerSecurityAdminConfiguration.

$removeconfig = @{
    Name = 'SecurityConfig'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
}
Remove-AzNetworkManagerSecurityAdminConfiguration @removeconfig

Próximos passos

Saiba mais sobre as regras de administração de segurança.