Konfigurieren einer IP-Einschränkungsregel mit einer WAF für Azure Front Door

In diesem Artikel wird erläutert, wie Sie IP-Einschränkungsregeln in einer Web Application Firewall (WAF) für Azure Front Door über das Azure-Portal, die Azure CLI, Azure PowerShell oder eine Azure Resource Manager-Vorlage konfigurieren.

Eine auf IP-Adressen basierende Zugriffssteuerungsregel ist eine benutzerdefinierte WAF-Regel, mit der Sie den Zugriff auf Ihre Webanwendungen steuern können. Die Regel gibt eine Liste mit IP-Adressen oder IP-Adressbereichen im CIDR-Format (Classless Inter-Domain Routing) an.

Es gibt zwei Arten von Abgleichsvariablen bei einem IP-Adressabgleich: RemoteAddr und SocketAddr. Die Variable RemoteAddr ist die ursprüngliche Client-IP, die normalerweise über den Header der Anforderung X-Forwarded-For gesendet wird. Die SocketAddr-Variable ist die Quell-IP-Adresse, die die WAF sieht. Wenn sich ein*e Benutzer*in hinter einem Proxy befindet, ist SocketAddr oft die Adresse des Proxyservers.

Standardmäßig kann auf Ihre Webanwendungen über das Internet zugegriffen werden. Wenn Sie den Zugriff auf Clients entsprechend einer Liste bekannter IP-Adressen oder IP-Adressbereiche einschränken möchten, können Sie eine IP-Vergleichsregel erstellen, die die Liste der IP-Adressen als abzugleichende Werte enthält und in der der Operator auf Not (Negation ist wahr) und die Aktion auf Block festgelegt wird. Nachdem eine IP-Einschränkungsregel angewandt wurde, erhalten Anforderungen von Adressen, die nicht in dieser Zulassungsliste enthalten sind, die Antwort „403 (Nicht zulässig)“.

Konfigurieren einer WAF-Richtlinie über das Azure-Portal

Befolgen Sie diese Schritte, um eine WAF-Richtlinie mithilfe des Azure-Portals zu konfigurieren.

Voraussetzungen

Erstellen Sie ein Azure Front Door-Profil gemäß den Anweisungen unter Schnellstart: Erstellen einer Azure Front Door-Instanz für eine hochverfügbare globale Webanwendung.

Erstellen einer WAF-Richtlinie

  1. Klicken Sie im Azure-Portal auf Ressource erstellen. Geben Sie Web Application Firewall in das Suchfeld Dienste und Marketplace suchen ein, und drücken Sie die EINGABETASTE. Wählen Sie dann Web Application Firewall (WAF) aus.

  2. Klicken Sie auf Erstellen.

  3. Auf der Seite WAF-Richtlinie erstellen verwenden Sie die folgenden Werte, um die Registerkarte Grundlagen auszufüllen.

    Einstellung Wert
    Richtlinie für Globale WAF (Front Door)
    Front Door-Tarif Wählen Sie „Premium“ oder „Standard“ entsprechend Ihrem Azure Front Door-Tarif aus.
    Subscription Wählen Sie Ihr Abonnement aus.
    Resource group Wählen Sie die Ressourcengruppe aus, in der sich Ihre Azure Front Door-Instanz befindet.
    Richtlinienname Geben Sie einen Namen für die Richtlinie ein.
    Richtlinienstatus Ausgewählt
    Richtlinienmodus Prävention.
  4. Klicken Sie auf Weiter: Verwaltete Regeln.

  5. Wählen Sie Weiter: Richtlinieneinstellungen aus.

  6. Geben Sie auf der Registerkarte Richtlinieneinstellungen für den Antworttext für blockierte Anforderungen den Text Sie wurden blockiert! ein, damit Sie testen können, ob Ihre benutzerdefinierte Regel in Kraft ist.

  7. Klicken Sie auf Weiter: Benutzerdefinierte Regeln.

  8. Wählen Sie Benutzerdefinierte Regel hinzufügen aus.

  9. Verwenden Sie auf der Seite Benutzerdefinierte Regel hinzufügen die folgenden Testwerte, um eine benutzerdefinierte Regel zu erstellen.

    Einstellung Wert
    Name der benutzerdefinierten Regel FdWafCustRule
    Status Aktiviert
    Regeltyp Match
    Priorität 100
    Übereinstimmungstyp IP-Adresse
    Übereinstimmungsvariable SocketAddr
    Vorgang Enthält nicht
    IP-Adresse oder Adressbereich 10.10.10.0/24
    Then Datenverkehr ablehnen

    Benutzerdefinierte Regel

    Wählen Sie Hinzufügen.

  10. Klicken Sie auf Weiter: Zuordnung.

  11. Wählen Sie Ein Front Door-Profil zuordnen aus.

  12. Wählen Sie für Front-End-Profil Ihr Front-End-Profil aus.

  13. Wählen Sie unter Domäne die Domäne aus.

  14. Wählen Sie Hinzufügen.

  15. Klicken Sie auf Überprüfen + erstellen.

  16. Nachdem Ihre Richtlinienüberprüfung bestanden ist, wählen Sie Erstellen aus.

