Настройка политики WAF с помощью Azure PowerShell
Политика брандмауэра веб-приложения (WAF) определяет проверки, необходимые при поступлении запроса в Azure Front Door.
В этой статье показано, как настроить политику WAF, состоящую из некоторых пользовательских правил, и включен набор правил по умолчанию, управляемый Azure.
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Необходимые компоненты
Прежде чем приступить к настройке политики ограничения скорости, настройте среду PowerShell и создайте профиль Azure Front Door.
Настройка среды PowerShell
В Azure PowerShell доступен набор командлетов, которые используют модель Azure Resource Manager для управления ресурсами Azure.
Вы можете установить Azure 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, выполнив инструкции, описанные в кратком руководстве. Создание профиля Azure Front Door.
Пользовательское правило на основе параметров HTTP
В следующем примере показано, как настроить настраиваемое правило с двумя условиями соответствия с помощью New-AzFrontDoorWafMatchConditionObject. Запросы из указанного сайта, определенного ссылщиком, и строка запроса не содержит password
.
$referer = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestHeader -OperatorProperty Equal -Selector "Referer" -MatchValue "www.mytrustedsites.com/referpage.html"
$password = New-AzFrontDoorWafMatchConditionObject -MatchVariable QueryString -OperatorProperty Contains -MatchValue "password"
$AllowFromTrustedSites = New-AzFrontDoorWafCustomRuleObject -Name "AllowFromTrustedSites" -RuleType MatchRule -MatchCondition $referer,$password -Action Allow -Priority 1
Пользовательское правило на основе метода HTTP-запроса
Создайте правило, блокирующее метод PUT с помощью New-AzFrontDoorWafCustomRuleObject.
$put = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestMethod -OperatorProperty Equal -MatchValue PUT
$BlockPUT = New-AzFrontDoorWafCustomRuleObject -Name "BlockPUT" -RuleType MatchRule -MatchCondition $put -Action Block -Priority 2
Создание настраиваемого правила на основе ограничения размера
В следующем примере создается правило блокировки запросов с URL-адресом, который превышает 100 символов с помощью Azure PowerShell.
$url = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty GreaterThanOrEqual -MatchValue 100
$URLOver100 = New-AzFrontDoorWafCustomRuleObject -Name "URLOver100" -RuleType MatchRule -MatchCondition $url -Action Block -Priority 3
Добавление управляемого набора правил по умолчанию
В следующем примере создается управляемый набор правил по умолчанию с помощью Azure PowerShell.
$managedRules = New-AzFrontDoorWafManagedRuleObject -Type DefaultRuleSet -Version 1.0
Настройка политики безопасности
С помощью команды Get-AzResourceGroup
найдите имя группы ресурсов, содержащей профиль Azure Front Door. Затем настройте политику безопасности с созданными правилами на предыдущих шагах с помощью New-AzFrontDoorWafPolicy в указанной группе ресурсов, содержащей профиль Azure Front Door.
$myWAFPolicy=New-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $resourceGroupName -Customrule $AllowFromTrustedSites,$BlockPUT,$URLOver100 -ManagedRule $managedRules -EnabledState Enabled -Mode Prevention
Связывание политики с интерфейсным узлом Azure Front Door
Свяжите объект политики безопасности с существующим интерфейсным узлом Azure Front Door и обновите свойства Azure Front Door. Сначала получите объект Azure Front Door с помощью команды Get-AzFrontDoor.
Затем задайте интерфейсное WebApplicationFirewallPolicyLink
свойство resourceId
свойству, $myWAFPolicy$
созданному на предыдущем шаге, с помощью Set-AzFrontDoor.
Примечание.
Для Azure Front Door уровня "Стандартный" и "Премиум" следует использовать Get-AzFrontDoorCdnProfile.
В следующем примере используется имя myResourceGroupFD1
группы ресурсов с предположением, что вы создали профиль Azure Front Door с помощью инструкций, приведенных в кратком руководстве. Создание Azure Front Door. Кроме того, в следующем примере замените $frontDoorName
имя профиля Azure Front Door.
$FrontDoorObjectExample = Get-AzFrontDoor `
-ResourceGroupName myResourceGroupFD1 `
-Name $frontDoorName
$FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $myWAFPolicy.Id
Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]
Примечание.
Необходимо задать WebApplicationFirewallPolicyLink
свойство только один раз, чтобы связать политику безопасности с интерфейсной частью Azure Front Door. Последующие изменения в политике будут применяться к внешнему интерфейсу автоматически.
Следующие шаги
- Узнайте больше о Azure Front Door.
- Дополнительные сведения об Azure Брандмауэр веб-приложений в Azure Front Door.