Så här blockerar du nätverkstrafik med Azure Virtual Network Manager – Azure PowerShell

Den här artikeln visar hur du skapar en säkerhetsregel för att blockera utgående nätverkstrafik till portarna 80 och 443 som du kan lägga till i dina regelsamlingar. Mer information finns i Säkerhetsadministratörsregler.

Förutsättningar

Bekräfta följande steg innan du börjar konfigurera säkerhetsregler:

Skapa säkerhetsadministratörskonfigurationen

Skapa en säkerhetsadministratörskonfiguration genom att använda New-AzNetworkManagerSecurityAdminConfiguration. Konfigurationen innehåller regelsamlingarna och reglerna du skapar i följande avsnitt.

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

Lägg till nätverksgruppen i en konfigurationsgrupp

En säkerhetsadministratörskonfiguration gäller för en eller flera nätverksgrupper. Dessa steg lagrar nätverksgruppen i en variabel och lägger till den i en konfigurationsgrupp.

  1. Lagra nätverksgruppen i en variabel genom att använda Get-AzNetworkManagerGroup.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $networkgroup = Get-AzNetworkManagerGroup @ng   
    
  2. Skapa ett objekt i säkerhetsgruppen för nätverksgruppen med hjälp av New-AzNetworkManagerSecurityGroupItem.

    $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
    
  3. Skapa en konfigurationsgrupp och lägg till gruppobjektet från föregående steg.

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

Skapa regelsamlingen

Skapa en säkerhetsadministratörsregelsamling genom att använda New-AzNetworkManagerSecurityAdminRuleCollection. Samlingen gäller för konfigurationsgruppen du skapade i föregående avsnitt.

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

Skapa nekarregeln för portar 80 och 443

Dessa steg definierar adressprefix och portar för regeln, och skapar sedan en regel med namn Block_HTTP_HTTPS som nekar utgående trafik till portarna 80 och 443.

  1. Definiera käll- och destinationsadressprefix och portar genom att använda 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. Skapa säkerhetsregeln genom att använda 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
    

Genomför distribution

Genomför säkerhetskonfigurationen i målregionerna med Deploy-AzNetworkManagerCommit. Bygg $configIds listan från säkerhetsadministratörskonfigurationen du skapade tidigare och skicka den sedan till commiten.

[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 

Ta bort säkerhetskonfiguration

Om du inte längre behöver säkerhetskonfigurationen, se till att följande kriterier är uppfyllda så att du kan ta bort själva säkerhetskonfigurationen:

  • Det finns inga distributioner av konfigurationer till någon region.
  • Ta bort alla säkerhetsregler i en regelsamling som är associerad med säkerhetskonfigurationen.

Ta bort distribution av säkerhetskonfiguration

Ta bort säkerhetsdistributionen genom att distribuera en konfiguration med 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

Ta bort säkerhetsregler

Ta bort säkerhetsregeln du skapade tidigare genom att använda Remove-AzNetworkManagerSecurityAdminRule.

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

Ta bort säkerhetsregelsamlingar

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

Ta bort konfiguration

Ta bort säkerhetskonfigurationen med Remove-AzNetworkManagerSecurityAdminConfiguration.

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

Nästa steg

Läs mer om säkerhetsadministratörsregler.