Konfigurace pravidla omezení IP adres s WAF pro službu Azure Front Door

V tomto článku se dozvíte, jak nakonfigurovat pravidla omezení IP adres v Firewallu webových aplikací (WAF) pro službu Azure Front Door pomocí Azure Portal, Azure CLI, Azure PowerShell nebo šablony Azure Resource Manager.

Pravidlo řízení přístupu na základě IP adresy je vlastní pravidlo WAF, které umožňuje řídit přístup k webovým aplikacím. Pravidlo určuje seznam IP adres nebo rozsahů IP adres ve formátu CIDR (Classless Inter-Domain Routing).

Ve shodě IP adresy existují dva typy proměnných shody: RemoteAddr a SocketAddr. Proměnná RemoteAddr je původní IP adresa klienta, která se obvykle odesílá prostřednictvím hlavičky X-Forwarded-For požadavku. Proměnná SocketAddr je zdrojová IP adresa, kterou WAF vidí. Pokud je váš uživatel za proxy serverem, SocketAddr často se jedná o adresu proxy serveru.

Ve výchozím nastavení je webová aplikace přístupná z internetu. Pokud chcete omezit přístup na klienty ze seznamu známých IP adres nebo rozsahů IP adres, můžete vytvořit pravidlo párování IP adres, které bude obsahovat seznam IP adres jako odpovídající hodnoty a nastaví operátor na Not (negování je true) a akci na Block. Po použití pravidla omezení IP adres obdrží požadavky, které pocházejí z adres mimo tento seznam povolených, odpověď 403 Zakázáno.

Konfigurace zásad WAF pomocí Azure Portal

Postupujte podle těchto kroků a nakonfigurujte zásady WAF pomocí Azure Portal.

Požadavky

Vytvořte profil služby Azure Front Door podle pokynů popsaných v tématu Rychlý start: Vytvoření instance služby Azure Front Door pro globální webovou aplikaci s vysokou dostupností.

Vytvoření zásad WAF

  1. Na Azure Portal vyberte Vytvořit prostředek. Do vyhledávacího pole Vyhledávací služby a marketplace zadejte Firewall webových aplikací a stiskněte Enter. Pak vyberte Web Application Firewall (WAF).

  2. Vyberte Vytvořit.

  3. Na stránce Vytvořit zásadu WAF použijte k dokončení karty Základy následující hodnoty.

    Nastavení Hodnota
    Zásady pro Global WAF (Front Door).
    Úroveň služby Front Door Vyberte Premium nebo Standard, aby odpovídaly vaší úrovni služby Azure Front Door.
    Předplatné Vyberte své předplatné.
    Skupina prostředků Vyberte skupinu prostředků, ve které se nachází vaše instance služby Azure Front Door.
    Název zásad Zadejte název zásady.
    Stav zásad Vybráno
    Režim zásad Prevence.
  4. Vyberte Další: Spravovaná pravidla.

  5. Vyberte Další: Nastavení zásad.

  6. Na kartě Nastavení zásad jako Text odpovědi Blokovat zadejte Blokovali jste! , abyste viděli, že vaše vlastní pravidlo je v platnosti.

  7. Vyberte Další: Vlastní pravidla.

  8. Vyberte Přidat vlastní pravidlo.

  9. Na stránce Přidat vlastní pravidlo vytvořte vlastní pravidlo pomocí následujících testovacích hodnot.

    Nastavení Hodnota
    Název vlastního pravidla FdWafCustRule
    Stav Povoleno
    Typ pravidla Shoda
    Priorita 100
    Typ shody IP adresa
    Shoda s proměnnou SocketAddr
    Operace Neobsahuje
    IP adresa nebo rozsah IP adres 10.10.10.0/24
    Pak... Odepření provozu

    Vlastní pravidlo

    Vyberte Přidat.

  10. Vyberte Další: Přidružení.

  11. Vyberte Přidružit profil služby Front Door.

  12. V části Profil front-endu vyberte svůj front-endový profil.

  13. V části Doména vyberte doménu.

  14. Vyberte Přidat.

  15. Vyberte Zkontrolovat a vytvořit.

  16. Po ověření zásad vyberte Vytvořit.

