Konfigurieren einer WAF-Richtlinie mithilfe von Azure PowerShell

Eine WAF-Richtlinie (Web Application Firewall) definiert die Überprüfungen, die erforderlich sind, wenn eine Anforderung bei Azure Front Door eingeht.

In diesem Artikel wird erläutert, wie Sie eine WAF-Richtlinie konfigurieren, die einige benutzerdefinierte Regeln umfasst und für die der ein per Azure verwalteter Standardregelsatz aktiviert ist.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

Bevor Sie mit der Einrichtung einer Ratenbegrenzungsrichtlinie beginnen, müssen Sie zunächst Ihre PowerShell-Umgebung einrichten und ein Azure Front Door-Profil erstellen.

Einrichten Ihrer PowerShell-Umgebung

Azure PowerShell bietet eine Reihe von Cmdlets, die das Azure Resource Manager-Modell für die Verwaltung von Azure-Ressourcen verwenden.

Sie können Azure PowerShell auf Ihrem lokalen Computer installieren und in einer beliebigen PowerShell-Sitzung nutzen. Befolgen Sie die Anweisungen auf der Seite, um sich mit Ihren Azure-Anmeldeinformationen anzumelden. Installieren Sie dann das Az-Modul von PowerShell.

Anmelden bei Azure

Connect-AzAccount

Stellen Sie vor dem Installieren des Azure Front Door-Moduls sicher, dass die aktuelle Version von PowerShellGet installiert ist. Führen Sie den folgenden Befehl aus, und öffnen Sie PowerShell erneut.

Install-Module PowerShellGet -Force -AllowClobber

Installieren des Moduls „Az.FrontDoor“

Install-Module -Name Az.FrontDoor

Erstellen eines Azure Front Door-Profils

Gehen Sie zum Erstellen eines Azure Front Door-Profils gemäß den Anweisungen unter Schnellstart: Erstellen eines Azure Front Door-Profils im Azure-Portal vor.

Benutzerdefinierte Regel basierend auf HTTP-Parametern

Im folgenden Beispiel wird veranschaulicht, wie eine benutzerdefinierte Regel mit zwei Vergleichsbedingungen mithilfe von New-AzFrontDoorWafMatchConditionObject konfiguriert wird. Die Anforderungen stammen von einer angegebenen Website, die vom Referrer definiert wird. Die Abfragezeichenfolge enthält nicht 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

Benutzerdefinierte Regel basierend auf einer HTTP-Anforderungsmethode

Erstellen Sie mithilfe von New-AzFrontDoorWafCustomRuleObject eine Regel, mit der die PUT-Methode blockiert wird.

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

Erstellen einer benutzerdefinierten Regel basierend auf Größenbeschränkung

Im folgenden Beispiel wird mithilfe von Azure PowerShell eine Regel erstellt, die Anforderungen mit einer URL mit mehr als 100 Zeichen blockiert:

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

Hinzufügen eines verwalteten Standardregelsatzes

Im folgenden Beispiel wird mithilfe von Azure PowerShell ein verwalteter Standardregelsatz erstellt:

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

Konfigurieren einer Sicherheitsrichtlinie

Suchen Sie mithilfe von Get-AzResourceGroup nach dem Namen der Ressourcengruppe, die das Azure Front Door-Profil enthält. Konfigurieren Sie als Nächstes mithilfe von New-AzFrontDoorWafPolicy eine Sicherheitsrichtlinie mit den in den vorherigen Schritten erstellten Regeln in der angegebenen Ressourcengruppe, die das Azure Front Door-Profil enthält.

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

Verknüpfen Sie das Sicherheitsrichtlinienobjekt mit einem vorhandenen Azure Front Door-Front-End-Host, und aktualisieren Sie die Azure Front Door-Eigenschaften. Rufen Sie zunächst mithilfe von Get-AzFrontDoor das Azure Front Door-Objekt ab. Legen Sie dann mithilfe von Set-AzFrontDoor die Eigenschaft WebApplicationFirewallPolicyLink des Front-Ends auf die resourceId des im vorherigen Schritt erstellten $myWAFPolicy$-Objekts fest.

Hinweis

Für Azure Front Door Standard und Premium sollten Sie das Get-AzFrontDoorCdnProfile verwenden.

Im folgenden Beispiel wird der Ressourcengruppenname myResourceGroupFD1 verwendet. Hierbei wird davon ausgegangen, dass Sie das Azure Front Door-Profil anhand der Anweisungen unter Schnellstart: Erstellen einer Azure Front Door-Instanz erstellt haben. Ersetzen Sie im folgenden Beispiel außerdem $frontDoorName durch den Namen Ihres Azure Front Door-Profils.

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

Hinweis

Sie müssen die Eigenschaft WebApplicationFirewallPolicyLink nur einmal festlegen, um eine Sicherheitsrichtlinie mit einem Azure Front Door-Front-End zu verknüpfen. Nachfolgende Richtlinienaktualisierungen werden automatisch auf das Front-End angewandt.

Nächste Schritte