Диапазоны частных 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-адресов для брандмауэра.
Выберите группу ресурсов, а затем выберите свой брандмауэр.
На странице Обзор в разделе диапазоны частных IP-адресов выберите значение по умолчанию IANA RFC 1918.
Откроется страница Изменение префикса частного IP-адреса:
По умолчанию настроены IANAPrivateRanges.
Измените диапазоны частных IP-адресов для своей среды и нажмите кнопку Сохранить.
Политика брандмауэра
Выберите группу ресурсов, а затем выберите свою политику брандмауэра.
Выберите диапазоны частных IP-адресов (SNAT) в столбце Параметры.
Выберите условия для выполнения SNAT для среды в разделе "Выполнение SNAT", чтобы настроить конфигурацию SNAT .
Нажмите Применить.
Маршруты 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 (предварительная версия) брандмауэра.
- Измените политику брандмауэра, чтобы включить префиксы IP-адресов автообучения (предварительная версия) в разделе "Диапазоны частных IP-адресов" (SNAT).
- Вы можете просмотреть обучаемые маршруты на странице префиксов IP-адресов SNAT (предварительная версия).