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
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.
Klicken Sie auf Erstellen.
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. Klicken Sie auf Weiter: Verwaltete Regeln.
Wählen Sie Weiter: Richtlinieneinstellungen aus.
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.
Klicken Sie auf Weiter: Benutzerdefinierte Regeln.
Wählen Sie Benutzerdefinierte Regel hinzufügen aus.
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 Wählen Sie Hinzufügen.
Klicken Sie auf Weiter: Zuordnung.
Wählen Sie Ein Front Door-Profil zuordnen aus.
Wählen Sie für Front-End-Profil Ihr Front-End-Profil aus.
Wählen Sie unter Domäne die Domäne aus.
Wählen Sie Hinzufügen.
Klicken Sie auf Überprüfen + erstellen.
Nachdem Ihre Richtlinienüberprüfung bestanden ist, wählen Sie Erstellen aus.
Testen Ihrer WAF-Richtlinie
Nachdem die Bereitstellung der WAF-Richtlinien abgeschlossen ist, navigieren Sie in Azure Front Door zu Ihrem Front-End-Hostnamen.
Es sollte Ihre benutzerdefinierte Blockierungsmeldung angezeigt werden.
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
- 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. - 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
Verknüpfen einer WAF-Richtlinie mit einem Azure Front Door-Front-End-Host
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.
Stellen Sie mit dem folgenden Befehl eine Verbindung zu Azure her, und verwenden Sie dann ein interaktives Dialogfeld für die Anmeldung.
Connect-AzAccount
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
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 einer WAF-Richtlinie mit einem Azure Front Door-Front-End-Host
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.