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.
Requisitos previos
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
Configura 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
Vinculación de una directiva a un host de front-end de Azure Front Door
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.
Nota:
Para Azure Front Door Estándar y Premium, debe usar Get-AzFrontDoorCdnProfile.
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
- Obtenga más información acerca de Azure Front Door.
- Más información sobre Azure Web Application Firewall en Azure Front Door.