Este artigo mostra como configurar regras de restrição de IP em um firewall de 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 WAF personalizada que permite controlar o acesso aos seus aplicativos Web. A regra especifica uma lista de endereços IP ou intervalos de endereços IP no formato CIDR (Roteamento entre Domínios sem Classe).
Há dois tipos de variáveis de correspondência em uma correspondência de endereço IP: RemoteAddr
e SocketAddr
. A RemoteAddr
variável é o IP original do cliente que geralmente é enviado através do cabeçalho da X-Forwarded-For
solicitação. A SocketAddr
variável é o endereço IP de origem que o WAF vê. Se o seu usuário está atrás de um proxy, SocketAddr
geralmente é o endereço do servidor proxy.
Por padrão, seu aplicativo Web é acessível pela Internet. Se quiser limitar o acesso a clientes a partir de uma lista de endereços IP conhecidos ou intervalos de endereços IP, você pode criar uma regra de correspondência de IP que contenha a lista de endereços IP como valores correspondentes e defina o operador como Not
(negar é verdadeiro) 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 permitida recebem uma resposta 403 Proibido.
Siga estas etapas para configurar uma política 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: crie uma instância do Azure Front Door para um aplicativo Web global altamente disponível.
Criar uma política WAF
No portal do Azure, selecione Criar um recurso. Insira o firewall do aplicativo Web na caixa de pesquisa Serviços de pesquisa e marketplace e selecione Enter. Em seguida, selecione Web Application Firewall (WAF).
Selecione Criar.
Na página Criar uma política WAF, use os seguintes valores para concluir a guia Noções básicas.
Definição |
Value |
Política para |
WAF Global (Porta da frente). |
Camada da porta da frente |
Selecione Premium ou Standard para corresponder à sua camada da Porta da Frente do Azure. |
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione o grupo de recursos onde sua instância do Azure Front Door está localizada. |
Nome da política |
Introduza um nome para a sua política. |
Estado da política |
Selecionado |
Modo de política |
Prevenção |
Selecione Next: Managed rules.
Selecione Avançar : Configurações de política.
Na guia Configurações de política, digite Você foi bloqueado! para o corpo de resposta Bloquear para que você possa ver que sua regra personalizada está em vigor.
Selecione Next: Regras personalizadas.
Selecione Adicionar regra personalizada.
Na página Adicionar regra personalizada, use os seguintes valores de teste para criar uma regra personalizada.
Definição |
Value |
Nome da regra personalizada |
FdWafCustRule |
Status |
Ativado(a) |
Tipo de regra |
Match |
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 |
10.10.10.0/24 |
Então |
Negar tráfego |
Selecione Adicionar.
Selecione Next: Association.
Selecione Associar um perfil de porta da frente.
Para Perfil de front-end, selecione seu perfil de front-end.
Em Domínio, selecione o domínio.
Selecione Adicionar.
Selecione Rever + criar.
Depois que a validação da política for aprovada, selecione Criar.
Teste sua política WAF
Após a conclusão da implantação da política do WAF, navegue até o nome do host front-end do Azure Front Door.
Você verá sua mensagem de bloqueio personalizada.
Nota
Um endereço IP privado foi intencionalmente usado na regra personalizada para garantir que a regra fosse acionada. 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 WAF usando a CLI do Azure.
Pré-requisitos
Antes de começar a configurar uma política de restrição de IP, configure seu ambiente de 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. Tem a CLI do Azure pré-instalada e configurada para ser utilizada com a 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, entre
az extension add --name front-door
para adicionar a extensão Azure Front Door.
- Se você estiver usando a CLI localmente no Bash, entre no Azure usando
az login
o .
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: crie uma instância do Azure Front Door para um aplicativo Web global altamente disponível.
Criar uma política WAF
Crie uma política 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 IP personalizada
Use o comando az network front-door waf-policy custom-rule create para adicionar uma regra de controle de acesso IP personalizada para a política WAF que você criou.
Nos seguintes exemplos:
- Substitua IPAllowPolicyExampleCLI por sua política exclusiva criada anteriormente.
- Substitua ip-address-range-1, ip-address-range-2 pelo seu próprio intervalo.
Primeiro, crie uma regra de permissão de IP para a política criada na etapa anterior.
Nota
--defer
é necessária porque uma regra deve ter uma condição de correspondência para 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
Em seguida, 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 WAF
Encontre o ID de uma política WAF usando o comando az network front-door waf-policy show . Substitua IPAllowPolicyExampleCLI no exemplo a seguir por sua política exclusiva que você criou anteriormente.
az network front-door waf-policy show \
--resource-group <resource-group-name> \
--name IPAllowPolicyExampleCLI
Vincular uma política WAF a um host front-end do Azure Front Door
Defina a ID WebApplicationFirewallPolicyLink do Azure Front Door para a ID da política usando o comando az network front-door update. Substitua IPAllowPolicyExampleCLI pela política exclusiva criada 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>
Neste exemplo, a política WAF é aplicada ao FrontendEndpoints[0]
. Você pode vincular a política do WAF a qualquer um dos seus front-ends.
Nota
Você precisa definir a WebApplicationFirewallPolicyLink
propriedade apenas uma vez para vincular uma política WAF a um front-end do Azure Front Door. As atualizações de política subsequentes são aplicadas automaticamente ao front-end.
Siga estas etapas para configurar uma política WAF usando o Azure PowerShell.
Pré-requisitos
Antes de começar a configurar uma política de restrição de IP, configure seu 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 recursos do Azure.
Pode instalar o Azure PowerShell no seu computador local e utilizá-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 módulo Az PowerShell.
Conecte-se ao Azure usando o comando a seguir e use uma caixa de diálogo interativa para entrar.
Connect-AzAccount
Antes de instalar um módulo Azure Front Door, verifique se você tem a versão atual do módulo PowerShellGet instalada. Execute o seguinte comando e reabra o PowerShell.
Install-Module PowerShellGet -Force -AllowClobber
Instale o módulo Az.FrontDoor usando o seguinte comando:
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 uma porta frontal 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 IP.
No exemplo a seguir, substitua ip-address-range-1, ip-address-range-2 pelo seu próprio 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 definir uma prioridade. No exemplo a seguir, as solicitações que não são de IPs de cliente que correspondem à lista são bloqueadas.
$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1
Localize o nome do grupo de recursos que contém o perfil da Porta da Frente do Azure usando Get-AzResourceGroup
. Em seguida, configure uma política WAF com a regra IP usando New-AzFrontDoorWafPolicy.
$IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
-Name "IPRestrictionExamplePS" `
-resourceGroupName <resource-group-name> `
-Customrule $IPAllowRule`
-Mode Prevention `
-EnabledState Enabled
Vincular uma política WAF a um host front-end do Azure Front Door
Vincule um objeto de política WAF a um host front-end existente e atualize as propriedades do Azure Front Door. Primeiro, recupere o objeto Front Door do Azure usando Get-AzFrontDoor. Em seguida, defina a WebApplicationFirewallPolicyLink
propriedade como a ID do recurso de $IPAllowPolicyExamplePS
, criado 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]
Nota
Neste exemplo, a política WAF é aplicada ao FrontendEndpoints[0]
. Você pode vincular uma política WAF a qualquer um dos seus front-ends. Você precisa definir a WebApplicationFirewallPolicyLink
propriedade apenas uma vez para vincular uma política WAF a um front-end do Azure Front Door. As atualizações de política subsequentes são aplicadas automaticamente ao front-end.
Para exibir o modelo do Gerenciador de Recursos que cria uma política de Porta da Frente do Azure e uma política WAF com regras de restrição de IP personalizadas, vá para GitHub.