Konfigurowanie reguły ograniczeń adresów IP za pomocą zapory aplikacji internetowej dla usługi Azure Front Door

W tym artykule pokazano, jak skonfigurować reguły ograniczeń adresów IP w zaporze aplikacji internetowej dla usługi Azure Front Door przy użyciu Azure Portal, interfejsu wiersza polecenia platformy Azure, Azure PowerShell lub szablonu usługi Azure Resource Manager.

Reguła kontroli dostępu oparta na adresach IP to niestandardowa reguła zapory aplikacji internetowej, która umożliwia kontrolowanie dostępu do aplikacji internetowych. Reguła określa listę adresów IP lub zakresów adresów IP w formacie CiDR (Classless Inter-Domain Routing).

Istnieją dwa typy zmiennych dopasowania w dopasowaniu adresu IP: RemoteAddr i SocketAddr. Zmienna RemoteAddr to oryginalny adres IP klienta, który jest zwykle wysyłany za pośrednictwem nagłówka X-Forwarded-For żądania. Zmienna to źródłowy adres IP, który widzi zapora SocketAddr aplikacji internetowej. Jeśli użytkownik znajduje się za serwerem proxy, SocketAddr często jest to adres serwera proxy.

Domyślnie aplikacja internetowa jest dostępna z Internetu. Jeśli chcesz ograniczyć dostęp do klientów z listy znanych adresów IP lub zakresów adresów IP, możesz utworzyć regułę dopasowywania adresów IP zawierającą listę adresów IP jako zgodne wartości i ustawia operator na Not (negate ma wartość true) i akcję na Block. Po zastosowaniu reguły ograniczenia adresu IP żądania pochodzące z adresów spoza tej listy dozwolonych otrzymują odpowiedź 403 Zabronione.

Konfigurowanie zasad zapory aplikacji internetowej przy użyciu Azure Portal

Wykonaj następujące kroki, aby skonfigurować zasady zapory aplikacji internetowej przy użyciu Azure Portal.

Wymagania wstępne

Utwórz profil usługi Azure Front Door, postępując zgodnie z instrukcjami opisanymi w przewodniku Szybki start: tworzenie wystąpienia usługi Azure Front Door dla globalnej aplikacji internetowej o wysokiej dostępności.

Tworzenie zasad zapory aplikacji internetowej

  1. W witrynie Azure Portal wybierz pozycję Utwórz zasób. Wprowadź zaporę aplikacji internetowej w polu wyszukiwania Usługi wyszukiwania i marketplace , a następnie wybierz klawisz Enter. Następnie wybierz pozycję Web Application Firewall (WAF).

  2. Wybierz przycisk Utwórz.

  3. Na stronie Tworzenie zasad zapory aplikacji internetowej użyj następujących wartości, aby ukończyć kartę Podstawowe .

    Ustawienie Wartość
    Zasady dla Globalna zapora aplikacji internetowej (Front Door).
    Warstwa drzwi frontonu Wybierz pozycję Premium lub Standardowa, aby dopasować warstwę usługi Azure Front Door.
    Subskrypcja Wybierz subskrypcję.
    Grupa zasobów Wybierz grupę zasobów, w której znajduje się wystąpienie usługi Azure Front Door.
    Nazwa zasady Wprowadź nazwę zasad.
    Stan zasad Zaznaczone.
    Tryb zasad Zapobiegania.
  4. Wybierz pozycję Dalej: Reguły zarządzane.

  5. Wybierz pozycję Dalej: Ustawienia zasad.

  6. Na karcie Ustawienia zasad wprowadź wartość Zablokowany! dla treści odpowiedzi Blokuj , aby zobaczyć, że reguła niestandardowa jest obowiązująca.

  7. Wybierz pozycję Dalej: Reguły niestandardowe.

  8. Wybierz pozycję Dodaj regułę niestandardową.

  9. Na stronie Dodawanie reguły niestandardowej użyj następujących wartości testowych, aby utworzyć regułę niestandardową.

    Ustawienie Wartość
    Nazwa reguły niestandardowej FdWafCustRule
    Stan Enabled (Włączony)
    Typ reguły Dopasowanie
    Priorytet 100
    Typ dopasowania Adres IP
    Dopasuj zmienną SocketAddr
    Operacja Nie zawiera
    Adres IP lub zakres 10.10.10.0/24
    Następnie Odmów ruchu

    Reguła niestandardowa

    Wybierz pozycję Dodaj.

  10. Wybierz pozycję Dalej: Skojarzenie.

  11. Wybierz pozycję Skojarz profil usługi Front Door.

  12. W polu Profil frontonu wybierz profil frontonu.

  13. W polu Domena wybierz domenę.

  14. Wybierz pozycję Dodaj.

  15. Wybierz pozycję Przejrzyj i utwórz.

  16. Po zakończeniu weryfikacji zasad wybierz pozycję Utwórz.

