Bloqueo del tráfico de red con Azure Virtual Network Manager: Azure PowerShell

Este artículo te muestra cómo crear una regla de seguridad para bloquear el tráfico de red saliente hacia los puertos 80 y 443 que puedas añadir a tus colecciones de reglas. Para más información, consulte Reglas de administración de seguridad.

Requisitos previos

Antes de empezar a configurar reglas de seguridad, confirme los pasos siguientes:

Crear la configuración de administrador de seguridad

Crea una configuración de administrador de seguridad utilizando New-AzNetworkManagerSecurityAdminConfiguration. La configuración contiene las colecciones de reglas y las reglas que crees en las siguientes secciones.

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

Añadir el grupo de red a un grupo de configuración

Una configuración de administrador de seguridad se aplica a uno o más grupos de red. Estos pasos almacenan el grupo de red en una variable y lo añaden a un grupo de configuración.

  1. Almacenar el grupo de red en una variable usando Get-AzNetworkManagerGroup.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $networkgroup = Get-AzNetworkManagerGroup @ng   
    
  2. Crea un elemento de grupo de seguridad para el grupo de red usando New-AzNetworkManagerSecurityGroupItem.

    $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
    
  3. Cree un grupo de configuración y agregue el elemento de grupo del paso anterior.

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

Crear la colección de reglas

Crea una colección de reglas de administrador de seguridad usando New-AzNetworkManagerSecurityAdminRuleCollection. La colección se aplica al grupo de configuración que creaste en la sección anterior.

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

Crea la regla de denegación para los puertos 80 y 443

Estos pasos definen los prefijos de dirección y los puertos de la regla, y luego crean una regla llamada Block_HTTP_HTTPS que niega el tráfico saliente a los puertos 80 y 443.

  1. Defina los prefijos y puertos de dirección de origen y 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. Crea la regla de seguridad 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
    

Confirmación de la implementación

Confirma la configuración de seguridad en las regiones de destino mediante Deploy-AzNetworkManagerCommit. Construye la $configIds lista a partir de la configuración de administrador de seguridad que creaste antes y luego pásala 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 

Eliminación de la configuración de seguridad

Si ya no necesitas la configuración de seguridad, asegúrate de que los siguientes criterios sean válidos para poder eliminar la configuración de seguridad en sí:

  • No hay implementaciones de configuraciones en ninguna región.
  • Elimine todas las reglas de seguridad de una colección de reglas asociada a la configuración de seguridad.

Eliminación de la implementación de configuración de seguridad

Elimina el despliegue de seguridad desplegando una configuración 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

Eliminación de reglas de seguridad

Elimina la regla de seguridad que creaste antes usando Remove-AzNetworkManagerSecurityAdminRule.

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

Eliminación de colecciones de reglas de seguridad

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

Eliminar configuración

Elimina la configuración de seguridad con Remove-AzNetworkManagerSecurityAdminConfiguration.

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

Pasos siguientes

Obtenga más información sobre las reglas de administración de seguridad.