Testen Ihrer WAF-Richtlinie

  1. Nachdem die Bereitstellung der WAF-Richtlinien abgeschlossen ist, navigieren Sie in Azure Front Door zu Ihrem Front-End-Hostnamen.

  2. Es sollte Ihre benutzerdefinierte Blockierungsmeldung angezeigt werden.

    WAF-Regeltest

    Hinweis

    In der benutzerdefinierten Regel wurde absichtlich eine private IP-Adresse verwendet, um die Auslösung der Regel sicherzustellen. Erstellen Sie bei einer tatsächlichen Bereitstellung Regeln für das Zulassen und Ablehnen mit IP-Adressen für die jeweilige Situation.

Konfigurieren einer WAF-Richtlinie über die Azure-Befehlszeilenschnittstelle

Befolgen Sie diese Schritte, um eine WAF-Richtlinie mithilfe der Azure CLI zu konfigurieren.

Voraussetzungen

Vor dem Konfigurieren einer Richtlinie für IP-Einschränkung müssen Sie zunächst die CLI-Umgebung einrichten und ein Azure Front Door-Profil erstellen.

Einrichten der Azure CLI-Umgebung

  1. Installieren Sie die Azure CLI, oder verwenden Sie Azure Cloud Shell. Azure Cloud Shell ist eine kostenlose Bash-Shell, die Sie direkt im Azure-Portal ausführen können. Die Azure CLI ist vorinstalliert und für die Verwendung mit Ihrem Konto konfiguriert. Klicken Sie in den folgenden CLI-Beispielen auf die Schaltfläche Jetzt testen. Melden Sie sich in der Cloud Shell-Sitzung, die geöffnet wird, bei Ihrem Azure-Konto an. Nachdem die Sitzung gestartet wurde, geben Sie az extension add --name front-door ein, um die Azure Front Door-Erweiterung hinzuzufügen.
  2. Wenn Sie die CLI lokal in Bash verwenden, melden Sie sich mit az login bei Azure an.

Erstellen eines Azure Front Door-Profils

Erstellen Sie ein Azure Front Door-Profil gemäß den Anweisungen unter Schnellstart: Erstellen einer Azure Front Door-Instanz für eine hochverfügbare globale Webanwendung.

Erstellen einer WAF-Richtlinie

Erstellen Sie mit dem Befehl az network front-door waf-policy create eine WAF-Richtlinie. Ersetzen Sie im folgenden Beispiel den Richtliniennamen IPAllowPolicyExampleCLI durch einen eindeutigen Richtliniennamen.

az network front-door waf-policy create \
  --resource-group <resource-group-name> \
  --subscription <subscription ID> \
  --name IPAllowPolicyExampleCLI

Hinzufügen einer benutzerdefinierten Regel für die IP-Zugriffssteuerung

Fügen Sie mit dem Befehl az network front-door waf-policy custom-rule create der erstellten WAF-Richtlinie eine benutzerdefinierte Regel für die IP-Zugriffssteuerung hinzu.

In den folgenden Beispielen:

  • Ersetzen Sie IPAllowPolicyExampleCLI durch die zuvor erstellte eindeutige Richtlinie.
  • Ersetzen Sie ip-address-range-1 und ip-address-range-2 durch Ihren gewünschten Bereich.

Erstellen Sie zunächst eine IP-Zulassungsregel für die Richtlinie, die Sie im vorherigen Schritt erstellt haben.

Hinweis

Hier ist --defer erforderlich, da eine Regel eine Übereinstimmungsbedingung aufweisen muss, die im nächsten Schritt hinzugefügt wird.

az network front-door waf-policy rule create \
  --name IPAllowListRule \
  --priority 1 \
  --rule-type MatchRule \
  --action Block \
  --resource-group <resource-group-name> \
  --policy-name IPAllowPolicyExampleCLI --defer

Fügen Sie der Regel nun eine Vergleichsbedingung hinzu:

az network front-door waf-policy rule match-condition add \
--match-variable SocketAddr \
--operator IPMatch \
--values "ip-address-range-1" "ip-address-range-2" \
--negate true \
--name IPAllowListRule \
  --resource-group <resource-group-name> \
  --policy-name IPAllowPolicyExampleCLI

Suchen der ID einer WAF-Richtlinie

Mit dem Befehl az network front-door waf-policy show können Sie die ID einer WAF-Richtlinie suchen. Ersetzen Sie IPAllowPolicyExampleCLI im folgenden Beispiel durch die eindeutige Richtlinie, die Sie zuvor erstellt haben.

