Поделиться через


Блокировка сетевого трафика с помощью Диспетчера виртуальная сеть Azure в Azure PowerShell

В этой статье показано, как создать правило безопасности для блокировки исходящего сетевого трафика через порт 80 и 443, которые можно добавить в коллекции правил. Дополнительные сведения см. в разделе "Правила администратора безопасности".

Необходимые компоненты

Прежде чем приступить к настройке правил безопасности, убедитесь в следующих шагах:

  • Вы понимаете каждый элемент в правиле администратора безопасности.
  • Вы создали экземпляр Azure виртуальная сеть Manager.
  • Для доступа к необходимым командлетам требуется установленная версия или более поздней версии Az.Network 5.3.0 .

Создание конфигурации SecurityAdmin

  1. Создайте новую конфигурацию SecurityAdmin с помощью New-AzNetworkManagerSecurityAdminConfiguration.

    $config = @{
        Name = 'SecurityConfig'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $securityconfig = New-AzNetworkManagerSecurityAdminConfiguration @config
    
    
  2. Сохраните сетевую группу в переменной с помощью Get-AzNetworkManagerGroup.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $networkgroup = Get-AzNetworkManagerGroup @ng   
    
  3. Создайте элемент группы подключения, чтобы добавить сетевую группу в New-AzNetworkManagerSecurityGroupItem.

    $gi = @{
        NetworkGroupId = "$networkgroup.Id"
    }
    
    $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
    
  4. Создайте группу конфигурации и добавьте элемент группы из предыдущего шага.

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.PSNetworkManagerSecurityGroupItem]]$configGroup = @()  
    $configGroup.Add($groupItem) 
    
    $configGroup = @($groupItem)
    
  5. Создайте коллекцию правил администратора безопасности с помощью New-AzNetworkManagerSecurityAdminRuleCollection.

    $collection = @{
        Name = 'myRuleCollection'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManager = 'myAVNM'
        ConfigName = 'SecurityConfig'
        AppliesToGroup = "$configGroup"
    }
    $rulecollection = New-AzNetworkManagerSecurityAdminRuleCollection @collection -AppliesToGroup $configGroup
    
  6. Определите переменные для префиксов исходного и целевого адресов с помощью 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”)
    
  7. Создайте правило безопасности с помощью 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
    

Фиксация развертывания

Зафиксируйте конфигурацию безопасности в целевых регионах с помощью Deploy-AzNetworkManagerCommit.

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

Удаление конфигурации безопасности

Если вам больше не нужна конфигурация безопасности, убедитесь, что следующие критерии верны, чтобы можно было удалить саму конфигурацию безопасности:

  • Ни в одном регионе не развернута ни одна конфигурация.
  • Удалите все правила безопасности в коллекции правил, связанной с конфигурацией безопасности.

Удаление развертывания конфигурации безопасности

Удалите развертывание безопасности, развернув конфигурацию с помощью 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

Удаление правил безопасности

Удалите правила безопасности с помощью Remove-AzNetworkManagerSecurityAdminRule.

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

Удаление коллекций правил безопасности

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

Удаление конфигурации

Удалите конфигурацию безопасности с помощью Remove-AzNetworkManagerSecurityAdminConfiguration.

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

Следующие шаги

Дополнительные сведения о правилах администратора безопасности.