Диапазоны частных IP-адресов SNAT для брандмауэра Azure

Брандмауэр Azure предоставляет возможности SNAT для всех исходящих трафика на общедоступные IP-адреса. По умолчанию брандмауэр Azure не использует SNAT с правилами сети, если целевой IP-адрес находится в диапазоне частных IP-адресов для IANA RFC 1918 или общего адресного пространства на IANA RFC 6598. Правила приложения всегда используют SNAT через прозрачный прокси-сервер независимо от целевого IP-адреса.

Это поведение по умолчанию подходит при маршрутизации трафика непосредственно в Интернет. Однако существуют сценарии, в которых может потребоваться переопределить поведение SNAT по умолчанию:

  • Если включить принудительное туннелирование, брандмауэр Azure будет использовать SNAT для интернет-направленного трафика на один из частных IP-адресов в AzureFirewallSubnet, скрывая источник от вашего локального брандмауэра.
  • Если ваша организация использует зарегистрированные диапазоны IP-адресов за пределами стандартов IANA RFC 1918 или IANA RFC 6598 для частных сетей, брандмауэр Azure выполняет SNAT трафика на один из своих частных IP-адресов в AzureFirewallSubnet. В настройках Брандмауэра Azure можно указать, что не нужно использовать SNAT для диапазона общедоступный IP-адресов. Например, укажите отдельный IP-адрес как x.x.x.x или диапазон IP-адресов.x.x.x.x/24

Поведение SNAT брандмауэра Azure можно изменить следующим образом:

  • Чтобы настроить брандмауэр Azure для такого, чтобы трафик никогда не обрабатывался SNAT с помощью сетевых правил независимо от целевого IP-адреса, используйте 0.0.0.0/0 в качестве примера диапазона частных IP-адресов. С этой конфигурацией брандмауэр Azure не может направлять трафик непосредственно в Интернет.
  • Чтобы настроить брандмауэр для постоянного выполнения SNAT трафика, обрабатываемого сетевыми правилами, независимо от адреса назначения, используйте 255.255.255.255/32 в качестве диапазона частных IP-адресов.
  • Брандмауэр Azure можно настроить для автономного обучения зарегистрированных и частных диапазонов каждый час и использовать выученные маршруты для SNAT. Для этой предварительной версии требуется , чтобы сервер Маршрутизации Azure был развернут в той же виртуальной сети, что и брандмауэр Azure.

Внимание

  • Конфигурация диапазона частных адресов применяется только к правилам сети. Правила приложения всегда используют SNAT.
  • Если вы хотите указать собственные диапазоны частных IP-адресов и сохранить диапазоны адресов IANA RFC 1918 по умолчанию, убедитесь, что настраиваемый список по-прежнему включает диапазон IANA RFC 1918.

Частные IP-адреса SNAT можно настроить с помощью следующих методов. Используйте метод, подходящий для конфигурации. Межсетевые экраны, связанные с политикой брандмауэра, должны указывать диапазон в политике и не использовать AdditionalProperties.

Способ Использование классических правил Использование политики брандмауэра
Портал Azure Поддерживается Поддерживается
Azure PowerShell настройка PrivateRange в настоящее время не поддерживается
Azure CLI настройка --private-ranges в настоящее время не поддерживается
Шаблон ARM настроить AdditionalProperties в свойствах брандмауэра настройка snat/privateRanges в политике брандмауэра

Настройка диапазонов частных IP-адресов SNAT — Azure PowerShell

Классические правила

Используйте Azure PowerShell, чтобы указать диапазоны частных IP-адресов для брандмауэра.

Примечание.

Свойство брандмауэра PrivateRange не учитывается для брандмауэров, связанных с политикой брандмауэра. Необходимо использовать свойство SNAT в firewallPolicies, как описано в статье Настройка диапазона частных IP-адресов SNAT — шаблон ARM.

Новый брандмауэр

Для нового брандмауэра, использующего классические правила, используйте следующий командлет Azure PowerShell:

$azFw = @{
   Name               = '<fw-name>'
   ResourceGroupName  = '<resourcegroup-name>'
   Location           = '<location>'
   VirtualNetworkName = '<vnet-name>'
   PublicIpName       = '<public-ip-name>'
   PrivateRange       = @("IANAPrivateRanges", "192.168.1.0/24", "192.168.1.10")
}

New-AzFirewall @azFw

