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
Vincular a política a um host front-end do Azure Front Door
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
- Saiba mais sobre o Azure Front Door.
- Saiba mais sobre o Firewall de Aplicativo Web do Azure na Porta da Frente do Azure.