В этой статье показано, как настроить правила ограничения IP-адресов в брандмауэре веб-приложения (WAF) для Azure Front Door с помощью портала Azure, Azure CLI, Azure PowerShell или шаблона Azure Resource Manager.
Правило управления доступом на основе IP-адреса — это пользовательское правило WAF, которое позволяет управлять доступом к веб-приложениям. Правило задает список IP-адресов или диапазонов IP-адресов в формате бесклассовой маршрутизации Inter-Domain (CIDR).
По умолчанию ваше веб-приложение доступно из Интернета. Если вы хотите ограничить доступ к клиентам из списка известных IP-адресов или диапазонов IP-адресов, вы можете создать правило сопоставления IP-адресов, которое содержит список IP-адресов в качестве совпадающих значений и задает оператор в положение Not
(отрицание равно true) и действие в положение Block
. После применения правила ограничения IP-адресов запросы, исходящие с адресов, не входящих в этот список разрешенных, получают ответ 403 Запрещено.
Выполните следующие действия, чтобы настроить политику WAF с помощью портала Azure.
Предпосылки
Создайте профиль Azure Front Door, следуя инструкциям, описанным в разделе Краткое руководство: создание экземпляра Azure Front Door для глобального веб-приложения с высоким уровнем доступности.
Создание политики WAF
На портале Azure выберите Создать ресурс. Введите брандмауэр веб-приложения в поле поисковые службы и маркетплейс и нажмите клавишу Enter. Затем выберите Web Application Firewall (WAF).
Нажмите кнопку "Создать".
На странице Создание политики WAF используйте следующие значения для заполнения вкладки Основы .
Настройки |
Ценность |
Политика для |
Глобальный межсетевой экран веб-приложений (Front Door). |
Уровень передней двери |
Выберите "Премиум" или "Стандартный" в соответствии с вашим уровнем Azure Front Door. |
Подписка |
Выберите подписку. |
Группа ресурсов |
Выберите группу ресурсов, в которой находится экземпляр Azure Front Door. |
Имя политики |
Введите название полиса. |
Состояние политики |
Выбрано |
Режим политики |
Предотвращение |
Выберите Далее: Управляемые правила.
Выберите Далее: Параметры политики.
На вкладке Настройки политики введите Вы были заблокированы! в теле ответа Блокировать , чтобы вы могли видеть, что ваше пользовательское правило вступило в силу.
Выберите Далее: Пользовательские правила.
Выберите Добавить пользовательское правило.
На странице Добавление пользовательского правила используйте следующие тестовые значения для создания настраиваемого правила.
Настройки |
Ценность |
Имя пользовательского правила |
Правило FdWafCustRule |
Состояние |
Включен |
Тип правила |
Матч |
Приоритет |
100 |
Тип сопоставления |
IP-адрес |
Сопоставление переменных |
SocketAddr |
Операция |
Не содержит |
IP-адрес или диапазон |
10.10.10.0/24 |
Затем |
Запретить трафик |
Нажмите кнопку "Добавить".
Выберите Далее: Ассоциация.
Выберите Связать профиль входной двери.
В поле Профиль фронтенда выберите профиль фронтенда.
В поле Домен выберите домен.
Нажмите кнопку "Добавить".
Выберите Review + create.
После того как проверка политики пройдет успешно, нажмите кнопку Создать.
Протестируйте политику WAF
После того, как развертывание политики WAF завершится, перейдите к адресу хоста Azure Front Door.
Вы должны увидеть сообщение о пользовательской блокировке.
Замечание
Частный IP-адрес был намеренно использован в пользовательском правиле, чтобы гарантировать срабатывание правила. В реальном развертывании создайте разрешающие и запрещающие правила, используя IP-адреса для конкретной ситуации.
Выполните следующие действия, чтобы настроить политику WAF с помощью Azure CLI.
Предпосылки
Прежде чем приступить к настройке политики ограничения IP-адресов, настройте среду CLI и создайте профиль Azure Front Door.
Настройка среды Azure CLI
- Установите Azure CLI или используйте Azure Cloud Shell. Azure Cloud Shell — это бесплатная оболочка Bash, которую можно запускать непосредственно на портале Azure. Она включает предварительно установленный интерфейс Azure CLI и настроена для использования с вашей учетной записью. Нажмите кнопку «Попробовать » в следующих командах CLI. Затем войдите в свою учетную запись Azure в открывшемся сеансе Cloud Shell. После начала сеанса войдите
az extension add --name front-door
, чтобы добавить расширение Azure Front Door.
- Если вы используете интерфейс командной строки локально в Bash, войдите в Azure с помощью
az login
.
Создание профиля Azure Front Door
Создайте профиль Azure Front Door, следуя инструкциям, описанным в разделе Краткое руководство: создание экземпляра Azure Front Door для глобального веб-приложения с высоким уровнем доступности.
Создание политики WAF
Создайте политику WAF с помощью команды az network front-door waf-policy create .
В следующем примере замените имя политики IPAllowPolicyExampleCLI уникальным именем политики.
az network front-door waf-policy create \
--resource-group <resource-group-name> \
--subscription <subscription ID> \
--name IPAllowPolicyExampleCLI
Добавление пользовательского правила управления доступом по IP-адресу
Используйте команду az network front-door waf-policy custom-rule create , чтобы добавить настраиваемое правило управления доступом по IP-адресу для созданной политики WAF.
В следующих примерах:
- Замените IPAllowPolicyExampleCLI уникальной политикой, созданной ранее.
- Замените ip-address-range-1, ip-address-range-2 на свой собственный диапазон.
Сначала создайте правило разрешения IP-адресов для политики, созданной на предыдущем шаге.
Замечание
--defer
является обязательным, потому что правило должно иметь условие соответствия, которое должно быть добавлено на следующем шаге.
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
Далее добавьте в правило условие соответствия:
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
Поиск идентификатора политики WAF
Найдите идентификатор политики WAF с помощью команды az network front-door waf-policy show . Замените IPAllowPolicyExampleCLI в следующем примере уникальной политикой, созданной ранее.
az network front-door waf-policy show \
--resource-group <resource-group-name> \
--name IPAllowPolicyExampleCLI
Связывание политики WAF с интерфейсным узлом Azure Front Door
Задайте значение идентификатора политики для Azure Front Door WebApplicationFirewallPolicyLink с помощью команды az network front-door update.
Замените IPAllowPolicyExampleCLI уникальной политикой, созданной ранее.
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>
В этом примере политика WAF применяется к FrontendEndpoints[0]
. Вы можете связать политику WAF с любым из ваших внешних интерфейсов.
Замечание
Свойство WebApplicationFirewallPolicyLink
необходимо задать только один раз, чтобы связать политику WAF с внешним интерфейсом Azure Front Door. Последующие изменения в политике будут применяться к внешнему интерфейсу автоматически.
Выполните следующие действия, чтобы настроить политику WAF с помощью Azure PowerShell.
Предпосылки
Прежде чем приступить к настройке политики ограничения IP-адресов, настройте среду PowerShell и создайте профиль Azure Front Door.
Настройка среды PowerShell
Azure PowerShell предоставляет набор командлетов, использующих модель Azure Resource Manager для управления ресурсами Azure.
Вы можете установить Azure PowerShell на локальном компьютере и использовать его в любом сеансе PowerShell. Следуйте инструкциям на странице, чтобы войти в PowerShell с помощью учетных данных Azure, а затем установите модуль модуля Az PowerShell.
Подключитесь к Azure с помощью следующей команды, а затем используйте интерактивное диалоговое окно для входа.
Connect-AzAccount
Прежде чем устанавливать модуль Azure Front Door, убедитесь, что у вас установлена текущая версия модуля PowerShellGet. Выполните следующую команду, а затем повторно откройте PowerShell.
Install-Module PowerShellGet -Force -AllowClobber
Установите модуль Az.FrontDoor с помощью следующей команды:
Install-Module -Name Az.FrontDoor
Создание профиля Azure Front Door
Создайте профиль Azure Front Door, следуя инструкциям, описанным в разделе Краткое руководство: создание Front Door для глобального веб-приложения с высоким уровнем доступности.
Определение условия сопоставления IP-адресов
Используйте команду New-AzFrontDoorWafMatchConditionObject для определения условия соответствия IP.
В следующем примере замените ip-address-range-1, ip-address-range-2 на свой собственный диапазон.
$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1
Создание пользовательского правила разрешения IP-адресов
Используйте команду New-AzFrontDoorWafCustomRuleObject , чтобы определить действие и задать приоритет. В следующем примере блокируются запросы не с клиентских IP-адресов, которые соответствуют списку.
$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1
С помощью команды Get-AzResourceGroup
найдите имя группы ресурсов, содержащей профиль Azure Front Door. Затем настройте политику WAF, используя правило IP-адреса, через New-AzFrontDoorWafPolicy.
$IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
-Name "IPRestrictionExamplePS" `
-resourceGroupName <resource-group-name> `
-Customrule $IPAllowRule`
-Mode Prevention `
-EnabledState Enabled
Связывание политики WAF с интерфейсным узлом Azure Front Door
Свяжите объект политики WAF с существующим интерфейсным узлом и обновите свойства Azure Front Door. Сначала получите объект Azure Front Door с помощью команды Get-AzFrontDoor. Затем установите свойство WebApplicationFirewallPolicyLink
на идентификатор ресурса $IPAllowPolicyExamplePS
, созданный на предыдущем шаге, с помощью команды Set-AzFrontDoor.
$FrontDoorObjectExample = Get-AzFrontDoor `
-ResourceGroupName <resource-group-name> `
-Name $frontDoorName
$FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]
Замечание
В этом примере политика WAF применяется к FrontendEndpoints[0]
. Вы можете связать политику WAF с любым из ваших внешних интерфейсов. Свойство WebApplicationFirewallPolicyLink
необходимо задать только один раз, чтобы связать политику WAF с внешним интерфейсом Azure Front Door. Последующие изменения в политике будут применяться к внешнему интерфейсу автоматически.
Чтобы просмотреть шаблон Resource Manager, который создает политику Azure Front Door и политику WAF с настраиваемыми правилами ограничения IP-адресов, перейдите на GitHub.