Come bloccare il traffico di rete con Azure Rete virtuale Manager - Azure PowerShell

Questo articolo ti mostra come creare una regola di sicurezza per bloccare il traffico di rete in uscita verso le porte 80 e 443, che puoi aggiungere alle tue raccolte di regole. Per altre informazioni, vedere Regole di amministrazione della sicurezza.

Prerequisiti

Prima di iniziare a configurare le regole di sicurezza, verificare i passaggi seguenti:

  • È possibile comprendere ogni elemento in una regola di amministrazione della sicurezza.
  • Hai creato un'istanza di Gestione reti virtuali di Azure.
  • Per accedere ai cmdlet necessari, è richiesta la versione installata di Az.Network di 5.3.0 o successiva.

Crea la configurazione amministratrice della sicurezza

Crea una configurazione amministratrice della sicurezza utilizzando New-AzNetworkManagerSecurityAdminConfiguration. La configurazione contiene le raccolte di regole e le regole che crei nelle sezioni seguenti.

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

Aggiungi il gruppo di rete a un gruppo di configurazione

Una configurazione amministratore della sicurezza si applica a uno o più gruppi di rete. Questi passaggi memorizzano il gruppo di rete in una variabile e lo aggiungono a un gruppo di configurazione.

  1. Memorizza il gruppo di rete in una variabile usando Get-AzNetworkManagerGroup.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $networkgroup = Get-AzNetworkManagerGroup @ng   
    
  2. Crea un elemento di gruppo di sicurezza per il gruppo di rete usando New-AzNetworkManagerSecurityGroupItem.

    $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
    
  3. Creare un gruppo di configurazione e aggiungere l'elemento del gruppo del passaggio precedente.

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

Crea la collezione di regole

Crea una collezione di regole amministrative di sicurezza utilizzando New-AzNetworkManagerSecurityAdminRuleCollection. La collezione si applica al gruppo di configurazione che hai creato nella sezione precedente.

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

Crea la regola di negazione per le porte 80 e 443

Questi passaggi definiscono i prefissi degli indirizzi e le porte della regola, e poi creano una regola chiamata Block_HTTP_HTTPS che nega il traffico in uscita alle porte 80 e 443.

  1. Definisci i prefissi e le porte degli indirizzi di sorgente e destinazione 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. Crea la regola di sicurezza 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
    

Conferma distribuzione

Effettua il commit della configurazione di sicurezza nelle regioni target usando Deploy-AzNetworkManagerCommit. Costruisci la $configIds lista dalla configurazione amministratrice della sicurezza che hai creato in precedenza, e poi passala al 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 

Eliminare la configurazione di sicurezza

Se non hai più bisogno della configurazione di sicurezza, assicurati che i seguenti criteri siano validi così da poter eliminare la configurazione di sicurezza stessa:

  • Non esistono distribuzioni di configurazioni in nessuna area.
  • Eliminare tutte le regole di sicurezza in una raccolta di regole associata alla configurazione di sicurezza.

Rimuovi la distribuzione della configurazione di sicurezza

Rimuovere la distribuzione di sicurezza implementando una configurazione con 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

Rimuovere le regole di sicurezza

Rimuovi la regola di sicurezza che hai creato prima usando Remove-AzNetworkManagerSecurityAdminRule.

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

Rimuovere le raccolte di regole di sicurezza

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

Eliminare la configurazione

Elimina la configurazione di sicurezza con Remove-AzNetworkManagerSecurityAdminConfiguration.

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

Passaggi successivi

Altre informazioni sulle regole di amministrazione della sicurezza.