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

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

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

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

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

  • Чтобы настроить Брандмауэр Azure никогда не трафик SNAT, обработанный правилами сети независимо от целевого IP-адреса, используйте 0.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, используя следующие методы. Частные адреса SNAT необходимо настроить с помощью метода, подходящего для вашей конфигурации. В Брандмауэрах, связанных с политикой брандмауэра, должен указываться диапазон в политике и не использоваться AdditionalProperties.

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

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

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

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

Примечание.

Свойство брандмауэра 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

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

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

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

Для нового брандмауэра с классическими правилами приведена следующая команда 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 с помощью команды Azure CLI az network firewall create требуются дополнительные действия по настройке для создания общедоступных IP-адресов и IP-конфигурации. Полное пошаговое развертывание см. в статье Развертывание и настройка брандмауэра Azure с помощью Azure CLI.

Примечание.

IANAPrivateRanges расширяется до текущих значений по умолчанию в брандмауэре Azure, в то время как к нему добавляются другие диапазоны. Чтобы сохранить значение 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-адреса:

    Screenshot of edit private IP prefixes.

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

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

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

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

  2. Выберите диапазоны частных IP-адресов (SNAT) в столбце Параметры.

  3. Выберите условия для выполнения SNAT для среды в разделе "Выполнение SNAT", чтобы настроить конфигурацию SNAT . Screenshot of Private IP ranges (SNAT).

  4. Нажмите Применить.

Маршруты SNAT для автоматического обучения (предварительная версия)

Вы можете настроить Брандмауэр Azure для автоматического обучения как зарегистрированных, так и частных диапазонов каждые 30 минут. Эти диапазоны адресов обучения считаются внутренними для сети, поэтому трафик к назначениям в обучаемых диапазонах не учитывается. Для автоматического обучения диапазонов SNAT требуется развертывание сервера маршрутизации Azure в той же виртуальной сети, что и Брандмауэр Azure. Брандмауэр должен быть связан с сервером маршрутизации Azure и настроен для автоматического обучения диапазонов SNAT в политике Брандмауэр Azure. В настоящее время можно использовать шаблон 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

Портал можно использовать для связывания сервера маршрутизации с Брандмауэр Azure для настройки маршрутов SNAT для автоматического обучения (предварительная версия).

Используйте портал для выполнения следующих задач:

  • Добавьте подсеть с именем RouteServerSubnet в существующую виртуальную сеть брандмауэра. Размер подсети должен быть не менее /27.
  • Разверните сервер маршрутизации в существующей виртуальной сети брандмауэра. Сведения о сервере маршрутизации Azure см. в кратком руководстве по созданию и настройке сервера маршрутов с помощью портал Azure.
  • Добавьте сервер маршрутизации на страницу префиксов IP-адресов SNAT (предварительная версия) брандмауэра. Screenshot showing firewall add a route server.
  • Измените политику брандмауэра, чтобы включить префиксы IP-адресов автообучения (предварительная версия) в разделе "Диапазоны частных IP-адресов" (SNAT). Screenshot showing firewall policy Private IP ranges (SNAT) settings.
  • Вы можете просмотреть обучаемые маршруты на странице префиксов IP-адресов SNAT (предварительная версия).

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