Configurar uma política do WAF usando o Azure PowerShell

Uma política de WAF (firewall de aplicativo Web) define as inspeções necessárias quando uma solicitação chega ao Azure Front Door.

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

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

Pré-requisitos

Antes de você 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 usa 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 com suas credenciais do Azure. Em seguida, instale o módulo do Az PowerShell.

Entrar no Azure

Connect-AzAccount

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

Install-Module PowerShellGet -Force -AllowClobber

Instalar 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 Início rápido: criar um perfil do Azure Front Door

Regra personalizada com base 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 provenientes de um site específico, conforme definido pelo referenciador. Além disso, a cadeia de caracteres de consulta não contém a 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

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

O exemplo a seguir cria solicitações de bloqueio de regra 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 seguinte exemplo 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

Encontre o nome do grupo de recursos que contém o perfil do Azure Front Door 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 ao host de front-end do Azure Front Door e atualize as propriedades do Azure Front Door. Primeiro, recupere o objeto Azure Front Door usando Get-AzFrontDoor. Em seguida, defina a propriedade front-end WebApplicationFirewallPolicyLink para a resourceId da $myWAFPolicy$ criada na etapa anterior usando Set-AzFrontDoor.

O exemplo a seguir usa o nome do grupo de recursos myResourceGroupFD1 supondo que o perfil do Azure Front Door foi criado usando as instruções fornecidas no Guia de início rápido: criar um Azure Front Door. 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]

Observação

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

Próximas etapas