Sdílet prostřednictvím


Konfigurace zásad WAF pomocí Azure PowerShellu

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

Tento článek ukazuje, jak nakonfigurovat zásadu WAF, která se skládá z některých vlastních pravidel a má povolenou výchozí sadu pravidel spravovanou v 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 rychlém startu: Vytvořte profil 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í ze zadané lokality definované referrerem 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í 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 PowerShellu.

$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 PowerShellu.

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

Konfigurace zásad zabezpečení

Vyhledejte název skupiny prostředků, která obsahuje profil služby Azure Front Door pomocí Get-AzResourceGroup. 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 front-endovým hostitelem služby Azure Front Door a aktualizujte vlastnosti služby Azure Front Door. Nejprve načtěte objekt Služby Azure Front Door pomocí rutiny Get-AzFrontDoor. Dále nastavte front-end WebApplicationFirewallPolicyLink vlastnost na resourceId vytvořenou $myWAFPolicy$ v předchozím kroku pomocí Set-AzFrontDoor.

Poznámka:

Pro Azure Front Door Standard a Premium byste měli použít Get-AzFrontDoorCdnProfile.

Následující příklad používá název myResourceGroupFD1 skupiny prostředků s předpokladem, že jste vytvořili profil služby Azure Front Door pomocí pokynů uvedených v rychlém startu: Vytvoření služby Azure Front Door. V následujícím příkladu nahraďte $frontDoorName také názvem 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:

Vlastnost stačí nastavit WebApplicationFirewallPolicyLink jen jednou, aby se zásady zabezpečení propojily s front-endem služby Azure Front Door. Další aktualizace zásad se automaticky použijí na front-end.

Další kroky