New-AzFirewall

在資源群組中建立新的防火牆。

Syntax

New-AzFirewall
   -Name <String>
   -ResourceGroupName <String>
   -Location <String>
   [-ApplicationRuleCollection <PSAzureFirewallApplicationRuleCollection[]>]
   [-NatRuleCollection <PSAzureFirewallNatRuleCollection[]>]
   [-NetworkRuleCollection <PSAzureFirewallNetworkRuleCollection[]>]
   [-ThreatIntelMode <String>]
   [-ThreatIntelWhitelist <PSAzureFirewallThreatIntelWhitelist>]
   [-PrivateRange <String[]>]
   [-EnableDnsProxy]
   [-DnsServer <String[]>]
   [-Tag <Hashtable>]
   [-Force]
   [-AsJob]
   [-Zone <String[]>]
   [-SkuName <String>]
   [-SkuTier <String>]
   [-VirtualHubId <String>]
   [-HubIPAddress <PSAzureFirewallHubIpAddresses>]
   [-FirewallPolicyId <String>]
   [-AllowActiveFTP]
   [-EnableFatFlowLogging]
   [-EnableUDPLogOptimization]
   [-RouteServerId <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzFirewall
   -Name <String>
   -ResourceGroupName <String>
   -Location <String>
   -VirtualNetworkName <String>
   [-PublicIpName <String>]
   [-ApplicationRuleCollection <PSAzureFirewallApplicationRuleCollection[]>]
   [-NatRuleCollection <PSAzureFirewallNatRuleCollection[]>]
   [-NetworkRuleCollection <PSAzureFirewallNetworkRuleCollection[]>]
   [-ThreatIntelMode <String>]
   [-ThreatIntelWhitelist <PSAzureFirewallThreatIntelWhitelist>]
   [-PrivateRange <String[]>]
   [-EnableDnsProxy]
   [-DnsServer <String[]>]
   [-Tag <Hashtable>]
   [-Force]
   [-AsJob]
   [-Zone <String[]>]
   [-SkuName <String>]
   [-SkuTier <String>]
   [-VirtualHubId <String>]
   [-HubIPAddress <PSAzureFirewallHubIpAddresses>]
   [-FirewallPolicyId <String>]
   [-AllowActiveFTP]
   [-EnableFatFlowLogging]
   [-EnableUDPLogOptimization]
   [-RouteServerId <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzFirewall
   -Name <String>
   -ResourceGroupName <String>
   -Location <String>
   -VirtualNetwork <PSVirtualNetwork>
   [-PublicIpAddress <PSPublicIpAddress[]>]
   [-ManagementPublicIpAddress <PSPublicIpAddress>]
   [-ApplicationRuleCollection <PSAzureFirewallApplicationRuleCollection[]>]
   [-NatRuleCollection <PSAzureFirewallNatRuleCollection[]>]
   [-NetworkRuleCollection <PSAzureFirewallNetworkRuleCollection[]>]
   [-ThreatIntelMode <String>]
   [-ThreatIntelWhitelist <PSAzureFirewallThreatIntelWhitelist>]
   [-PrivateRange <String[]>]
   [-EnableDnsProxy]
   [-DnsServer <String[]>]
   [-Tag <Hashtable>]
   [-Force]
   [-AsJob]
   [-Zone <String[]>]
   [-SkuName <String>]
   [-SkuTier <String>]
   [-VirtualHubId <String>]
   [-HubIPAddress <PSAzureFirewallHubIpAddresses>]
   [-FirewallPolicyId <String>]
   [-AllowActiveFTP]
   [-EnableFatFlowLogging]
   [-EnableUDPLogOptimization]
   [-RouteServerId <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

New-AzFirewall Cmdlet 會建立 Azure 防火牆。

範例

範例 1:建立連結至虛擬網路的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip

此範例會在與防火牆相同的資源群組中建立連結至虛擬網路 「vnet」 的防火牆。 由於未指定任何規則,防火牆會封鎖所有流量(預設行為)。 威脅 Intel 也會以預設模式執行 - 警示 - 這表示會記錄惡意流量,但不會遭到拒絕。

範例 2:建立允許所有 HTTPS 流量的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"

$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "https:443" -TargetFqdn "*" 
$ruleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ApplicationRuleCollection $ruleCollection

此範例會建立防火牆,以允許埠 443 上的所有 HTTPS 流量。 威脅 Intel 會以預設模式執行 - 警示 - 這表示會記錄惡意流量,但不會遭到拒絕。

範例 3:DNAT - 將目的地為 10.1.2.3:80 的流量重新導向至 10.2.3.4:8080

$rule = New-AzFirewallNatRule -Name "natRule" -Protocol "TCP" -SourceAddress "*" -DestinationAddress "10.1.2.3" -DestinationPort "80" -TranslatedAddress "10.2.3.4" -TranslatedPort "8080"
$ruleCollection = New-AzFirewallNatRuleCollection -Name "NatRuleCollection" -Priority 1000 -Rule $rule
New-AzFirewall -Name "azFw" -ResourceGroupName "rg" -Location centralus -NatRuleCollection $ruleCollection -ThreatIntelMode Off

此範例已建立防火牆,將目的地 IP 和埠轉譯為 10.1.2.3:80 至 10.2.3.4:8080 威脅 Intel 的所有封包在此範例中關閉。

範例 4:建立沒有規則且威脅 Intel 處於警示模式的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ThreatIntelMode Alert

此範例會建立防火牆,以封鎖所有流量(預設行為),並在警示模式中執行威脅 Intel。 這表示在套用其他規則之前,系統會針對惡意流量發出警示記錄 (在此案例中只是默認規則 - 全部拒絕)

範例 5:建立防火牆,以允許埠 8080 上的所有 HTTP 流量,但封鎖威脅 Intel 所識別的惡意網域

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"

$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "http:8080" -TargetFqdn "*" 
$ruleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ApplicationRuleCollection $ruleCollection -ThreatIntelMode Deny

此範例會建立防火牆,除非威脅 Intel 將其視為惡意,否則允許埠 8080 上的所有 HTTP 流量。 在拒絕模式中執行時,不同於警示,威脅 Intel 視為惡意的流量不僅會記錄,也會遭到封鎖。

範例 6:建立沒有規則且具有可用性區域的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetworkName $vnet.Name -PublicIpName $pip.Name -Zone 1,2,3

此範例會建立具有所有可用可用性區域的防火牆。

範例 7:建立具有兩個或多個公用IP位址的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -Name "vnet" -ResourceGroupName $rgName
$pip1 = New-AzPublicIpAddress -Name "AzFwPublicIp1" -ResourceGroupName "rg" -Sku "Basic" -Tier "Regional" -Location "centralus" -AllocationMethod Static
$pip2 = New-AzPublicIpAddress -Name "AzFwPublicIp2" -ResourceGroupName "rg" -Sku "Basic" -Tier "Regional" -Location "centralus" -AllocationMethod Static
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress @($pip1, $pip2)

此範例會建立連結至虛擬網路 「vnet」 且具有兩個公用IP位址的防火牆。

範例 8:建立防火牆,允許 MSSQL 流量流向特定 SQL 資料庫

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"

$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "mssql:1433" -TargetFqdn "sql1.database.windows.net"
$ruleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ApplicationRuleCollection $ruleCollection -ThreatIntelMode Deny

此範例會建立防火牆,以允許標準埠 1433 上的 MSSQL 流量到 SQL 資料庫 sql1.database.windows.net。

範例 9:建立連結至虛擬中樞的防火牆

$rgName = "resourceGroupName"
$fp = Get-AzFirewallPolicy -ResourceGroupName $rgName -Name "fp"
$fpId = $fp.Id
$vHub = Get-AzVirtualHub -Name "hub"
$vHubId = $vHub.Id

New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -SkuName AZFW_Hub -VirtualHubId $vHubId -FirewallPolicyId -$fpId

此範例會建立連結至虛擬中樞 「vHub」 的防火牆。 防火牆原則$fp會附加至防火牆。 此防火牆會根據防火牆原則中所提及的規則來允許/拒絕流量$fp。 虛擬中樞和防火牆應該位於相同的區域中。

範例 10:建立具有威脅情報允許清單設定的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"

$tiWhitelist = New-AzFirewallThreatIntelWhitelist -FQDN @("www.microsoft.com") -IpAddress @("8.8.8.8")
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ThreatIntelWhitelist $tiWhitelist

此範例會建立防火牆,允許從威脅情報列出 “www.microsoft.com” 和 “8.8.8.8”

範例 11:建立具有自定義私人範圍設定的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"

New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -PrivateRange @("99.99.99.0/24", "66.66.0.0/16")

此範例會建立防火牆,將 “99.99.99.0/24” 和 “66.66.0.0.0/16” 視為私人 IP 範圍,且不會為這些位址的流量產生自然流量

範例 12:建立具有管理子網和公用IP位址的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"
$mgmtPip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "managementPublicIpName"

New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -ManagementPublicIpAddress $mgmtPip

此範例會在與防火牆相同的資源群組中建立連結至虛擬網路 「vnet」 的防火牆。 由於未指定任何規則,防火牆會封鎖所有流量(預設行為)。 威脅 Intel 也會以預設模式執行 - 警示 - 這表示會記錄惡意流量,但不會遭到拒絕。

為了支援「強制通道」案例,此防火牆會使用子網 「AzureFirewallManagementSubnet」。,以及其管理流量的管理公用IP位址

範例 13:建立已連結至虛擬網路的防火牆原則

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"
$fp = Get-AzFirewallPolicy -ResourceGroupName $rgName -Name "fp"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -FirewallPolicyId $fp

此範例會在與防火牆相同的資源群組中建立連結至虛擬網路 「vnet」 的防火牆。 將套用至防火牆的規則和威脅情報將會取自防火牆原則

範例 14:使用 DNS Proxy 和 DNS 伺服器建立防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -DnsServer @("10.10.10.1", "20.20.20.2")

此範例會在與防火牆相同的資源群組中建立連結至虛擬網路 「vnet」 的防火牆。 此防火牆已啟用 DNS Proxy,並提供 2 部 DNS 伺服器。 此外也會設定 [網络規則的 DNS Proxy],因此如果有任何具有 FQDN 的網路規則,DNS Proxy 也會用於這些規則。

範例 15:建立具有多個IP的防火牆。 防火牆可以與虛擬中樞相關聯

$rgName = "resourceGroupName"
$vHub = Get-AzVirtualHub -Name "hub"
$vHubId = $vHub.Id
$fwpips = New-AzFirewallHubPublicIpAddress -Count 2
$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwpips
$fw=New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location westus -SkuName AZFW_Hub -HubIPAddress $hubIpAddresses -VirtualHubId $vHubId

此範例會在與防火牆相同的資源群組中建立連結至虛擬中樞「中樞」的防火牆。 防火牆將會獲指派 2 個隱含建立的公用IP。

範例 16:使用允許使用中 FTP 建立防火牆。

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$pip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "publicIpName"
New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -PublicIpAddress $pip -AllowActiveFTP

此範例會建立允許使用中 FTP 旗標的防火牆。

範例 17:建立具有管理子網且沒有數據公用IP位址的防火牆

$rgName = "resourceGroupName"
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name "vnet"
$mgmtPip = Get-AzPublicIpAddress -ResourceGroupName $rgName -Name "managementPublicIpName"

New-AzFirewall -Name "azFw" -ResourceGroupName $rgName -Location centralus -VirtualNetwork $vnet -ManagementPublicIpAddress $mgmtPip

此範例會建立「強制通道」防火牆,其使用子網 「AzureFirewallManagementSubnet」 和其管理流量的管理公用 IP 位址。 在此案例中,如果用戶只針對私人流量使用防火牆,則不需要指定數據公用IP。

參數

-AllowActiveFTP

允許防火牆上的使用中 FTP。 預設會停用。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationRuleCollection

指定新防火牆的應用程式規則集合。

Type:PSAzureFirewallApplicationRuleCollection[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-AsJob

在背景執行 Cmdlet

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

執行 Cmdlet 之前先提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

用於與 azure 通訊的認證、帳戶、租用戶和訂用帳戶。

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DnsServer

要用於 DNS 解析的 DNS 伺服器清單,

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableDnsProxy

啟用 DNS Proxy。 預設會停用。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableFatFlowLogging

啟用 Fat Flow 記錄。 預設為 false。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableUDPLogOptimization

啟用UDP記錄優化。 預設為 false。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FirewallPolicyId

附加至防火牆的防火牆原則

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

強制命令執行,而不要求使用者確認。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HubIPAddress

連結至虛擬中樞之防火牆的IP位址

Type:PSAzureFirewallHubIpAddresses
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Location

指定防火牆的區域。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ManagementPublicIpAddress

用於管理流量的一或多個公用IP位址。 公用IP位址必須使用標準SKU,而且必須屬於與防火牆相同的資源群組。

Type:PSPublicIpAddress
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

指定這個 Cmdlet 所建立之 Azure 防火牆 的名稱。

Type:String
Aliases:ResourceName
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NatRuleCollection

AzureFirewallNatRuleCollections 的列表

Type:PSAzureFirewallNatRuleCollection[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-NetworkRuleCollection

AzureFirewallNetworkRuleCollections 的列表

Type:PSAzureFirewallNetworkRuleCollection[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PrivateRange

流量不會受到 SNAT 保護的私人 IP 範圍

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PublicIpAddress

一或多個公用IP位址。 公用IP位址必須使用標準SKU,而且必須屬於與防火牆相同的資源群組。 強制通道防火牆不需要輸入。

Type:PSPublicIpAddress[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PublicIpName

公用Ip名稱。 公用IP必須使用標準SKU,且必須屬於與防火牆相同的資源群組。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ResourceGroupName

指定要包含防火牆的資源群組名稱。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-RouteServerId

防火牆的路由伺服器標識碼

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkuName

防火牆的 SKU 名稱

Type:String
Aliases:Sku
Accepted values:AZFW_Hub, AZFW_VNet
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SkuTier

防火牆的 SKU 層

Type:String
Accepted values:Standard, Premium, Basic
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Tag

哈希表形式的索引鍵/值組。 例如:

@{key0=“value0”;key1=$null;key2=“value2”}

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ThreatIntelMode

指定威脅情報的作業模式。 默認模式為 [警示],而非 [關閉]。

Type:String
Accepted values:Alert, Deny, Off
Position:Named
Default value:Alert
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ThreatIntelWhitelist

威脅情報的允許清單

Type:PSAzureFirewallThreatIntelWhitelist
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VirtualHubId

防火牆所鏈接的虛擬中樞

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-VirtualNetwork

虛擬網路

Type:PSVirtualNetwork
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VirtualNetworkName

指定要部署防火牆的虛擬網路名稱。 虛擬網路和防火牆必須屬於相同的資源群組。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Zone

可用性區域清單,表示防火牆需要來自何處。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

String

PSVirtualNetwork

PSPublicIpAddress[]

PSPublicIpAddress

PSAzureFirewallApplicationRuleCollection[]

PSAzureFirewallNatRuleCollection[]

PSAzureFirewallNetworkRuleCollection[]

Hashtable

輸出

PSAzureFirewall