Testování zásad WAF

  1. Po dokončení nasazení zásad WAF přejděte na název hostitele front-endu služby Azure Front Door.

  2. Měla by se zobrazit zpráva o vašem vlastním blokování.

    Test pravidla WAF

    Poznámka

    Privátní IP adresa byla záměrně použita ve vlastním pravidle, aby se zajistilo, že se pravidlo aktivuje. Ve skutečném nasazení vytvořte pravidla povolení a zamítnutí pomocí IP adres pro vaši konkrétní situaci.

Konfigurace zásad WAF pomocí Azure CLI

Postupujte podle těchto kroků a nakonfigurujte zásady WAF pomocí Azure CLI.

Požadavky

Než začnete konfigurovat zásady omezení IP adres, nastavte prostředí rozhraní příkazového řádku a vytvořte profil služby Azure Front Door.

Nastavení prostředí Azure CLI

  1. Nainstalujte Azure CLI nebo použijte Azure Cloud Shell. Azure Cloud Shell je volně dostupné prostředí Bash, které můžete spustit přímo z webu Azure Portal. Má předinstalované rozhraní Azure CLI, které je nakonfigurované pro použití s vaším účtem. V následujících příkazech rozhraní příkazového řádku vyberte tlačítko Vyzkoušet . Pak se přihlaste ke svému účtu Azure v Cloud Shell relaci, která se otevře. Po spuštění relace zadáním příkazu az extension add --name front-door přidejte rozšíření Azure Front Door.
  2. Pokud používáte rozhraní příkazového řádku místně v Prostředí Bash, přihlaste se k Azure pomocí .az login

Vytvoření profilu služby Azure Front Door

Vytvořte profil služby Azure Front Door podle pokynů popsaných v tématu Rychlý start: Vytvoření instance služby Azure Front Door pro globální webovou aplikaci s vysokou dostupností.

Vytvoření zásad WAF

Vytvořte zásadu WAF pomocí příkazu az network front-door waf-policy create . V následujícím příkladu nahraďte název zásady IPAllowPolicyExampleCLI jedinečným názvem zásady.

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

Přidání vlastního pravidla řízení přístupu IP

Pomocí příkazu az network front-door waf-policy custom-rule create přidejte vlastní pravidlo řízení přístupu IP pro zásadu WAF, kterou jste vytvořili.

V následujících příkladech:

  • Nahraďte IPAllowPolicyExampleCLI jedinečnými zásadami vytvořenými dříve.
  • Nahraďte ip-address-range-1, IP-address-range-2 vlastním rozsahem.

Nejprve vytvořte pravidlo povolení PROTOKOLU IP pro zásadu vytvořenou v předchozím kroku.

Poznámka

--defer je povinný, protože pravidlo musí mít podmínku shody, která se přidá v dalším kroku.

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

Dále do pravidla přidejte podmínku shody:

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

Vyhledání ID zásady WAF

ID zásady WAF můžete najít pomocí příkazu az network front-door waf-policy show . Nahraďte IPAllowPolicyExampleCLI v následujícím příkladu jedinečnými zásadami, které jste vytvořili dříve.

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

Pomocí příkazu az network front-door update nastavte AZURE Front Door WebApplicationFirewallPolicyLink ID na ID zásady. Nahraďte IPAllowPolicyExampleCLI jedinečnými zásadami, které jste vytvořili dříve.

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>

V tomto příkladu se zásady WAF použijí na FrontendEndpoints[0]. Zásady WAF můžete propojit s libovolným front-endem.

Poznámka

