Konfigurace zásad WAF pomocí Azure PowerShell

Zásady firewallu webových aplikací (WAF) definují kontroly, které se vyžadují při doručení požadavku do služby Azure Front Door.

Tento článek ukazuje, jak nakonfigurovat zásady WAF, které se skládají z některých vlastních pravidel a mají povolenou výchozí sadu pravidel spravovanou Azure.

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Požadavky

Než začnete nastavovat zásady omezení rychlosti, nastavte prostředí PowerShellu a vytvořte profil služby Azure Front Door.

Nastavení prostředí PowerShell

Prostředí Azure PowerShell poskytuje sadu rutin, které ke správě vašich prostředků Azure využívají model Azure Resource Manager.

Azure PowerShell můžete nainstalovat na místní počítač a používat v jakékoli relaci PowerShellu. Podle pokynů na stránce se přihlaste pomocí přihlašovacích údajů Azure. Pak nainstalujte modul Az PowerShell.

Přihlášení k Azure

Connect-AzAccount

Před instalací modulu Azure Front Door se ujistěte, že máte nainstalovanou aktuální verzi modulu PowerShellGet. Spusťte následující příkaz a znovu otevřete PowerShell.

Install-Module PowerShellGet -Force -AllowClobber

Instalace modulu Az.FrontDoor

Install-Module -Name Az.FrontDoor

Vytvoření profilu služby Azure Front Door

Vytvořte profil služby Azure Front Door podle pokynů popsaných v tématu Rychlý start: Vytvoření profilu služby Azure Front Door.

Vlastní pravidlo založené na parametrech HTTP

Následující příklad ukazuje, jak nakonfigurovat vlastní pravidlo se dvěma podmínkami shody pomocí New-AzFrontDoorWafMatchConditionObject. Požadavky pocházejí z zadaného webu definovaného odkazovačem a řetězec dotazu neobsahuje 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

Vlastní pravidlo založené na metodě požadavku HTTP

Vytvořte pravidlo blokující metodu PUT pomocí rutiny New-AzFrontDoorWafCustomRuleObject.

$put = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestMethod -OperatorProperty Equal -MatchValue PUT
$BlockPUT = New-AzFrontDoorWafCustomRuleObject -Name "BlockPUT" -RuleType MatchRule -MatchCondition $put -Action Block -Priority 2

Vytvoření vlastního pravidla na základě omezení velikosti

Následující příklad vytvoří pravidlo blokující požadavky s adresou URL delší než 100 znaků pomocí Azure PowerShell.

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

Přidání spravované výchozí sady pravidel

Následující příklad vytvoří spravovanou výchozí sadu pravidel pomocí Azure PowerShell.

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

Konfigurace zásad zabezpečení

Pomocí příkazu vyhledejte název skupiny prostředků, která obsahuje profil Get-AzResourceGroupslužby Azure Front Door. Dále nakonfigurujte zásadu zabezpečení s vytvořenými pravidly v předchozích krocích pomocí rutiny New-AzFrontDoorWafPolicy v zadané skupině prostředků, která obsahuje profil služby Azure Front Door.

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

Propojte objekt zásad zabezpečení s existujícím hostitelem front-endu služby Azure Front Door a aktualizujte vlastnosti služby Azure Front Door. Nejprve pomocí rutiny Get-AzFrontDoor načtěte objekt Služby Azure Front Door. Dále pomocí set-AzFrontDoor nastavte vlastnost front-endu WebApplicationFirewallPolicyLink na resourceId vlastnost vytvořenou $myWAFPolicy$ v předchozím kroku.

Následující příklad používá název myResourceGroupFD1 skupiny prostředků s předpokladem, že jste profil služby Azure Front Door vytvořili podle pokynů uvedených v tématu Rychlý start: Vytvoření služby Azure Front Door. V následujícím příkladu také nahraďte $frontDoorName názvem vašeho profilu Služby Azure Front Door.

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

Poznámka

Pokud chcete propojit zásady zabezpečení s front-endem služby Azure Front Door, stačí vlastnost nastavit WebApplicationFirewallPolicyLink jenom jednou. Následné aktualizace zásad se automaticky použijí na front-end.

Další kroky