Configurar uma política de WAF com Azure PowerShell

Uma política de firewall de aplicações Web (WAF) define as inspeções necessárias quando um pedido chega ao Azure Front Door.

Este artigo mostra como configurar uma política WAF que consiste em algumas regras personalizadas e tem o Conjunto de Regras Predefinido gerido pelo Azure ativado.

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 o 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 iniciar sessão com as suas credenciais do Azure. Em seguida, instale o módulo do Az PowerShell.

Iniciar sessão no Azure

Connect-AzAccount

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

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 ao seguir as instruções descritas em Início Rápido: Criar um perfil do Azure Front Door.

Regra personalizada baseada em parâmetros HTTP

O exemplo seguinte mostra como configurar uma regra personalizada com duas condições de correspondência com New-AzFrontDoorWafMatchConditionObject. Os pedidos são de um site especificado, conforme definido pelo referenciador, e a cadeia 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 num método de pedido HTTP

Crie uma regra que bloqueie um método PUT com 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 seguinte cria uma regra que bloqueia pedidos com um URL com mais de 100 carateres ao utilizar 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 Predefinido gerido

O exemplo seguinte cria um Conjunto de Regras Predefinido gerido com 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 do Azure Front Door com Get-AzResourceGroup. Em seguida, configure uma política de segurança com regras criadas nos passos anteriores ao utilizar 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

Ligue o objeto de política de segurança a um anfitrião de front-end do Azure Front Door existente e atualize as propriedades do Azure Front Door. Primeiro, obtenha o objeto do Azure Front Door com Get-AzFrontDoor. Em seguida, defina a propriedade de front-end WebApplicationFirewallPolicyLink para a resourceId$myWAFPolicy$ do criado no passo anterior com Set-AzFrontDoor.

O exemplo seguinte utiliza o nome myResourceGroupFD1 do grupo de recursos com o pressuposto de que criou o perfil do Azure Front Door com as instruções fornecidas no Início Rápido: Criar um Azure Front Door. Além disso, no exemplo seguinte, 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

Só tem de definir a WebApplicationFirewallPolicyLink propriedade uma vez para ligar uma política de segurança a um front-end do Azure Front Door. As atualizações de política subsequentes são aplicadas automaticamente ao front-end.

Passos seguintes