Примечание.

  • Для развертывания брандмауэра Azure с использованием New-AzFirewall требуется существующая виртуальная сеть и общедоступный IP-адрес. Полное руководство по развертыванию см. в статье "Развертывание и настройка брандмауэра Azure" с помощью Azure PowerShell.
  • IANAPrivateRanges расширяется до текущих настроек по умолчанию в брандмауэре Azure, а другие диапазоны добавляются к нему. Чтобы сохранить значение по умолчанию IANAPrivateRanges в вашей спецификации частного диапазона, оно должно оставаться в вашей спецификации PrivateRange, как показано в примере.

Дополнительные сведения см. в разделе New-AzFirewall.

Существующий брандмауэр

Чтобы настроить существующий брандмауэр, использующий классические правила, используйте следующие командлеты Azure PowerShell:

$azfw = Get-AzFirewall -Name '<fw-name>' -ResourceGroupName '<resourcegroup-name>'
$azfw.PrivateRange = @("IANAPrivateRanges", "192.168.1.0/24", "192.168.1.10")
Set-AzFirewall -AzureFirewall $azfw

Настройка диапазонов частных IP-адресов SNAT — Azure CLI

Классические правила

Используйте Azure CLI, чтобы указать диапазоны частных IP-адресов брандмауэра с помощью классических правил.

Новый брандмауэр

Для нового брандмауэра, использующего классические правила, используйте следующую команду Azure CLI:

az network firewall create \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges

Примечание.

  • Развертывание брандмауэра Azure с помощью команды az network firewall create Azure CLI требует дополнительных действий по настройке для создания общедоступных IP-адресов и конфигурации IP-адресов. Полное руководство по развертыванию см. в статье "Развертывание и настройка брандмауэра Azure" с помощью Azure CLI.
  • Брандмауэр Azure расширяет свои настройки IANAPrivateRanges до текущих значений по умолчанию и добавляет к ним другие диапазоны. Чтобы сохранить IANAPrivateRanges значение по умолчанию в спецификации частного диапазона, добавьте его в private-ranges спецификацию, как показано в примере.

Существующий брандмауэр

Чтобы настроить существующий брандмауэр, использующий классические правила, используйте следующую команду Azure CLI:

az network firewall update \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges

Настройка диапазонов частных IP-адресов SNAT — шаблон ARM

Классические правила

Чтобы настроить SNAT во время развертывания шаблона ARM, добавьте следующий код в additionalProperties свойство:

"additionalProperties": {
   "Network.SNAT.PrivateRanges": "IANAPrivateRanges, IPRange1, IPRange2"
},

Политика брандмауэра

Брандмауэры Azure, связанные с политикой брандмауэра, поддерживают частные диапазоны SNAT с версии API 2020-11-01. Шаблон можно использовать для обновления частного диапазона SNAT в политике брандмауэра. В следующем примере приведена настройка брандмауэра на постоянный сетевой трафик SNAT:

{
   "type": "Microsoft.Network/firewallPolicies",
   "apiVersion": "2020-11-01",
   "name": "[parameters('firewallPolicies_DatabasePolicy_name')]",
   "location": "eastus",
   "properties": {
      "sku": {
         "tier": "Standard"
      },
      "snat": {
         "privateRanges": "[255.255.255.255/32]"
      }
   }
}

Настройка диапазонов частных IP-адресов SNAT — портал Azure

Классические правила

Используйте портал Azure, чтобы указать диапазоны частных IP-адресов для брандмауэра.

  1. Выберите группу ресурсов, а затем выберите свой брандмауэр.

  2. На панели обзорачастные диапазоны IP-адресов выберите значение по умолчанию IANA RFC 1918.

    Откроется страница Изменение префикса частного IP-адреса:

  3. По умолчанию настроен IANAPrivateRanges.

  4. Измените диапазоны частных IP-адресов для своей среды и нажмите кнопку Сохранить.

Политика брандмауэра

  1. Выберите группу ресурсов, а затем выберите свою политику брандмауэра.
  2. Выберите диапазоны частных IP-адресов (SNAT) в столбце Параметры.
  3. Выберите условия для выполнения SNAT для среды в разделе "Выполнение SNAT", чтобы настроить конфигурацию SNAT .
  4. Выберите Применить.

Автоматическое изучение маршрутов SNAT (предварительная версия)

