Este artigo mostra como configurar regras de restrição de IP em um firewall do aplicativo Web (WAF) para o Azure Front Door usando o portal do Azure, a CLI do Azure, o Azure PowerShell ou um modelo do Azure Resource Manager.
Uma regra de controle de acesso baseada em endereço IP é uma regra do WAF personalizada que permite controlar o acesso aos aplicativos Web. A regra especifica uma lista de endereços IP ou intervalos de endereços IP no formato Roteamento entre Domínios sem Classificação (CIDR).
Há dois tipos de variáveis de correspondência em uma correspondência de endereço IP: RemoteAddr
e SocketAddr
. A variável RemoteAddr
é o IP do cliente original que geralmente é enviado por meio do cabeçalho da solicitação X-Forwarded-For
. A variável SocketAddr
é o endereço IP de origem que o WAF vê. Quando o usuário está protegido por um proxy, o SocketAddr
geralmente é o endereço do servidor proxy.
Por padrão, o aplicativo Web pode ser acessado pela Internet. Se você quiser limitar o acesso a clientes de uma lista de endereços IP ou de intervalos de endereços IP conhecidos, crie uma regra de correspondência de IP que contenha a lista de endereços IP como valores correspondentes e defina o operador como Not
(negação é true) e a ação como Block
. Depois que uma regra de restrição de IP é aplicada, as solicitações originadas de endereços fora dessa lista de permissão recebem uma resposta 403 Proibido.
Siga estas etapas para configurar uma política de WAF usando o portal do Azure.
Pré-requisitos
Crie um perfil do Azure Front Door seguindo as instruções descritas em Guia de início rápido: criar uma instância do Azure Front Door para um aplicativo Web global altamente disponível.
Criar uma política de WAF
No portal do Azure, selecione Criar um recurso. Insira Firewall do aplicativo Web na caixa de pesquisa Serviços de pesquisa e marketplace e selecione Enter. Em seguida, selecione Firewall de Aplicativo Web (WAF).
Selecione Criar.
Na página Criar uma política do WAF, use os seguintes valores para completar a guia Básico.
Configuração |
Valor |
Política para |
WAF global (Front Door). |
Camada do Front Door |
Selecione Premium ou Standard para corresponder à camada do Azure Front Door. |
Subscription |
Selecione sua assinatura. |
Resource group |
Selecione o grupo de recursos em que sua instância do Azure Front Door está localizada. |
Nome da política |
Insira um nome para sua política. |
Estado da política |
Selecionado |
Modo de política |
Prevenção |
Selecione Próximo: Regras gerenciadas.
Selecione Próximo: configurações de política.
Na guia Configurações de política, insira Você foi bloqueado! no Corpo da resposta de bloqueio para ver se a regra personalizada está em vigor.
Selecione Próximo: Regras personalizadas.
Selecione Adicionar regra personalizada.
Na página Adicionar regra personalizada, use os seguintes valores de teste para criar uma regra personalizada.
Configuração |
Valor |
Nome da regra personalizada |
FdWafCustRule |
Status |
habilitado |
Tipo de regra |
Corresponder a |
Prioridade |
100 |
Tipo de correspondência |
Endereço IP |
Variável de correspondência |
SocketAddr |
Operação |
Não contém |
Endereço IP ou intervalo de IP |
10.10.10.0/24 |
Então |
Negar tráfego |
Selecione Adicionar.
Selecione Próximo: Associação.
Selecione Associar um perfil do Front Door.
Em Perfil de front-end, selecione o seu perfil de front-end.
Em Domínio, selecione o domínio.
Selecione Adicionar.
Selecione Examinar + criar.
Após a aprovação da validação da política, selecione Criar.
Testar a política do WAF
Depois que a implantação da política do WAF for concluída, navegue até o nome do host de front-end do Azure Front Door.
Você verá a mensagem de bloqueio personalizada.
Observação
Um endereço IP privado foi usado intencionalmente na regra personalizada para garantir que a regra seja disparada. Em uma implantação real, crie regras de permissão e negação usando endereços IP para sua situação específica.
Siga estas etapas para configurar uma política de WAF usando a CLI do Azure.
Pré-requisitos
Antes de começar a configurar uma política de restrição de IP, configure o ambiente da CLI e crie um perfil do Azure Front Door.
Configurar o ambiente da CLI do Azure
- Instale a CLI do Azure ou use o Azure Cloud Shell. O Azure Cloud Shell é um shell Bash gratuito que pode ser executado diretamente no portal do Azure. Ele tem a CLI do Azure instalada e configurada para usar com sua conta. Selecione o botão Experimentar nos comandos da CLI a seguir. Em seguida, entre na sua conta do Azure na sessão do Cloud Shell que é aberta. Depois que a sessão for iniciada, insira
az extension add --name front-door
para adicionar a extensão do Azure Front Door.
- Se você está usando a CLI localmente no Bash, entre no Azure com
az login
.
Criar um perfil do Azure Front Door
Crie um perfil do Azure Front Door seguindo as instruções descritas em Guia de início rápido: criar uma instância do Azure Front Door para um aplicativo Web global altamente disponível.
Criar uma política de WAF
Crie uma política do WAF usando o comando az network front-door waf-policy create.
No exemplo a seguir, substitua o nome da política IPAllowPolicyExampleCLI por um nome de política exclusivo.
az network front-door waf-policy create \
--resource-group <resource-group-name> \
--subscription <subscription ID> \
--name IPAllowPolicyExampleCLI
Adicionar uma regra de controle de acesso de IP personalizada
Use o comando az network front-door waf-policy custom-rule create para adicionar uma regra de controle de acesso de IP personalizada para a política do WAF que você criou.
Nos seguintes exemplos:
- Substitua IPAllowPolicyExampleCLI pela sua política exclusiva já criada.
- Substitua ip-address-range-1, ip-address-range-2 pelo seu intervalo.
Primeiro, crie uma regra de permissão de IP para a política criada na etapa anterior.
Observação
--defer
é necessário porque uma regra deve ter uma condição de correspondência a ser adicionada na próxima etapa.
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
Depois, adicione uma condição de correspondência à regra:
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
Localizar a ID de uma política do WAF
Localize a ID de uma política do WAF usando o comando az network front-door waf-policy show. Substitua IPAllowPolicyExampleCLI no exemplo a seguir pela sua política exclusiva já criada.
az network front-door waf-policy show \
--resource-group <resource-group-name> \
--name IPAllowPolicyExampleCLI
Vincular uma política do WAF a um host de front-end do Azure Front Door
Defina a ID WebApplicationFirewallPolicyLink do Azure Front Door como a ID da política usando o comando az network front-door update. Substitua IPAllowPolicyExampleCLI pela sua política exclusiva que você já criou.
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>
Neste exemplo, a política WAF é aplicada a FrontendEndpoints[0]
. Você pode vincular a política do WAF a qualquer um dos seus front-ends.
Observação
Você precisa definir a propriedade WebApplicationFirewallPolicyLink
uma só vez para vincular uma política do WAF a um host de front-end do Azure Front Door. As próximas atualizações da política serão aplicadas automaticamente ao front-end.
Siga estas etapas para configurar uma política de WAF usando o Azure PowerShell.
Pré-requisitos
Antes de começar a configurar uma política de restrição de IP, configure o ambiente do PowerShell e crie um perfil do Azure Front Door.
Configurar o ambiente do PowerShell
O Azure PowerShell fornece um conjunto de cmdlets que usam o modelo do Azure Resource Manager para gerenciar os recursos do Azure.
Você pode instalar o Azure PowerShell no computador local e usá-lo em qualquer sessão do PowerShell. Siga as instruções na página para entrar no PowerShell usando suas credenciais do Azure e instale o módulo do Az PowerShell.
Conecte-se com o Azure usando o comando a seguir e depois use uma caixa de diálogo interativa para entrar.
Connect-AzAccount
Antes de instalar um módulo do Azure Front Door, verifique se a versão atual do módulo PowerShellGet está instalada. Execute o comando a seguir e reabra o PowerShell.
Install-Module PowerShellGet -Force -AllowClobber
Instale o módulo Az.FrontDoor usando o comando a seguir:
Install-Module -Name Az.FrontDoor
Criar um perfil do Azure Front Door
Crie um perfil do Azure Front Door seguindo as instruções descritas em Guia de início rápido: Criar um Front Door para um aplicativo Web global altamente disponível.
Definir uma condição de correspondência de IP
Use o comando New-AzFrontDoorWafMatchConditionObject para definir uma condição de correspondência de IP.
No exemplo a seguir, substitua ip-address-range-1, ip-address-range-2 pelo seu intervalo.
$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1
Criar uma regra de permissão de IP personalizada
Use o comando New-AzFrontDoorWafCustomRuleObject para definir uma ação e uma prioridade. No exemplo a seguir, as solicitações que não sejam dos IPs de clientes que correspondem à lista são bloqueadas.
$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1
Encontre o nome do grupo de recursos que contém o perfil do Azure Front Door usando Get-AzResourceGroup
. Depois, configure uma política do WAF com a regra de IP usando New-AzFrontDoorWafPolicy.
$IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
-Name "IPRestrictionExamplePS" `
-resourceGroupName <resource-group-name> `
-Customrule $IPAllowRule`
-Mode Prevention `
-EnabledState Enabled
Vincular uma política do WAF a um host de front-end do Azure Front Door
Vincule um objeto de política do WAF a um host de front-end existente e atualize as propriedades do Azure Front Door. Primeiro, recupere o objeto Azure Front Door usando Get-AzFrontDoor. Em seguida, defina a propriedade WebApplicationFirewallPolicyLink
como a ID do recurso de $IPAllowPolicyExamplePS
, criada na etapa anterior, usando o comando Set-AzFrontDoor.
$FrontDoorObjectExample = Get-AzFrontDoor `
-ResourceGroupName <resource-group-name> `
-Name $frontDoorName
$FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]
Observação
Neste exemplo, a política WAF é aplicada a FrontendEndpoints[0]
. Você pode vincular uma política do WAF a qualquer um dos seus front-ends. Você precisa definir a propriedade WebApplicationFirewallPolicyLink
uma só vez para vincular uma política do WAF a um host de front-end do Azure Front Door. As próximas atualizações da política serão aplicadas automaticamente ao front-end.
Para exibir o modelo do Resource Manager que cria uma política do Azure Front Door e uma política de WAF com regras de restrição de IP personalizadas, acesse GitHub.