W tym artykule przedstawiono sposób konfigurowania reguł ograniczeń adresów IP w zaporze aplikacji internetowej (WAF) dla usługi Azure Front Door przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu 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).
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 pasujące wartości i ustawia operator na Not
(negate ma wartość true) i akcję na Block
. Po zastosowaniu reguły ograniczeń adresów IP żądania pochodzące z adresów spoza tej listy dozwolonych otrzymają odpowiedź 403 Zabronione.
Wykonaj następujące kroki, aby skonfigurować zasady zapory aplikacji internetowej przy użyciu witryny 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
W witrynie Azure Portal wybierz pozycję Utwórz zasób. Wprowadź zaporę aplikacji internetowej w polu wyszukiwania usługa wyszukiwania i witrynie Marketplace, a następnie wybierz Enter. Następnie wybierz pozycję Zapora aplikacji internetowej (WAF).
Wybierz pozycję Utwórz.
Na stronie Tworzenie zasad zapory aplikacji internetowej użyj następujących wartości, aby ukończyć kartę Podstawy.
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 |
Wybrano |
Tryb zasad |
Zapobieganie |
Wybierz pozycję Dalej: Reguły zarządzane.
Wybierz pozycję Dalej: Ustawienia zasad.
Na karcie Ustawienia zasad wprowadź ciąg Zablokowane! w polu Treść odpowiedzi Blokuj, aby zobaczyć, że reguła niestandardowa działa.
Wybierz pozycję Dalej: Reguły niestandardowe.
Wybierz pozycję Dodaj regułę niestandardową.
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 |
Włączona |
Typ reguły |
Match |
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 |
Wybierz Dodaj.
Wybierz pozycję Dalej: Skojarzenie.
Wybierz pozycję Skojarz profil usługi Front Door.
W polu Profil frontonu wybierz profil frontonu.
W polu Domena wybierz domenę.
Wybierz Dodaj.
Wybierz pozycję Przejrzyj i utwórz.
Po zakończeniu walidacji zasad wybierz pozycję Utwórz.
Testowanie zasad zapory aplikacji internetowej
Po zakończeniu wdrażania zasad zapory aplikacji internetowej przejdź do nazwy hosta frontonu usługi Azure Front Door.
Powinien zostać wyświetlony niestandardowy komunikat o bloku.
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.
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
- 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 kolejnych poleceniach interfejsu wiersza polecenia. Następnie zaloguj się do konta platformy Azure w sesji usługi 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.
- Jeśli używasz interfejsu wiersza polecenia lokalnie w powłoce 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 następujących 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 w poprzednim 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
Łączenie zasad zapory aplikacji internetowej z hostem frontonu usługi Azure Front Door
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]
usługi . Zasady zapory aplikacji internetowej można połączyć z dowolnym frontonem.
Uwaga
Należy 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.
Wykonaj następujące kroki, aby skonfigurować zasady zapory aplikacji internetowej przy użyciu programu 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
Program 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 programu PowerShell.
Połącz się z platformą Azure przy użyciu następującego polecenia, a następnie zaloguj się za pomocą interaktywnego okna dialogowego.
Connect-AzAccount
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
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
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 z regułą adresu IP przy użyciu polecenia New-AzFrontDoorWafPolicy.
$IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
-Name "IPRestrictionExamplePS" `
-resourceGroupName <resource-group-name> `
-Customrule $IPAllowRule`
-Mode Prevention `
-EnabledState Enabled
Łączenie zasad zapory aplikacji internetowej z hostem frontonu usługi Azure Front Door
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 $IPAllowPolicyExamplePS
zasobu , 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]
usługi . Zasady zapory aplikacji internetowej można połączyć z dowolnym frontonem. Należy 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.
Aby wyświetlić szablon usługi Resource Manager, który tworzy zasady usługi Azure Front Door i zasady zapory aplikacji internetowej z niestandardowymi regułami ograniczeń adresów IP, przejdź do witryny GitHub.