Jak blokować ruch sieciowy za pomocą usługi Azure Virtual Network Manager — Azure PowerShell

Ten artykuł pokazuje, jak stworzyć regułę bezpieczeństwa blokującą ruch sieciowy wychodzący do portów 80 i 443, którą możesz dodać do swoich kolekcji reguł. Aby uzyskać więcej informacji, zobacz Reguły administratora zabezpieczeń.

Wymagania wstępne

Przed rozpoczęciem konfigurowania reguł zabezpieczeń potwierdź następujące kroki:

Utwórz konfigurację administratora bezpieczeństwa

Utworzenie konfiguracji administratora bezpieczeństwa za pomocą New-AzNetworkManagerSecurityAdminConfiguration. Konfiguracja zawiera kolekcje reguł i reguły, które tworzysz w kolejnych sekcjach.

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

Dodaj grupę sieciową do grupy konfiguracyjnej

Konfiguracja administratora bezpieczeństwa dotyczy jednej lub kilku grup sieciowych. Te kroki przechowują grupę sieciową w zmiennej i dodają ją do grupy konfiguracyjnej.

  1. Zapisz grupę sieciową w zmiennej, używając Get-AzNetworkManagerGroup.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $networkgroup = Get-AzNetworkManagerGroup @ng   
    
  2. Utwórz element zabezpieczeń dla grupy sieciowej za pomocą New-AzNetworkManagerSecurityGroupItem.

    $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
    
  3. Utwórz grupę konfiguracji i dodaj element grupy z poprzedniego kroku.

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

Stwórz kolekcję reguł

Stwórz kolekcję reguł administratora bezpieczeństwa, używając New-AzNetworkManagerSecurityAdminRuleCollection. Kolekcja ma zastosowanie do grupy konfiguracji utworzonej w poprzedniej sekcji.

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

Stwórz regułę odmowy dla portów 80 i 443

Te kroki definiują prefiksy adresowe i porty reguły, a następnie tworzą regułę o nazwie, Block_HTTP_HTTPS która odmawia ruchu wychodzącego do portów 80 i 443.

  1. Zdefiniuj prefiksy i porty adresów źródłowych i docelowych, używając 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. Utworzenie reguły bezpieczeństwa za pomocą 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
    

Zatwierdź wdrożenie

Zatwierdź konfigurację zabezpieczeń w regionach docelowych za pomocą Deploy-AzNetworkManagerCommit. Utwórz listę $configIds na podstawie konfiguracji administratora zabezpieczeń, którą utworzyłeś wcześniej, a następnie dołącz ją do zatwierdzenia.

[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 

Usuwanie konfiguracji zabezpieczeń

Jeśli konfiguracja bezpieczeństwa nie jest już potrzebna, upewnij się, że spełniają się następujące kryteria, aby móc usunąć samą konfigurację zabezpieczeń:

  • Nie ma wdrożeń konfiguracji w żadnym regionie.
  • Usuń wszystkie reguły zabezpieczeń w kolekcji reguł skojarzonej z konfiguracją zabezpieczeń.

Usuń wdrożenie konfiguracji zabezpieczeń

Usuń wdrożenie zabezpieczeń, wdrażając konfigurację z 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

Usuwanie reguł zabezpieczeń

Usuń wcześniej utworzoną regułę bezpieczeństwa, używając Remove-AzNetworkManagerSecurityAdminRule.

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

Usuwanie kolekcji reguł zabezpieczeń

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

Usuń konfigurację

Usuń konfigurację zabezpieczeń za pomocą Remove-AzNetworkManagerSecurityAdminConfiguration.

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

Następne kroki

Dowiedz się więcej o regułach administratora zabezpieczeń.