Pokud chcete propojit zásady WAF s front-endem služby Azure Front Door, musíte vlastnost nastavit WebApplicationFirewallPolicyLink jenom jednou. Následné aktualizace zásad se automaticky použijí na front-end.

Konfigurace zásad WAF pomocí Azure PowerShell

Pokud chcete nakonfigurovat zásady WAF pomocí Azure PowerShell, postupujte podle těchto kroků.

Požadavky

Než začnete konfigurovat zásady omezení IP adres, nastavte prostředí PowerShellu a vytvořte profil služby Azure Front Door.

Nastavení prostředí PowerShell

Azure PowerShell poskytuje sadu rutin, které ke správě prostředků Azure používají model Azure Resource Manager.

Azure PowerShell můžete nainstalovat na místní počítač a používat v jakékoli relaci PowerShellu. Podle pokynů na stránce se přihlaste k PowerShellu pomocí svých přihlašovacích údajů Azure a pak nainstalujte modul Az.

  1. Připojte se k Azure pomocí následujícího příkazu a pak se pomocí interaktivního dialogového okna přihlaste.

    Connect-AzAccount
    
  2. Před instalací modulu Azure Front Door se ujistěte, že máte nainstalovanou aktuální verzi modulu PowerShellGet. Spusťte následující příkaz a znovu otevřete PowerShell.

    Install-Module PowerShellGet -Force -AllowClobber
    
  3. Pomocí následujícího příkazu nainstalujte modul Az.FrontDoor:

    Install-Module -Name Az.FrontDoor
    

Vytvoření profilu služby Azure Front Door

Vytvořte profil služby Azure Front Door podle pokynů popsaných v tématu Rychlý start: Vytvoření služby Front Door pro globální webovou aplikaci s vysokou dostupností.

Definování podmínky shody IP adres

K definování podmínky shody IP adres použijte příkaz New-AzFrontDoorWafMatchConditionObject . V následujícím příkladu nahraďte ip-address-range-1, ip-address-range-2 vlastním rozsahem.

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

Vytvoření vlastního pravidla povolení IP adres

Pomocí příkazu New-AzFrontDoorWafCustomRuleObject definujte akci a nastavte prioritu. V následujícím příkladu jsou zablokované požadavky, které neodejdou z IP adres klientů, které odpovídají seznamu.

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

Konfigurace zásad WAF

Pomocí příkazu vyhledejte název skupiny prostředků, která obsahuje profil Get-AzResourceGroupslužby Azure Front Door. Dále nakonfigurujte zásadu WAF s pravidlem IP adresy pomocí rutiny New-AzFrontDoorWafPolicy.

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

Tip

U existujících zásad WAF můžete k aktualizaci zásad použít Rutinu Update-AzFrontDoorWafPolicy .

Propojte objekt zásad WAF s existujícím hostitelem front-endu a aktualizujte vlastnosti služby Azure Front Door. Nejprve pomocí rutiny Get-AzFrontDoor načtěte objekt služby Azure Front Door. Dále pomocí příkazu Set-AzFrontDoor nastavte WebApplicationFirewallPolicyLink vlastnost na ID $IPAllowPolicyExamplePSprostředku vytvořeného v předchozím kroku.

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

Poznámka

V tomto příkladu se zásady WAF použijí na FrontendEndpoints[0]. Zásady WAF můžete propojit s libovolným front-endem. Pokud chcete propojit zásady WAF s front-endem služby Azure Front Door, musíte vlastnost nastavit WebApplicationFirewallPolicyLink jenom jednou. Následné aktualizace zásad se automaticky použijí na front-end.

Konfigurace zásad WAF pomocí šablony Resource Manager

Pokud chcete zobrazit šablonu, která vytvoří zásadu služby Azure Front Door a zásadu WAF s vlastními pravidly omezení IP adres, přejděte na GitHub.

Další kroky

Zjistěte, jak vytvořit profil služby Azure Front Door.