Konfigurera en WAF-princip med hjälp av Azure PowerShell

En brandväggsprincip för webbaserade program (WAF) definierar de inspektioner som krävs när en begäran kommer till Azure Front Door.

Den här artikeln visar hur du konfigurerar en WAF-princip som består av vissa anpassade regler och har azure-hanterad standardregeluppsättning aktiverad.

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Förutsättningar

Innan du börjar konfigurera en princip för hastighetsbegränsning konfigurerar du PowerShell-miljön och skapar en Azure Front Door-profil.

Konfigurera PowerShell-miljön

Azure PowerShell tillhandahåller en uppsättning cmdletar som använder Azure Resource Manager-modellen för att hantera dina Azure-resurser.

Du kan installera Azure PowerShell på en lokal dator och använda det i alla PowerShell-sessioner. Följ anvisningarna på sidan för att logga in med dina Azure-autentiseringsuppgifter. Installera sedan Az PowerShell-modulen.

Logga in på Azure

Connect-AzAccount

Innan du installerar Azure Front Door-modulen kontrollerar du att du har den aktuella versionen av PowerShellGet installerad. Kör följande kommando och öppna PowerShell igen.

Install-Module PowerShellGet -Force -AllowClobber

Installera modulen Az.FrontDoor

Install-Module -Name Az.FrontDoor

Skapa en Azure Front Door-profil

Skapa en Azure Front Door-profil genom att följa anvisningarna i Snabbstart: Skapa en Azure Front Door-profil.

Anpassad regel baserad på HTTP-parametrar

I följande exempel visas hur du konfigurerar en anpassad regel med två matchningsvillkor med hjälp av New-AzFrontDoorWafMatchConditionObject. Begäranden kommer från en angiven webbplats enligt definitionen av referenten och frågesträngen innehåller passwordinte .

$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

Anpassad regel baserat på en HTTP-begärandemetod

Skapa en regel som blockerar en PUT-metod med hjälp av New-AzFrontDoorWafCustomRuleObject.

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

Skapa en anpassad regel baserat på storleksbegränsning

I följande exempel skapas en regel som blockerar begäranden med en URL som är längre än 100 tecken med hjälp av Azure PowerShell.

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

Lägga till en hanterad standardregeluppsättning

I följande exempel skapas en hanterad standardregeluppsättning med hjälp av Azure PowerShell.

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

Konfigurera en säkerhetsprincip

Leta reda på namnet på resursgruppen som innehåller Azure Front Door-profilen med hjälp Get-AzResourceGroupav . Konfigurera sedan en säkerhetsprincip med skapade regler i föregående steg med hjälp av New-AzFrontDoorWafPolicy i den angivna resursgruppen som innehåller Azure Front Door-profilen.

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

Länka säkerhetsprincipobjektet till en befintlig Azure Front Door-klientdelsvärd och uppdatera Azure Front Door-egenskaperna. Hämta först Azure Front Door-objektet med hjälp av Get-AzFrontDoor. Ange sedan klientdelsegenskapen WebApplicationFirewallPolicyLinkresourceId till för som $myWAFPolicy$ skapades i föregående steg med hjälp av Set-AzFrontDoor.

I följande exempel används resursgruppens namn myResourceGroupFD1 med antagandet att du har skapat Azure Front Door-profilen med hjälp av anvisningarna i Snabbstart: Skapa en Azure Front Door. I följande exempel ersätter $frontDoorName du även med namnet på din Azure Front Door-profil.

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

Anteckning

Du behöver bara ange WebApplicationFirewallPolicyLink egenskapen en gång för att länka en säkerhetsprincip till en Azure Front Door-klientdel. Efterföljande principuppdateringar tillämpas automatiskt på klientdelen.

Nästa steg