Configuración de una directiva de WAF mediante Azure PowerShell

Una directiva del firewall de aplicaciones web (WAF) define las inspecciones necesarias cuando llega una solicitud a Azure Front Door.

En este artículo se muestra cómo configurar una directiva del WAF que se compone de algunas reglas personalizadas y tiene el conjunto de reglas predeterminado administrado por Azure habilitado.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Prerrequisitos

Antes de empezar a configurar una directiva de limitación de velocidad, configure el entorno de PowerShell y cree un perfil de Azure Front Door.

Configuración del entorno de PowerShell

Azure PowerShell ofrece un conjunto de cmdlets que usan el modelo Azure Resource Manager para administrar los recursos de Azure.

Puede instalar Azure PowerShell en el equipo local y usarlo en cualquier sesión de PowerShell. Siga las instrucciones de la página para iniciar sesión con sus credenciales de Azure. Luego instale el módulo Az de PowerShell.

Inicio de sesión en Azure

Connect-AzAccount

Antes de instalar el módulo de Azure Front Door asegúrese de que tiene instalada la última versión de PowerShellGet. Ejecute el siguiente comando y vuelva a abrir PowerShell.

Install-Module PowerShellGet -Force -AllowClobber

Instalación del módulo Az.FrontDoor

Install-Module -Name Az.FrontDoor

Creación de un perfil de Azure Front Door

Para crear un perfil de Azure Front Door siga las instrucciones que se describen en Inicio rápido: Creación de un perfil de Azure Front Door.

Regla personalizada basada en parámetros HTTP

El ejemplo siguiente muestra cómo configurar una regla personalizada con dos condiciones de coincidencia usando New-AzFrontDoorWafMatchConditionObject. Las solicitudes provienen de un sitio especificado, según se define en el origen de referencia y la cadena de consulta no contiene password.

$referer = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestHeader -OperatorProperty Equal -Selector "Referer" -MatchValue "www.mytrustedsites.com/referpage.html"
$password = New-AzFrontDoorWafMatchConditionObject -MatchVariable QueryString -OperatorProperty Contains -MatchValue "password"
$AllowFromTrustedSites = New-AzFrontDoorWafCustomRuleObject -Name "AllowFromTrustedSites" -RuleType MatchRule -MatchCondition $referer,$password -Action Allow -Priority 1

Regla personalizada basada en el método de una solicitud HTTP

Puede crear una regla de bloqueo del método PUT usando New-AzFrontDoorWafCustomRuleObject.

$put = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestMethod -OperatorProperty Equal -MatchValue PUT
$BlockPUT = New-AzFrontDoorWafCustomRuleObject -Name "BlockPUT" -RuleType MatchRule -MatchCondition $put -Action Block -Priority 2

Creación de una regla personalizada basada en una restricción de tamaño

El ejemplo siguiente crea una regla que bloquea las solicitudes con una dirección URL de más de 100 caracteres usando Azure PowerShell.

$url = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty GreaterThanOrEqual -MatchValue 100
$URLOver100 = New-AzFrontDoorWafCustomRuleObject -Name "URLOver100" -RuleType MatchRule -MatchCondition $url -Action Block -Priority 3

Agregar un conjunto de reglas predeterminado administrado

El ejemplo siguiente crea un conjunto de reglas predeterminado administrado usando Azure PowerShell.

$managedRules =  New-AzFrontDoorWafManagedRuleObject -Type DefaultRuleSet -Version 1.0

Configuración de una directiva de seguridad

Busque el nombre del grupo de recursos que contiene el perfil de Azure Front Door. Para ello, debe usar Get-AzResourceGroup. A continuación, configure una directiva de seguridad con las reglas creadas en los pasos anteriores usando New-AzFrontDoorWafPolicy en el grupo de recursos especificado que contiene el perfil de Azure Front Door.

$myWAFPolicy=New-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $resourceGroupName -Customrule $AllowFromTrustedSites,$BlockPUT,$URLOver100 -ManagedRule $managedRules -EnabledState Enabled -Mode Prevention

Vincule el objeto de directiva de seguridad a un host de front-end de Azure Front Door existente y actualice las propiedades de Azure Front Door. En primer lugar, recupere el objeto de Azure Front Door. Para hacerlo, use Get-AzFrontDoor. A continuación, establezca la propiedad WebApplicationFirewallPolicyLink de front-end en el valor de resourceId del elemento $myWAFPolicy$ creado en el paso anterior con Set-AzFrontDoor.

En el ejemplo siguiente se usa el nombre del grupo de recursos myResourceGroupFD1 con la suposición de que ha creado el perfil de Azure Front Door siguiendo las instrucciones proporcionadas en el Inicio rápido: Creación de una instancia de Azure Front Door. Además, en el ejemplo siguiente, reemplace $frontDoorName por el nombre de su perfil de Azure Front Door.

   $FrontDoorObjectExample = Get-AzFrontDoor `
     -ResourceGroupName myResourceGroupFD1 `
     -Name $frontDoorName
   $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $myWAFPolicy.Id
   Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

Nota

Solo es necesario establecer la propiedad WebApplicationFirewallPolicyLink una vez para vincular una directiva de seguridad a un front-end de Azure Front Door. Las posteriores actualizaciones de la directiva se aplican al front-end.

Pasos siguientes