Поделиться через


Настройка политики 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 с помощью команды 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. Последующие изменения в политике будут применяться к внешнему интерфейсу автоматически.

Следующие шаги