Este artículo muestra cómo configurar las reglas de restricción de IP en un firewall de aplicaciones web (WAF) para Azure Front Door con Azure Portal, la CLI de Azure, Azure PowerShell o una plantilla de Azure Resource Manager.
Una regla de control de acceso basado en la dirección IP es una regla de WAF personalizada que permite controlar el acceso a las aplicaciones web. La regla especifica una lista de direcciones IP o rangos de direcciones IP en formato de Enrutamiento entre dominios sin clase (CIDR).
De forma predeterminada, a la aplicación web se puede acceder desde Internet. Si desea limitar el acceso a los clientes de una lista de direcciones IP conocidas o intervalos de direcciones IP, puede crear una regla de coincidencia de IP que contenga la lista de direcciones IP como valores coincidentes y establece el operador en Not
(la negación es verdadera) y la acción en Block
. Después de que se aplique una regla de restricción de IP, las solicitudes que provengan de direcciones que no se encuentren en esta lita de permitidos reciben una respuesta 403 Prohibido.
Siga estos pasos para configurar una directiva de WAF mediante Azure Portal.
Requisitos previos
Para crear un perfil de Azure Front Door, siga las instrucciones que se describen en Inicio rápido: Creación de una instancia de Front Door de Azure para una aplicación web global de alta disponibilidad.
Creación de una directiva WAF
En Azure Portal, seleccione Crear un recurso. Escriba firewall de aplicaciones web en el cuadro de búsqueda de Servicios de búsqueda y Marketplace y seleccione Entrar. Luego seleccione Web Application Firewall (WAF).
Seleccione Crear.
En la página Crear una directiva WAF, use los valores siguientes para completar la pestaña Aspectos básicos.
Configuración |
Value |
Directiva de |
WAF global (Front Door) |
Nivel de Front Door |
Seleccione Premium o Estándar para que coincida con el nivel de Front Door de Azure. |
Suscripción |
Selecciona tu suscripción. |
Resource group |
Seleccione el grupo de recursos en que se encuentra la instancia de Front Door de Azure. |
Nombre de la directiva |
Escriba un nombre para la directiva. |
Estado de directiva |
Seleccionada |
Modo de directiva |
Prevención |
Seleccione Siguiente: Reglas administradas.
Seleccione Siguiente: Configuración de directivas
En la pestaña Configuración de directiva, escriba ¡Le han bloqueado! en el elemento de respuesta, para que pueda ver que la regla personalizada está activada.
Seleccione Siguiente: Reglas personalizadas.
Seleccione Agregar regla personalizada.
En la página Agregar regla personalizada, use los siguientes valores de prueba para crear una regla personalizada.
Configuración |
Value |
Nombre de la regla personalizada |
FdWafCustRule |
Estado |
habilitado |
Tipo de regla |
Coincidir con |
Priority |
100 |
Tipo de coincidencia |
Dirección IP |
Variable de coincidencia |
SocketAddr |
Operación |
No contiene |
Dirección o intervalo de direcciones IP |
10.10.10.0/24 |
Entonces |
Deny traffic |
Seleccione Agregar.
Seleccione Siguiente: Asociación.
Seleccione Asociar un perfil de Front Door.
En Perfil de Frontend, seleccione el perfil de Frontend.
En Dominio, seleccione el dominio.
Seleccione Agregar.
Seleccione Revisar + crear.
Una vez pasada la validación de la directiva, seleccione Crear.
Prueba de la directiva WAF
Una vez finalizada la implementación de la directiva WAF, busque el nombre del host de front-end de Front Door de Azure.
Debería ver el mensaje de bloque personalizado.
Nota
Se usó una dirección IP privada deliberadamente en la regla personalizada para garantizar que la regla se desencadene. En una implementación real, cree las reglas allow y deny mediante direcciones IP para su situación concreta.
Siga estos pasos para configurar una directiva de WAF mediante la CLI de Azure.
Requisitos previos
Antes de empezar a configurar una directiva de restricción de IP, configure el entorno de CLI y cree un perfil de Azure Front Door.
Configuración del entorno de la CLI de Azure
- Instale la CLI de Azure o use Azure Cloud Shell. Azure Cloud Shell es un shell de Bash gratuito que puede ejecutarse directamente en Azure Portal. Tiene la CLI de Azure preinstalada y configurada para utilizarla con la cuenta. Seleccione el botón Probar en los comandos siguientes de la CLI. Luego inicie sesión en su cuenta de Azure en la sesión Cloud Shell que se abra. Una vez iniciada la sesión, escriba
az extension add --name front-door
para agregar la extensión de Azure Front Door.
- Si usa la CLI localmente en Bash, inicie sesión en Azure mediante
az login
.
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 una instancia de Front Door de Azure para una aplicación web global de alta disponibilidad.
Creación de una directiva WAF
Cree una directiva WAF mediante el comando az network front-door waf-policy create.
En el ejemplo que se indica a continuación, reemplace el nombre de la directiva IPAllowPolicyExampleCLI por un nombre de directiva único.
az network front-door waf-policy create \
--resource-group <resource-group-name> \
--subscription <subscription ID> \
--name IPAllowPolicyExampleCLI
Adición de una regla de control de acceso por IP personalizada
Use el comando az network front-door waf-policy custom-rule create para agregar una regla de control de acceso por IP personalizada para la directiva WAF que ha creado.
En los siguientes ejemplos:
- Reemplace IPAllowPolicyExampleCLI por la directiva única que creó anteriormente.
- Reemplace ip-address-range-1, ip-address-range-2 por su propio rango.
En primer lugar, cree una regla de permiso de IP para la directiva creada en el paso anterior.
Nota:
--defer
es necesario porque una regla debe tener una condición de coincidencia que se va a agregar en el paso siguiente.
az network front-door waf-policy rule create \
--name IPAllowListRule \
--priority 1 \
--rule-type MatchRule \
--action Block \
--resource-group <resource-group-name> \
--policy-name IPAllowPolicyExampleCLI --defer
A continuación, agregue una condición de coincidencia a la regla:
az network front-door waf-policy rule match-condition add \
--match-variable SocketAddr \
--operator IPMatch \
--values "ip-address-range-1" "ip-address-range-2" \
--negate true \
--name IPAllowListRule \
--resource-group <resource-group-name> \
--policy-name IPAllowPolicyExampleCLI
Búsqueda del identificador de una directiva de WAF
Para buscar el identificador de una directiva WAF, utilice el comando az network front-door waf-policy show. Reemplace IPAllowPolicyExampleCLI en el ejemplo siguiente por la directiva que ha creado anteriormente.
az network front-door waf-policy show \
--resource-group <resource-group-name> \
--name IPAllowPolicyExampleCLI
Vinculación de una directiva de WAF a un host de front-end de Azure Front Door
Establezca el identificador WebApplicationFirewallPolicyLink de Azure Front Door en el identificador de la directiva mediante el uso del comando az network front-door update. Reemplace IPAllowPolicyExampleCLI por la directiva única que creó anteriormente.
az network front-door update \
--set FrontendEndpoints[0].WebApplicationFirewallPolicyLink.id=/subscriptions/<subscription ID>/resourcegroups/resource-group-name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/IPAllowPolicyExampleCLI \
--name <frontdoor-name> \
--resource-group <resource-group-name>
En este ejemplo, la directiva waf se aplica a FrontendEndpoints[0]
. Puede vincular la directiva de WAF a cualquiera de los front-ends.
Nota:
Debe establecer la propiedad WebApplicationFirewallPolicyLink
solo una vez para vincular una directiva WAF a un front-end de Azure Front Door. Las posteriores actualizaciones de la directiva se aplican al front-end.
Siga estos pasos para configurar una directiva de WAF mediante Azure PowerShell.
Requisitos previos
Antes de empezar a configurar una directiva de restricción de IP, configure el entorno de PowerShell y cree un perfil de Azure Front Door.
Configuración del entorno de PowerShell
Azure PowerShell proporciona un conjunto de cmdlets que usan el modelo de 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 en PowerShell mediante sus credenciales de Azure y, a continuación, instale el módulo Az de PowerShell.
Utilice el siguiente comando para conectarse a Azure y, después, use un cuadro de diálogo interactivo para iniciar sesión.
Connect-AzAccount
Antes de instalar un módulo de Azure Front Door asegúrese de que tiene instalada la versión actual del módulo PowerShellGet. Ejecute el siguiente comando y vuelva a abrir PowerShell.
Install-Module PowerShellGet -Force -AllowClobber
Instale el módulo Az.FrontDoor con el siguiente comando:
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 una instancia de Front Door para una aplicación web global de alta disponibilidad.
Definición de una condición de coincidencia IP
Use el comando New AzFrontDoorWafMatchConditionObject para definir una condición de coincidencia de IP.
En el siguiente ejemplo, reemplace ip-address-range-1, ip-address-range-2 por su propio rango.
$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1
Creación de una regla de permiso de IP personalizada
Use el comando New-AzFrontDoorWafCustomRuleObject para definir una acción y establecer una prioridad. En el ejemplo siguiente, se bloquearán las solicitudes que no procedan de IP de clientes que coincidan con la lista.
$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1
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 WAF con la regla IP, para lo que debe usar New-AzFrontDoorWafPolicy.
$IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
-Name "IPRestrictionExamplePS" `
-resourceGroupName <resource-group-name> `
-Customrule $IPAllowRule`
-Mode Prevention `
-EnabledState Enabled
Vinculación de una directiva de WAF a un host de front-end de Azure Front Door
Vincule un objeto de directiva de WAF a un host de front-end 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
en el identificador de recurso de $IPAllowPolicyExamplePS
, creado en el paso anterior, mediante el comando Set-AzFrontDoor.
$FrontDoorObjectExample = Get-AzFrontDoor `
-ResourceGroupName <resource-group-name> `
-Name $frontDoorName
$FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]
Nota:
En este ejemplo, la directiva WAF se aplica a FrontendEndpoints[0]
. Una directiva de WAF se puede vincular a cualquiera de los front-ends. Debe establecer la propiedad WebApplicationFirewallPolicyLink
solo una vez para vincular una directiva WAF a un front-end de Azure Front Door. Las posteriores actualizaciones de la directiva se aplican al front-end.
Para ver la plantilla de Resource Manager que crea una directiva de Azure Front Door y una directiva WAF con reglas de restricción de IP personalizadas, vaya a GitHub.