Configuración de una directiva del firewall de aplicaciones web con Azure PowerShell
Una directiva del firewall de aplicaciones web (WAF) de Azure define las inspecciones necesarias cuando llega una solicitud a Front Door. En este artículo se muestra cómo configurar una directiva del WAF que se compone de algunas reglas personalizadas y con 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 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 e instalar el módulo Az de PowerShell.
Inicio de sesión en Azure
Connect-AzAccount
Antes de instalar el módulo de Front Door asegúrese de que tiene instalada la última versión de PowerShellGet. Ejecute el comando siguiente 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 Front Door
Para crear un perfil de Front Door siga las instrucciones que se describen en Inicio rápido: Creación de un perfil de Front Door
Regla personalizada basada en parámetros HTTP
El ejemplo siguiente muestra cómo configurar una regla personalizada con dos condiciones de coincidencia con 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 solicitud HTTP
Puede crear una regla de bloqueo del método "PUT" con New-AzFrontDoorWafCustomRuleObject como sigue:
$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 con Azure PowerShell:
$url = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty GreaterThanOrEqual -MatchValue 100
$URLOver100 = New-AzFrontDoorWafCustomRuleObject -Name "URLOver100" -RuleType MatchRule -MatchCondition $url -Action Block -Priority 3
Adición del conjunto de reglas predeterminado administrado
El ejemplo siguiente crea un conjunto de reglas predeterminado administrado con 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 Front Door que usan Get-AzResourceGroup. A continuación, configure una directiva de seguridad con las reglas creadas en los pasos anteriores mediante New-AzFrontDoorWafPolicy en el grupo de recursos especificado que contiene el perfil de 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 Front Door
Vincule el objeto de directiva de seguridad a un host de front-end de Front Door existente y actualice las propiedades de Front Door. En primer lugar, recupere el objeto de Front Door mediante 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 de grupo de recursos myResourceGroupFD1 con la suposición de que ha creado el perfil de Front Door mediante las instrucciones proporcionadas en el artículo Inicio rápido: Creación de una instancia de Front Door. Además, en el ejemplo siguiente, reemplace $frontDoorName por el nombre de su perfil de Front Door.
$FrontDoorObjectExample = Get-AzFrontDoor `
-ResourceGroupName myResourceGroupFD1 `
-Name $frontDoorName
$FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $myWAFPolicy.Id
Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]
Nota
Solo necesita establecer la propiedad WebApplicationFirewallPolicyLink una vez para vincular una directiva de seguridad a un front-end de Front Door. Las posteriores actualizaciones de la directiva se aplican al front-end automáticamente.
Pasos siguientes
- Más información sobre Front Door
- Más información sobre WAF con Front Door