Azure Firewall은 공용 IP 주소에 대한 모든 아웃바운드 트래픽에 SNAT 기능을 제공합니다. 기본적으로 대상 IP 주소가 IANA RFC 1918에 따라 개인 IP 주소 범위 또는 IANA RFC 6598에 따라 공유 주소 공간에 있는 경우, Azure Firewall은 네트워크 규칙이 있는 SNAT가 아닙니다. 애플리케이션 규칙은 대상 IP 주소에 관계없이 투명 프록시 를 사용하여 항상 SNAT됩니다.
이 기본 동작은 트래픽을 인터넷으로 직접 라우팅할 때 적합합니다. 그러나 기본 SNAT 동작을 재정의해야 하는 시나리오가 있습니다.
- 강제 터널링을 사용하도록 설정한 경우 인터넷 바인딩된 트래픽은 AzureFirewallSubnet에 있는 방화벽의 개인 IP 주소 중 하나로 SNATed되어 온-프레미스 방화벽에서 원본을 숨깁니다.
- 조직에서 개인 네트워크에 대해 IANA RFC 1918 또는 IANA RFC 6598 이외의 등록된 IP 주소 범위를 사용하는 경우 Azure Firewall은 AzureFirewallSubnet에서 방화벽의 개인 IP 주소 중 하나에 트래픽을 SNAT합니다. 공용 IP 주소 범위를 SNAT하지 않도록 Azure 방화벽을 구성할 수 있습니다. 예를 들어 개별 IP 주소를 다음과 같이
x.x.x.x
x.x.x.x/24
지정하거나 IP 주소 범위를 지정합니다.
다음과 같은 방법으로 Azure Firewall SNAT 동작을 변경할 수 있습니다.
- 대상 IP 주소에 관계없이 네트워크 규칙에 따라 SNAT 트래픽을 처리하지 않도록 Azure Firewall을 구성하려면 0.0.0.0/0을 개인 IP 주소 범위로 사용합니다. 이 구성을 사용하면 Azure Firewall에서 트래픽을 인터넷으로 직접 라우팅할 수 없습니다.
- 대상 주소에 관계없이 항상 네트워크 규칙에 따라 SNAT 트래픽을 처리하도록 방화벽을 구성하려면 255.255.255.255/32를 개인 IP 주소 범위로 사용합니다.
- Azure Firewall은 매시간 등록된 범위와 프라이빗 범위를 자동으로 학습하고 SNAT에 대해 학습된 경로를 사용하도록 구성할 수 있습니다. 이 미리 보기 기능을 사용하려면 Azure Firewall 과 동일한 가상 네트워크에 배포된 Azure Route Server가 필요합니다.
중요한
- 개인 주소 범위 구성은 네트워크 규칙에만 적용됩니다. 애플리케이션 규칙은 항상 SNAT입니다.
- 고유한 개인 IP 주소 범위를 지정하고 기본 IANA RFC 1918 주소 범위를 유지하려면 사용자 지정 목록에 IANA RFC 1918 범위가 계속 포함되어 있는지 확인합니다.
다음 메서드를 사용하여 SNAT 개인 IP 주소를 구성할 수 있습니다. 구성에 적합한 메서드를 사용합니다. 방화벽 정책과 연결된 방화벽은 정책에서 범위를 지정해야 하며 AdditionalProperties
를 사용하지 않습니다.
메서드 | 클래식 규칙 사용 | 방화벽 정책 사용 |
---|---|---|
Azure Portal | 지원 | 지원 |
Azure PowerShell | PrivateRange 구성 |
현재 지원되지 않음 |
Azure CLI | --private-ranges 구성 |
현재 지원되지 않음 |
ARM 템플릿 | 방화벽 속성에서 AdditionalProperties 구성 |
방화벽 정책에서 snat/privateRanges 구성 |
SNAT 개인 IP 주소 범위 구성 - Azure PowerShell
클래식 규칙
Azure PowerShell을 사용하여 방화벽에 대한 개인 IP 주소 범위를 지정할 수 있습니다.
새 방화벽
클래식 규칙을 사용하는 새 방화벽의 경우 다음 Azure PowerShell cmdlet을 사용합니다.
$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 Firewall을 사용하여
New-AzFirewall
배포하려면 기존 가상 네트워크 및 공용 IP 주소가 필요합니다. 전체 배포 가이드는 Azure PowerShell을 사용하여 Azure Firewall 배포 및 구성을 참조하세요. IANAPrivateRanges
는 먼저 애저 파이어월의 현재 기본 값으로 확장되고, 이후 다른 범위가 추가됩니다. 프라이빗 범위 사양에서 기본값을 유지하려면IANAPrivateRanges
을 사양의PrivateRange
에 예제와 같이 포함시켜야 합니다.
자세한 내용은 New-AzFirewall을 참조하세요.
기존 방화벽
기존 방화벽을 클래식 규칙을 사용해 구성하려면 다음 Azure PowerShell cmdlet들을 사용합니다.
$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
SNAT 개인 IP 주소 범위 구성 - 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 CLI 명령을
az network firewall create
사용하여 Azure Firewall을 배포하려면 공용 IP 주소 및 IP 구성을 만들기 위한 추가 구성 단계가 필요합니다. 전체 배포 가이드는 Azure CLI를 사용하여 Azure Firewall 배포 및 구성을 참조하세요. IANAPrivateRanges
는 다른 범위들이 추가되는 동안 Azure Firewall의 현재 기본값으로 확장됩니다. 프라이빗 범위 사양에서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
SNAT 개인 IP 주소 범위 구성 - ARM 템플릿
클래식 규칙
ARM 템플릿 배포 중에 SNAT를 구성하려면 속성에 다음을 additionalProperties
추가합니다.
"additionalProperties": {
"Network.SNAT.PrivateRanges": "IANAPrivateRanges, IPRange1, IPRange2"
},
방화벽 정책
방화벽 정책과 연결된 Azure Firewall은 API 버전 2020-11-01 이후 SNAT 프라이빗 범위를 지원합니다. 템플릿을 사용하여 방화벽 정책에서 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]"
}
}
}
SNAT 개인 IP 주소 범위 구성 - Azure Portal
클래식 규칙
Azure Portal을 사용하여 방화벽에 대한 개인 IP 주소 범위를 지정할 수 있습니다.
리소스 그룹을 선택한 다음 방화벽을 선택합니다.
개요 페이지의 개인 IP 범위에서 기본값 IANA RFC 1918을 선택합니다.
다음과 같이 개인 IP 접두사 편집 페이지가 열립니다.
기본적으로 IANAPrivateRanges가 구성됩니다.
사용자 환경에 대한 개인 IP 주소 범위를 편집하고 저장을 선택합니다.
방화벽 정책
- 리소스 그룹을 선택한 다음, 방화벽을 선택합니다.
- 설정 열에서 개인 IP 범위(SNAT)를 선택합니다.
- SNAT 구성을 사용자 지정하려면 SNAT 수행에서 환경에 대해 SNAT를 수행할 조건을 선택합니다.
- 적용을 선택합니다.
SNAT 경로 자동 학습(미리 보기)
등록된 범위와 프라이빗 범위를 30분마다 자동으로 학습하도록 Azure Firewall을 구성할 수 있습니다. 이러한 학습된 주소 범위는 네트워크 내부로 간주되므로 학습된 범위의 대상에 대한 트래픽은 SNAT되지 않습니다. SNAT 범위를 자동으로 학습하려면 Azure Route Server를 Azure Firewall과 동일한 가상 네트워크에 배포해야 합니다. 방화벽은 Azure Route Server와 연결되어야 하며 Azure Firewall Policy에서 SNAT 범위를 자동으로 학습하도록 구성해야 합니다. 현재 ARM 템플릿, Azure PowerShell 또는 Azure Portal을 사용하여 자동 학습 SNAT 경로를 구성할 수 있습니다.
참고
자동 학습 SNAT 경로는 가상 네트워크 배포(허브 가상 네트워크)에서만 사용할 수 있습니다. VWAN 배포(보안 가상 허브)에서는 사용할 수 없습니다. Azure Firewall 아키텍처 옵션에 대한 자세한 내용은 Azure Firewall Manager 아키텍처 옵션은 무엇인가요?를 참조하세요.
ARM 템플릿을 사용하여 구성
다음 JSON을 사용하여 autolearn을 구성할 수 있습니다. Azure Firewall은 Azure Route Server와 연결되어야 합니다.
{
"type": "Microsoft.Network/firewallPolicies",
"apiVersion": "2022-11-01",
"name": "[parameters('firewallPolicies_DatabasePolicy_name')]",
"location": "eastus",
"properties": {
"sku": {
"tier": "Standard"
},
"snat": {
"autoLearnPrivateRanges": "Enabled"
}
}
}
다음 JSON을 사용하여 Azure Route Server를 연결합니다.
{
"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 Portal을 사용하여 구성
Azure Portal을 사용하여 자동 학습 SNAT 경로(미리 보기)를 구성하려면 다음 단계를 수행합니다.
서브넷 추가:
- 기존 방화벽 가상 네트워크에 RouteServerSubnet 이라는 서브넷을 추가합니다.
- 서브넷 크기가 /27 이상인지 확인합니다.
경로 서버 배포:
- 기존 방화벽 가상 네트워크에 경로 서버를 배포합니다.
- 자세한 단계는 빠른 시작: Azure Portal을 사용하여 경로 서버 만들기 및 구성을 참조하세요.
Route Server 연결:
- 방화벽의 학습된 SNAT IP 접두사(미리 보기) 페이지에서 경로 서버를 추가합니다.
방화벽 정책 수정:
- 방화벽 정책의 SNAT(개인 IP 범위) 섹션에서 자동 학습 IP 접두사(미리 보기)를 사용하도록 설정합니다.
학습된 경로 보기:
- 학습된 SNAT IP 접두사(미리 보기) 페이지에서 학습된 경로를 확인합니다.
다음 단계
- Azure Firewall 강제 터널링에 대해 알아봅니다.