Share via


使用 Azure PowerShell 設定 WAF 原則

Web 應用程式防火牆 (WAF) 原則會定義要求抵達 Azure Front Door 時所需的檢查。

本文說明如何設定由某些自訂規則組成的 WAF 原則,並啟用 Azure 受控預設規則集。

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

必要條件

在開始設定速率限制原則之前,請先設定您的 PowerShell 環境,並建立 Azure Front Door 設定檔。

設定 PowerShell 環境

Azure PowerShell 提供了一組 Cmdlet,它們會使用 Azure Resource Manager 模型來管理 Azure 資源。

您可以在本機電腦上安裝 Azure PowerShell,並將其用於任何 PowerShell 工作階段。 請遵循頁面上的指示,使用 Azure 認證進行登入。 安裝 Az PowerShell 模組。

登入 Azure

Connect-AzAccount

在安裝 Azure Front Doo 模組之前,請確定您已安裝最新版的 PowerShellGet。 執行下列命令,並重新開啟 PowerShell。

Install-Module PowerShellGet -Force -AllowClobber

安裝 Az.FrontDoor 模組

Install-Module -Name Az.FrontDoor

建立 Azure Front Door 設定檔

請遵循快速入門:建立 Azure Front Door 設定檔中所述的指示來建立 Azure Front Door 設定檔。

以 HTTP 參數為基礎的自訂規則

下列範例示範如何使用 New-AzFrontDoorWafMatchConditionObject 來設定具有兩個比對條件的自訂規則。 要求來自指定網站,如參考者所定義,且查詢字串不包含 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

以 HTTP 要求方法為基礎的自訂規則

使用 New-AzFrontDoorWafCustomRuleObject 建立封鎖 PUT 方法的規則。

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

以大小限制為基礎建立自訂規則

下列範例會使用 Azure PowerShell 來建立 URL 長度超過 100 個字元的規則封鎖要求。

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

新增受控預設規則集

下列範例會使用 Azure PowerShell 建立受控預設規則集。

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

設定安全性原則

使用 Get-AzResourceGroup 尋找包含 Azure Front Door 設定檔的資源群組名稱。 接下來,在包含 Azure Front Door 設定檔的指定資源群組中,使用 New-AzFrontDoorWafPolicy 以在先前步驟中已建立的規則來設定安全性原則。

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

將安全性原則物件連結至現有的 Azure Front Door 前端主機,並更新 Azure Front Door 屬性。 請先使用 Get-AzFrontDoor 擷取 Azure Front Door 物件。 接下來,使用 Set-AzFrontDoor,將前端 WebApplicationFirewallPolicyLink 屬性設定為在上一個步驟中所建立 $myWAFPolicy$resourceId

下列範例會使用資源群組名稱 myResourceGroupFD1,假設您已使用快速入門:建立 Azure Front Door 中提供的指示,來建立 Azure Front Door 設定檔。 此外,在下列範例中,將 $frontDoorName 取代為您 Azure Front Door 設定檔的名稱。

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

注意

您只需要設定 WebApplicationFirewallPolicyLink 屬性一次,即可將安全性原則連結至 Azure Front Door 前端。 後續原則更新會自動套用至前端。

下一步