В этой статье показано, как настроить правила ограничения IP-адресов в брандмауэре веб-приложения (WAF) для Azure Front Door с помощью портал Azure, Azure CLI, Azure PowerShell или шаблона Azure Resource Manager.
Правило управления доступом на основе IP-адресов — это настраиваемое правило WAF, позволяющее управлять доступом к веб-приложениям. Правило задает список IP-адресов или диапазонов IP-адресов в формате маршрутизации без класса между доменами (CIDR).
По умолчанию веб-приложение доступно из Интернета. Если вы хотите ограничить доступ к клиентам из списка известных IP-адресов или диапазонов IP-адресов, можно создать правило сопоставления IP-адресов, которое содержит список IP-адресов в качестве соответствующих значений и задает оператору значение Not
(неуверенно) и действие.Block
После применения правила ограничения IP-адресов запросы, поступающие с адресов, не входящих в список разрешенных, будут получать ответ 403 Forbidden.
Выполните следующие действия, чтобы настроить политику WAF с помощью портал Azure.
Необходимые компоненты
Создайте профиль Azure Front Door, следуя инструкциям, описанным в кратком руководстве. Создание экземпляра Azure Front Door для высокодоступного глобального веб-приложения.
Создание политики WAF
На портале Azure выберите Создать ресурс. Введите брандмауэр веб-приложения в поле поиска служба и Marketplace и нажмите клавишу ВВОД. Затем выберите Брандмауэр веб-приложений (WAF).
Нажмите кнопку создания.
На странице "Создание политики WAF" используйте следующие значения, чтобы завершить вкладку "Основные сведения".
Параметр |
Значение |
Объект политики |
Global WAF (Front Door). |
Передний уровень двери |
Выберите "Премиум" или "Стандартный", чтобы соответствовать уровню Azure Front Door. |
Отток подписок |
Выберите свою подписку. |
Группа ресурсов |
Выберите группу ресурсов, в которой находится экземпляр Azure Front Door. |
Имя политики |
Введите имя политики. |
Состояние политики |
Выбрано |
Режим политики |
Предотвращение |
Выберите Далее: управляемые правила.
Нажмите кнопку "Далее": параметры политики.
На вкладке "Параметры политики" введите "Вы были заблокированы!", чтобы увидеть, что настраиваемое правило действует.
Выберите Далее: настраиваемые правила.
Выберите Добавить настраиваемое правило.
На странице "Добавление настраиваемого правила" используйте следующие тестовые значения для создания настраиваемого правила.
Параметр |
Значение |
Имя пользовательского правила |
FdWafCustRule |
Состояние |
Включен |
Тип правила |
Поиск совпадений (Match) |
Приоритет |
100 |
Тип соответствия |
IP-адрес |
Сопоставление переменных |
SocketAddr |
Операция |
Не содержит |
IP-адрес или диапазон адресов |
10.10.10.0/24 |
Следующее действие |
Запретить трафик |
Выберите Добавить.
Выберите Далее: связь.
Выберите "Связать профиль front door".
Для профиля внешнего интерфейса выберите внешний профиль.
Для домена выберите домен.
Выберите Добавить.
Выберите Review + create (Просмотреть и создать).
После того, как проверка политики завершится, выберите Создать.
Проверка политики WAF
После завершения развертывания политики WAF перейдите к имени внешнего узла Azure Front Door.
Вы должны увидеть настроенное вами сообщение о блокировке.
Примечание.
В настраиваемом правиле был намеренно использован частный IP-адрес, чтобы гарантировать срабатывание этого правила. В фактическом развертывании создайте правила разрешения и запрета с помощью IP-адресов для конкретной ситуации.
Выполните следующие действия, чтобы настроить политику WAF с помощью Azure CLI.
Необходимые компоненты
Прежде чем приступить к настройке политики ограничения IP-адресов, настройте среду интерфейса командной строки и создайте профиль Azure Front Door.
Настройка среды интерфейса командной строки Azure
- Установите Azure CLI или используйте Azure Cloud Shell. Azure Cloud Shell — это бесплатная оболочка Bash, которую можно запускать непосредственно на портале Azure. Она включает предварительно установленный интерфейс Azure 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-адресов
Используйте команду create 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
Для идентификатора политики установите значение идентификатора WebApplicationFirewallPolicyLink службы Azure Front Door, используя команду 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-адресов
Чтобы определить условие соответствия IP-адресов, используйте команду New-AzFrontDoorWafMatchConditionObject.
В примере ниже замените 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. Затем с помощью команды New-AzFrontDoorWafPolicy настройте политику WAF с правилом для IP-адресов.
$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.