Вы можете настроить Брандмауэр Azure для автоматического распознавания как зарегистрированных, так и частных диапазонов каждые 30 минут. Эти обученные диапазоны адресов являются внутренними для сети, поэтому трафик к назначениям в обученных диапазонах не подлежит SNAT. Для автоматического обучения диапазонов SNAT требуется развертывание сервера маршрутизации Azure в той же виртуальной сети, что и брандмауэр Azure. Брандмауэр должен быть связан с сервером маршрутов Azure и настроен на автоматическое изучение диапазонов SNAT в политике Azure Firewall. В настоящее время вы можете использовать шаблон ARM, Azure PowerShell или портал Azure для настройки маршрутов SNAT автоматически.

Примечание.

Маршруты SNAT, изучаемые автоматически, доступны только в развертываниях узловой виртуальной сети. Он недоступен в развертываниях виртуальной глобальной сети (защищенный виртуальный концентратор). Дополнительные сведения о параметрах архитектуры Брандмауэр Azure см. в разделе "Что такое параметры архитектуры Брандмауэр Azure Manager"?

Настройка с помощью шаблона ARM

Чтобы настроить автообучение, можно использовать следующий JSON. Брандмауэр Azure должен быть связан с сервером маршрутизации Azure.

{
   "type": "Microsoft.Network/firewallPolicies",
   "apiVersion": "2022-11-01",
   "name": "[parameters('firewallPolicies_DatabasePolicy_name')]",
   "location": "eastus",
   "properties": {
      "sku": {
         "tier": "Standard"
      },
      "snat": {
         "autoLearnPrivateRanges": "Enabled"
      }
   }
}

Чтобы связать сервер маршрутизации Azure, используйте следующий код JSON:

{
   "type": "Microsoft.Network/azureFirewalls",
   "apiVersion": "2022-11-01",
   "name": "[parameters('azureFirewalls_testFW_name')]",
   "location": "eastus",
   "properties": {
      "sku": {
         "name": "AZFW_VNet",
         "tier": "Standard"
      },
      "threatIntelMode": "Alert",
      "additionalProperties": {
         "Network.RouteServerInfo.RouteServerID": "[parameters('virtualHubs_TestRouteServer_externalid')]"
      }
   }
}

Настройка с помощью Azure PowerShell

  • Создайте брандмауэр с помощью RouteServerId.

    # specify RouteServerId Uri
    $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS"
    
    # Create AzureFirewall
    $azureFirewall = New-AzFirewall -Name $azureFirewallName -ResourceGroupName `
      $rgname -Location $location -RouteServerId $routeServerId
    
    # Get firewall and confirm if RouteServerId is included on the response under additional properties (Network.RouteServerInfo.RouteServerID)
    Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
    
  • Обновление существующего брандмауэра с помощью RouteServerId

    # specify RouteServerId Uri
    $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS"
    
    # Get firewall
    $azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
    
    # Update the response with RouteServerId and do firewall SET
    $azFirewall.RouteServerId = $routeServerId
    Set-AzFirewall -AzureFirewall $azFirewall
    
    # Do firewall Get and confirm if routeServerId is updated
    Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
    
  • Создайте новую политику брандмауэра с предоставленным параметром SNAT.

    # If AutoLearnPrivateRange parameter is provided, auto learn will be enabled, if not it will be disabled
    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange -AutoLearnPrivateRange
    
    # Create AzureFirewallPolicy (with SNAT)
    $azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName `
      -ResourceGroupName $rgname -Location $location -Snat $snat
    
    # Get AzureFirewallPolicy and verify
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  • Обновление существующей политики брандмауэра с помощью SNAT

    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange2
    
    # Set AzureFirewallPolicy
    $azureFirewallPolicy.Snat = $snat
    Set-AzFirewallPolicy -InputObject $azureFirewallPolicy
    
    # Do Get and Verify
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  • Получение выученных брандмауэром префиксов

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

Настройка с помощью портала Azure

Чтобы настроить маршруты SNAT autolearn (предварительная версия) с помощью портала Azure, выполните следующие действия.

  1. Добавьте подсеть:

    • Добавьте подсеть с именем RouteServerSubnet в существующую виртуальную сеть брандмауэра.
    • Убедитесь, что размер подсети не менее /27.
  2. Развертывание сервера маршрутов:

  3. Ассоциируйте сервер маршрутизации:

    • На странице брандмауэра изученных IP-префиксов SNAT (предварительная версия) добавьте сервер маршрутов.
  4. Изменение политики брандмауэра:

    • Включите префиксы IP-адресов автообучения (предварительная версия) в разделе "Диапазоны частных IP-адресов" политики брандмауэра.
  5. Просмотр обученных маршрутов:

    • Проверьте изученные маршруты на панели Изученные префиксы IP-адресов SNAT (предварительная версия).

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