Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una directiva del firewall de aplicaciones web (WAF) define las inspecciones necesarias cuando llega una solicitud a Azure Front Door.
Este artículo muestra cómo configurar una política WAF para Azure Front Door Standard o Premium que consista en algunas reglas personalizadas y que tenga activado el conjunto de reglas predeterminado gestionado por Azure. Las reglas personalizadas se aplican tanto al nivel Standard como al Premium. Los conjuntos de reglas gestionadas, como el Default Rule Set, requieren el nivel Premium.
Las reglas personalizadas y el conjunto de reglas por defecto son opcionales; incluye una o ambas para adaptarte a tus necesidades. Estableces el modo de política WAF (Detección o Prevención) cuando creas la política en un paso posterior.
Requisitos previos
Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
Un perfil Estándar o Premium de Azure Front Door. Si necesitas crear uno, consulta Quickstart: Crea un perfil Azure Front Door Standard/Premium usando PowerShell. Los ejemplos de este artículo utilizan un perfil Premium porque los conjuntos de reglas gestionadas requieren el nivel Premium.
Azure Cloud Shell o Azure PowerShell.
Los pasos de este artículo ejecutan los cmdlets de Azure PowerShell de forma interactiva en Azure Cloud Shell. Para ejecutar los cmdlets en Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. Seleccione Copiar para copiar el código y péguelo, a continuación, en Cloud Shell para ejecutarlo. También puede ejecutar el Cloud Shell desde el portal de Azure.
También puede instalar Azure PowerShell localmente para ejecutar los cmdlets. Si ejecuta PowerShell localmente, inicie sesión en Azure con el cmdlet Connect-AzAccount.
Los módulos de PowerShell
Az.CdnyAz.FrontDoor. Utiliza elAz.Cdnmódulo para trabajar con los recursos Standard y Premium de Azure Front Door, y elAz.FrontDoormódulo para trabajar con los recursos de WAF. Instala ambos módulos ejecutando los siguientes comandos:Install-Module -Name Az.Cdn Install-Module -Name Az.FrontDoor
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 siguiente ejemplo crea una regla que bloquea solicitudes con una URL superior a 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
Los conjuntos de reglas gestionadas están disponibles en Azure Front Door Premium. El siguiente ejemplo crea un objeto gestionado de conjunto de reglas predeterminado utilizando Azure PowerShell.
$managedRules = New-AzFrontDoorWafManagedRuleObject -Type Microsoft_DefaultRuleSet -Version 2.2
Nota:
Los conjuntos de reglas gestionadas requieren Azure Front Door Premium. Azure Front Door Standard solo soporta reglas personalizadas. Este ejemplo utiliza Microsoft_DefaultRuleSet la versión 2.2. Para todas las versiones disponibles, consulte grupos de reglas y reglas de DRS de Web Application Firewall.
Creación de una directiva WAF
Crea una política WAF que incluya las reglas personalizadas y el conjunto de reglas por defecto gestionado de los pasos anteriores usando New-AzFrontDoorWafPolicy. Configura -Sku en Premium_AzureFrontDoor para incluir reglas gestionadas, o en Standard_AzureFrontDoor para incluir solo reglas personalizadas.
$myWAFPolicy = New-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $resourceGroupName -Sku Premium_AzureFrontDoor -CustomRule $AllowFromTrustedSites,$BlockPUT,$URLOver100 -ManagedRule $managedRules -EnabledState Enabled -Mode Prevention
Asocia la política WAF con tu endpoint
Para Azure Front Door Standard y Premium, asocias una política WAF con tu endpoint creando una política de seguridad en el perfil de Azure Front Door. Una política de seguridad asocia tu política de WAF con los dominios que quieres que el WAF proteja.
Recupera tu endpoint usando Get-AzFrontDoorCdnEndpoint y reemplaza los nombres del grupo de recursos, el perfil y los endpoints por los tuyos propios. Luego usa New-AzFrontDoorCdnSecurityPolicy para asociar el nombre de host predeterminado del endpoint con tu política WAF.
$frontDoorEndpoint = Get-AzFrontDoorCdnEndpoint -ResourceGroupName $resourceGroupName -ProfileName $frontDoorProfileName -EndpointName $frontDoorEndpointName
$securityPolicyAssociation = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallAssociationObject `
-PatternsToMatch @("/*") `
-Domain @(@{"Id"=$($frontDoorEndpoint.Id)})
$securityPolicyParameters = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallParametersObject `
-Association $securityPolicyAssociation `
-WafPolicyId $myWAFPolicy.Id
New-AzFrontDoorCdnSecurityPolicy `
-Name 'MySecurityPolicy' `
-ProfileName $frontDoorProfileName `
-ResourceGroupName $resourceGroupName `
-Parameter $securityPolicyParameters
Nota:
Una política de seguridad se aplica a los dominios asociados a ella. Para proteger más dominios, añádelos a la asociación o crea políticas de seguridad adicionales.