Настройка правила ограничения IP-адресов с помощью WAF для Azure Front Door
В этой статье показано, как настроить правила ограничения IP-адресов в брандмауэре веб-приложения (WAF) для Azure Front Door с помощью портал Azure, Azure CLI, Azure PowerShell или шаблона Azure Resource Manager.
Правило управления доступом на основе IP-адресов — это настраиваемое правило WAF, позволяющее управлять доступом к веб-приложениям. Правило указывает список IP-адресов или диапазонов IP-адресов в формате CIDR( бесклассовая маршрутизация Inter-Domain).
Существует два типа переменных соответствия в сопоставлении IP-адресов: RemoteAddr
и SocketAddr
. Переменная RemoteAddr
— это исходный IP-адрес клиента, который обычно отправляется через X-Forwarded-For
заголовок запроса. Переменная SocketAddr
— это исходный IP-адрес, который видит WAF. Если пользователь находится за прокси-сервером, SocketAddr
часто является адресом прокси-сервера.
По умолчанию веб-приложение доступно из Интернета. Если вы хотите ограничить доступ к клиентам из списка известных IP-адресов или диапазонов IP-адресов, можно создать правило сопоставления IP-адресов, содержащее список IP-адресов в качестве соответствующих значений и задающее оператору Not
значение (отмена имеет значение true), а для действия — значение Block
. После применения правила ограничения IP-адресов запросы, поступающие с адресов, не входящих в список разрешенных, будут получать ответ 403 Forbidden.
Настройка политики WAF с помощью портала Azure
Выполните следующие действия, чтобы настроить политику WAF с помощью портал Azure.
Предварительные требования
Создайте профиль Azure Front Door, следуя инструкциям, приведенным в статье Краткое руководство. Создание экземпляра Azure Front Door для глобального веб-приложения высокой доступности.
Создание политики WAF
На портале Azure выберите Создать ресурс. Введите брандмауэр веб-приложения в поле поиска службы поиска и Marketplace и нажмите клавишу ВВОД. Затем выберите Брандмауэр веб-приложений (WAF).
Нажмите кнопку создания.
На странице Создание политики WAF используйте следующие значения, чтобы заполнить вкладку Основные сведения .
Параметр Значение Объект политики Глобальный WAF (Front Door). Уровень front door Выберите Премиум или Стандартный, чтобы соответствовать уровню Azure Front Door. Подписка Выберите свою подписку. Группа ресурсов Выберите группу ресурсов, в которой находится экземпляр Azure Front Door. Имя политики Введите имя политики. Состояние политики Выбрано. Режим политики Предотвращение. Выберите Далее: управляемые правила.
Выберите Далее: параметры политики.
На вкладке Параметры политики введите You'been blocked! (Вы заблокированы! ) в поле Блокировать текст ответа , чтобы увидеть, что ваше настраиваемое правило действует.
Выберите Далее: настраиваемые правила.
Выберите Добавить настраиваемое правило.
На странице Добавление настраиваемого правила используйте следующие тестовые значения, чтобы создать пользовательское правило.
Параметр Значение Имя настраиваемого правила FdWafCustRule Состояние Активировано Тип правила Соответствует Приоритет 100 Тип соответствия IP-адрес Переменная сопоставления SocketAddr Операция Не содержит IP-адрес или диапазон адресов 10.10.10.0/24 Следующее действие Запретить трафик Выберите Добавить.
Выберите Далее: связь.
Выберите Связать профиль Front door.
В поле Внешний профиль выберите профиль внешнего интерфейса.
В поле Домен выберите домен.
Выберите Добавить.
Выберите Review + create (Просмотреть и создать).
После того, как проверка политики завершится, выберите Создать.
Проверка политики WAF
После завершения развертывания политики WAF перейдите к имени внешнего узла Azure Front Door.
Вы должны увидеть настроенное вами сообщение о блокировке.
Примечание
В настраиваемом правиле был намеренно использован частный IP-адрес, чтобы гарантировать срабатывание этого правила. В фактическом развертывании создайте правила разрешения и запрета , используя IP-адреса для конкретной ситуации.
Настройка политики WAF с помощью интерфейса командной строки Azure
Выполните следующие действия, чтобы настроить политику 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-адресов
Используйте команду 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 с любыми внешними интерфейсами.
Примечание
Чтобы связать политику WAF с внешним интерфейсом Azure Front Door, необходимо задать WebApplicationFirewallPolicyLink
свойство только один раз. Последующие изменения в политике будут применяться к внешнему интерфейсу автоматически.
Настройка политики WAF с помощью Azure PowerShell
Выполните следующие действия, чтобы настроить политику WAF с помощью Azure PowerShell.
Предварительные требования
Прежде чем приступить к настройке политики ограничения IP-адресов, настройте среду PowerShell и создайте профиль Azure Front Door.
Настройка среды PowerShell
В Azure PowerShell доступен набор командлетов, которые используют модель Azure Resource Manager для управления ресурсами Azure.
Вы можете установить Azure PowerShell на локальном компьютере и использовать его в любом сеансе PowerShell. Следуйте инструкциям на странице, чтобы войти в PowerShell с помощью учетных данных Azure, а затем установить модуль Az.
Подключитесь к 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
Настройка политики WAF
С помощью команды 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 можно использовать Update-AzFrontDoorWafPolicy , чтобы обновить политику.
Связывание политики 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 с любыми внешними интерфейсами. Чтобы связать политику WAF с внешним интерфейсом Azure Front Door, необходимо задать WebApplicationFirewallPolicyLink
свойство только один раз. Последующие изменения в политике будут применяться к внешнему интерфейсу автоматически.
Настройка политики WAF с помощью шаблона Resource Manager
Шаблон, который создает политику Azure Front Door и политику WAF с настраиваемыми правилами ограничения IP-адресов, можно посмотреть на сайте GitHub.
Дальнейшие действия
Узнайте, как создать профиль Azure Front Door.