Testowanie zasad zapory aplikacji internetowej

  1. Po zakończeniu wdrażania zasad zapory aplikacji internetowej przejdź do nazwy hosta frontonu usługi Azure Front Door.

  2. Powinien zostać wyświetlony niestandardowy komunikat o bloku.

    Test reguły zapory aplikacji internetowej

    Uwaga

    Prywatny adres IP został celowo użyty w regule niestandardowej, aby zagwarantować, że reguła zostanie wyzwolona. W rzeczywistym wdrożeniu utwórz reguły zezwalania i odmowy przy użyciu adresów IP w określonej sytuacji.

Konfigurowanie zasad zapory aplikacji internetowej przy użyciu interfejsu wiersza polecenia platformy Azure

Wykonaj następujące kroki, aby skonfigurować zasady zapory aplikacji internetowej przy użyciu interfejsu wiersza polecenia platformy Azure.

Wymagania wstępne

Przed rozpoczęciem konfigurowania zasad ograniczeń adresów IP skonfiguruj środowisko interfejsu wiersza polecenia i utwórz profil usługi Azure Front Door.

Konfigurowanie środowiska interfejsu wiersza polecenia platformy Azure

  1. Zainstaluj interfejs wiersza polecenia platformy Azure lub użyj usługi Azure Cloud Shell. Usługa Azure Cloud Shell jest bezpłatną powłoką Bash, którą można uruchamiać bezpośrednio w witrynie Azure Portal. Ma ona wstępnie zainstalowany interfejs wiersza polecenia platformy Azure skonfigurowany do użycia z Twoim kontem. Wybierz przycisk Wypróbuj w poniższych poleceniach interfejsu wiersza polecenia. Następnie zaloguj się do konta platformy Azure w sesji Cloud Shell, która zostanie otwarta. Po rozpoczęciu sesji wprowadź polecenie az extension add --name front-door , aby dodać rozszerzenie usługi Azure Front Door.
  2. Jeśli używasz interfejsu wiersza polecenia lokalnie w programie Bash, zaloguj się do platformy Azure przy użyciu polecenia az login.

Tworzenie profilu usługi Azure Front Door

Utwórz profil usługi Azure Front Door, postępując zgodnie z instrukcjami opisanymi w przewodniku Szybki start: tworzenie wystąpienia usługi Azure Front Door dla globalnej aplikacji internetowej o wysokiej dostępności.

Tworzenie zasad zapory aplikacji internetowej

Utwórz zasady zapory aplikacji internetowej przy użyciu polecenia az network front-door waf-policy create . W poniższym przykładzie zastąp nazwę zasad IPAllowPolicyExampleCLI unikatową nazwą zasad.

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

Dodawanie niestandardowej reguły kontroli dostępu do adresów IP

Użyj polecenia az network front-door waf-policy custom-rule create , aby dodać niestandardową regułę kontroli dostępu ip dla utworzonych zasad zapory aplikacji internetowej.

W poniższych przykładach:

  • Zastąp wartość IPAllowPolicyExampleCLI unikatowymi zasadami utworzonymi wcześniej.
  • Zastąp ciąg ip-address-range-1, ip-address-range-2 własnym zakresem.

Najpierw utwórz regułę zezwalania na adres IP dla zasad utworzonych na podstawie poprzedniego kroku.

Uwaga

--defer jest wymagane, ponieważ reguła musi mieć warunek dopasowania, który ma zostać dodany w następnym 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

Następnie dodaj warunek dopasowania do reguły:

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

Znajdowanie identyfikatora zasad zapory aplikacji internetowej

Znajdź identyfikator zasad zapory aplikacji internetowej przy użyciu polecenia az network front-door waf-policy show . Zastąp wartość IPAllowPolicyExampleCLI w poniższym przykładzie unikatowymi utworzonymi wcześniej zasadami.

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

Ustaw identyfikator webApplicationFirewallPolicyLink usługi Azure Front Door na identyfikator zasad za pomocą polecenia az network front-door update . Zastąp wartość IPAllowPolicyExampleCLI unikatowymi zasadami utworzonymi wcześniej.

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>

W tym przykładzie zasady zapory aplikacji internetowej są stosowane do FrontendEndpoints[0]elementu . Zasady zapory aplikacji internetowej można połączyć z dowolnym frontonem.

Uwaga

