Partilhar via


Configurar uma política WAF usando o Azure PowerShell

Uma política de firewall de aplicativo Web (WAF) define as inspeções necessárias quando uma solicitação chega à Porta da Frente do Azure.

Este artigo mostra como configurar uma política WAF que consiste em algumas regras personalizadas e tem o Conjunto de Regras Padrão gerenciado pelo Azure habilitado.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Antes de começar a configurar uma política de limite de taxa, 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 utilizam o modelo do Azure Resource Manager para gerir os 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 com suas credenciais do Azure. Em seguida, instale o módulo Az PowerShell.

Iniciar sessão no Azure

Connect-AzAccount

Antes de instalar o módulo Azure Front Door, verifique se você tem a versão atual do PowerShellGet instalada. Execute o seguinte comando e reabra o PowerShell.

Install-Module PowerShellGet -Force -AllowClobber

Instale o módulo Az.FrontDoor

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 perfil do Azure Front Door.

Regra personalizada baseada em parâmetros HTTP

O exemplo a seguir mostra como configurar uma regra personalizada com duas condições de correspondência usando New-AzFrontDoorWafMatchConditionObject. As solicitações são de um site especificado, conforme definido pelo referenciador, e a cadeia de caracteres de consulta não contém 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

Regra personalizada baseada em um método de solicitação HTTP

Crie uma regra bloqueando um 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

Criar uma regra personalizada com base na restrição de tamanho

O exemplo a seguir cria uma regra bloqueando solicitações com uma URL com mais de 100 caracteres usando o Azure PowerShell.

$url = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty GreaterThanOrEqual -MatchValue 100
$URLOver100 = New-AzFrontDoorWafCustomRuleObject -Name "URLOver100" -RuleType MatchRule -MatchCondition $url -Action Block -Priority 3

Adicionar um conjunto de regras padrão gerenciado

O exemplo a seguir cria um Conjunto de Regras Padrão gerenciado usando o Azure PowerShell.

$managedRules =  New-AzFrontDoorWafManagedRuleObject -Type DefaultRuleSet -Version 1.0

Configurar uma política de segurança

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 de segurança com regras criadas nas etapas anteriores usando New-AzFrontDoorWafPolicy no grupo de recursos especificado que contém o perfil do Azure Front Door.

$myWAFPolicy=New-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $resourceGroupName -Customrule $AllowFromTrustedSites,$BlockPUT,$URLOver100 -ManagedRule $managedRules -EnabledState Enabled -Mode Prevention

Vincule o objeto de política de segurança a um host front-end existente do Azure Front Door e atualize as propriedades do Azure Front Door. Primeiro, recupere o objeto Front Door do Azure usando Get-AzFrontDoor. Em seguida, defina a propriedade front-end WebApplicationFirewallPolicyLink como a $myWAFPolicy$ resourceId do criado na etapa anterior usando Set-AzFrontDoor.

Nota

Para o Azure Front Door Standard e Premium, você deve usar Get-AzFrontDoorCdnProfile.

O exemplo a seguir usa o nome myResourceGroupFD1 do grupo de recursos com a suposição de que você criou o perfil da Porta da Frente do Azure usando as instruções fornecidas em Guia de início rápido: Criar uma Porta da Frente do Azure. Além disso, no exemplo a seguir, substitua $frontDoorName pelo nome do seu perfil do Azure Front Door.

   $FrontDoorObjectExample = Get-AzFrontDoor `
     -ResourceGroupName myResourceGroupFD1 `
     -Name $frontDoorName
   $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $myWAFPolicy.Id
   Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

Nota

Você só precisa definir a WebApplicationFirewallPolicyLink propriedade uma vez para vincular uma política de segurança a um front-end da Porta da Frente do Azure. As atualizações de política subsequentes são aplicadas automaticamente ao front-end.

Próximos passos