az network front-door  waf-policy show \
  --resource-group <resource-group-name> \
  --name IPAllowPolicyExampleCLI

Legen Sie mit dem Befehl az network front-door update die Azure Front Door-ID WebApplicationFirewallPolicyLink auf die Richtlinien-ID fest. Ersetzen Sie IPAllowPolicyExampleCLI durch die zuvor erstellte eindeutige Richtlinie.

az network front-door update \
  --set FrontendEndpoints[0].WebApplicationFirewallPolicyLink.id=/subscriptions/<subscription ID>/resourcegroups/resource-group-name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/IPAllowPolicyExampleCLI \
  --name <frontdoor-name> \
  --resource-group <resource-group-name>

In diesem Beispiel wird die WAF-Richtlinie auf FrontendEndpoints[0] angewandt. Sie können die WAF-Richtlinie mit jedem der Front-Ends verknüpfen.

Hinweis

Die Eigenschaft WebApplicationFirewallPolicyLink muss nur einmal festgelegt werden, um eine WAF-Richtlinie mit einem Azure Front Door-Front-End zu verknüpfen. Nachfolgende Richtlinienaktualisierungen werden automatisch auf das Front-End angewandt.

Konfigurieren einer WAF-Richtlinie über Azure PowerShell

Befolgen Sie diese Schritte, um eine WAF-Richtlinie mithilfe von Azure PowerShell zu konfigurieren.

Voraussetzungen

Vor dem Konfigurieren einer Richtlinie für IP-Einschränkung müssen Sie zunächst die 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 bei PowerShell anzumelden und das Az-Modul zu installieren.

  1. Stellen Sie mit dem folgenden Befehl eine Verbindung zu Azure her, und verwenden Sie dann ein interaktives Dialogfeld für die Anmeldung.

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

    Install-Module PowerShellGet -Force -AllowClobber
    
  3. Installieren Sie das Az.FrontDoor-Modul mit dem folgendem Befehl:

    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 Sie eine „Front Door“ für eine hoch verfügbare globale Webanwendung.

Definieren einer IP-Übereinstimmungsbedingung

Definieren Sie mit dem Befehl New-AzFrontDoorWafMatchConditionObject eine IP-Übereinstimmungsbedingung. Ersetzen Sie im folgenden Beispiel ip-address-range-1 und ip-address-range-2 durch Ihren gewünschten Bereich.

$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable  SocketAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1

Erstellen einer benutzerdefinierten IP-Zulassungsregel

Verwenden Sie den Befehl New-AzFrontDoorWafCustomRuleObject, um eine Aktion zu definieren und eine Priorität festzulegen. Im folgenden Beispiel werden Anforderungen blockiert, die von Client-IP-Adressen stammen und nicht mit der Liste übereinstimmen.

$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1

Konfigurieren einer WAF-Richtlinie

Suchen Sie mithilfe von Get-AzResourceGroup nach dem Namen der Ressourcengruppe, die das Azure Front Door-Profil enthält. Konfigurieren Sie dann mit dem Befehl New-AzFrontDoorWafPolicy eine WAF-Richtlinie mit der IP-Regel.

  $IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
    -Name "IPRestrictionExamplePS" `
    -resourceGroupName <resource-group-name> `
    -Customrule $IPAllowRule`
    -Mode Prevention `
    -EnabledState Enabled

Tipp

Für eine bestehende WAF-Richtlinie können Sie Update-AzFrontDoorWafPolicy verwenden, um die Richtlinie zu aktualisieren.

Verknüpfen Sie ein WAF-Richtlinienobjekt mit einem vorhandenen 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 mit dem Befehl Set-AzFrontDoor die Eigenschaft WebApplicationFirewallPolicyLink auf die Ressourcen-ID des im vorherigen Schritt erstellten $IPAllowPolicyExamplePS-Objekts fest.

  $FrontDoorObjectExample = Get-AzFrontDoor `
    -ResourceGroupName <resource-group-name> `
    -Name $frontDoorName
  $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
  Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

Hinweis

In diesem Beispiel wird die WAF-Richtlinie auf FrontendEndpoints[0] angewandt. Sie können eine WAF-Richtlinie mit jedem der Front-Ends verknüpfen. Die Eigenschaft WebApplicationFirewallPolicyLink muss nur einmal festgelegt werden, um eine WAF-Richtlinie mit einem Azure Front Door-Front-End zu verknüpfen. Nachfolgende Richtlinienaktualisierungen werden automatisch auf das Front-End angewandt.

Konfigurieren einer WAF-Richtlinie über eine Resource Manager-Vorlage

Zum Anzeigen der Vorlage, über die eine Azure Front Door- und eine WAF-Richtlinie mit benutzerdefinierten IP-Einschränkungsregeln erstellt werden, navigieren Sie zu GitHub.

Nächste Schritte

Erfahren Sie, wie Sie ein Azure Front Door-Profil erstellen.