Musisz ustawić WebApplicationFirewallPolicyLink właściwość tylko raz, aby połączyć zasady zapory aplikacji internetowej z frontonem usługi Azure Front Door. Kolejne aktualizacje zasad są automatycznie stosowane do frontonu.

Konfigurowanie zasad zapory aplikacji internetowej przy użyciu Azure PowerShell

Wykonaj następujące kroki, aby skonfigurować zasady zapory aplikacji internetowej przy użyciu Azure PowerShell.

Wymagania wstępne

Przed rozpoczęciem konfigurowania zasad ograniczeń adresów IP skonfiguruj środowisko programu PowerShell i utwórz profil usługi Azure Front Door.

Konfigurowanie środowiska programu PowerShell

Azure PowerShell udostępnia zestaw poleceń cmdlet, które używają modelu usługi Azure Resource Manager do zarządzania zasobami platformy Azure.

Możesz zainstalować program Azure PowerShell w maszynie lokalnej i używać go w dowolnej sesji programu PowerShell. Postępuj zgodnie z instrukcjami na stronie, aby zalogować się do programu PowerShell przy użyciu poświadczeń platformy Azure, a następnie zainstalować moduł Az.

  1. Połącz się z platformą Azure przy użyciu następującego polecenia, a następnie użyj interaktywnego okna dialogowego, aby się zalogować.

    Connect-AzAccount
    
  2. Przed zainstalowaniem modułu usługi Azure Front Door upewnij się, że zainstalowano bieżącą wersję modułu PowerShellGet. Uruchom następujące polecenie, a następnie otwórz ponownie program PowerShell.

    Install-Module PowerShellGet -Force -AllowClobber
    
  3. Zainstaluj moduł Az.FrontDoor przy użyciu następującego polecenia:

    Install-Module -Name Az.FrontDoor
    

Tworzenie profilu usługi Azure Front Door

Utwórz profil usługi Azure Front Door, postępując zgodnie z instrukcjami opisanymi w przewodniku Szybki start: tworzenie usługi Front Door dla globalnej aplikacji internetowej o wysokiej dostępności.

Definiowanie warunku dopasowania adresu IP

Użyj polecenia New-AzFrontDoorWafMatchConditionObject , aby zdefiniować warunek dopasowania adresu IP. W poniższym przykładzie zastąp ciąg ip-address-range-1, ip-address-range-2 własnym zakresem.

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

Tworzenie niestandardowej reguły zezwalania na adres IP

Użyj polecenia New-AzFrontDoorWafCustomRuleObject , aby zdefiniować akcję i ustawić priorytet. W poniższym przykładzie żądania nie pochodzą z adresów IP klienta, które pasują do listy, są blokowane.

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

Konfigurowanie zasad zapory aplikacji internetowej

Znajdź nazwę grupy zasobów zawierającej profil usługi Azure Front Door przy użyciu polecenia Get-AzResourceGroup. Następnie skonfiguruj zasady zapory aplikacji internetowej przy użyciu reguły adresu IP przy użyciu polecenia New-AzFrontDoorWafPolicy.

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

Porada

W przypadku istniejących zasad zapory aplikacji internetowej można zaktualizować zasady za pomocą polecenia Update-AzFrontDoorWafPolicy .

Połącz obiekt zasad zapory aplikacji internetowej z istniejącym hostem frontonu i zaktualizuj właściwości usługi Azure Front Door. Najpierw pobierz obiekt usługi Azure Front Door przy użyciu polecenia Get-AzFrontDoor. Następnie ustaw WebApplicationFirewallPolicyLink właściwość na identyfikator zasobu klasy $IPAllowPolicyExamplePS, utworzony w poprzednim kroku za pomocą polecenia Set-AzFrontDoor .

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

Uwaga

W tym przykładzie zasady zapory aplikacji internetowej są stosowane do FrontendEndpoints[0]elementu . Zasady zapory aplikacji internetowej można połączyć z dowolnym frontonem. Musisz ustawić WebApplicationFirewallPolicyLink właściwość tylko raz, aby połączyć zasady zapory aplikacji internetowej z frontonem usługi Azure Front Door. Kolejne aktualizacje zasad są automatycznie stosowane do frontonu.

Konfigurowanie zasad zapory aplikacji internetowej przy użyciu szablonu Resource Manager

Aby wyświetlić szablon, który tworzy zasady usługi Azure Front Door i zasady zapory aplikacji internetowej z niestandardowymi regułami ograniczeń adresów IP, przejdź do usługi GitHub.

Następne kroki

Dowiedz się, jak utworzyć profil usługi Azure Front Door.