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
Configure 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
Vincular uma política a um host de front-end do Azure Front Door
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.
Observação
Para o Azure Front Door Standard e Premium, você deve usar Get-AzFrontDoorCdnProfile.
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
- Saiba mais sobre o Azure Front Door.
- Saiba mais sobre Firewall de Aplicativo Web do Azure no Azure Front Door.