你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

New-AzFirewall

在资源组中创建新的防火墙。

语法

New-AzFirewall
   -Name <String>
   -ResourceGroupName <String>
   -Location <String>
   [-PublicIpAddress <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>]
New-AzFirewall
   -Name <String>
   -ResourceGroupName <String>
   -Location <String>
   -VirtualNetworkName <String>
   [-PublicIpName <String>]
   [-PublicIpAddress <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>]
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>]

说明

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 和端口的目标 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

此示例创建一个防火墙,该防火墙允许端口 8080 上的所有 HTTP 流量,除非它被视为威胁 Intel 的恶意流量。 在“拒绝”模式下运行时,与警报不同,威胁 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 代理和 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 代理,并提供了 2 个 DNS 服务器。 此外,还要求为网络规则设置 DNS 代理,因此,如果有任何具有 FQDN 的网络规则,则 DNS 代理也将用于这些规则。

示例 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

此示例在与防火墙相同的资源组中创建附加到虚拟中心“hub”的防火墙。 将为防火墙分配 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。 默认情况下,它处于禁用状态。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ApplicationRuleCollection

指定新防火墙的应用程序规则集合。

类型:PSAzureFirewallApplicationRuleCollection[]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-AsJob

在后台运行 cmdlet

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

类型:IAzureContextContainer
别名:AzContext, AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DnsServer

要用于 DNS 解析的 DNS 服务器列表,

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EnableDnsProxy

启用 DNS 代理。 默认情况下,它处于禁用状态。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EnableFatFlowLogging

启用 Fat Flow 日志记录。 默认情况下为“false”。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-EnableUDPLogOptimization

启用 UDP 日志优化。 默认情况下为“false”。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-FirewallPolicyId

附加到防火墙的防火墙策略

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Force

强制运行命令而不要求用户确认。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-HubIPAddress

附加到虚拟中心的防火墙的 IP 地址

类型:PSAzureFirewallHubIpAddresses
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Location

指定防火墙的区域。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-ManagementPublicIpAddress

用于管理流量的一个或多个公共 IP 地址。 公共 IP 地址必须使用标准 SKU,并且必须属于与防火墙相同的资源组。

类型:PSPublicIpAddress
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Name

指定此 cmdlet 创建的Azure 防火墙的名称。

类型:String
别名:ResourceName
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-NatRuleCollection

AzureFirewallNatRuleCollections 的列表

类型:PSAzureFirewallNatRuleCollection[]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-NetworkRuleCollection

AzureFirewallNetworkRuleCollections 的列表

类型:PSAzureFirewallNetworkRuleCollection[]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-PrivateRange

流量不会发送到的专用 IP 范围

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-PublicIpAddress

一个或多个公共 IP 地址。 公共 IP 地址必须使用标准 SKU,并且必须属于与防火墙相同的资源组。 强制隧道防火墙不需要输入。

类型:PSPublicIpAddress[]
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-PublicIpName

公共 IP 名称。 公共 IP 必须使用标准 SKU,并且必须属于与防火墙相同的资源组。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-ResourceGroupName

指定要包含防火墙的资源组的名称。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-RouteServerId

防火墙的路由服务器 ID

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SkuName

防火墙的 SKU 名称

类型:String
别名:Sku
接受的值:AZFW_Hub, AZFW_VNet
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-SkuTier

防火墙的 SKU 层

类型:String
接受的值:Standard, Premium, Basic
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Tag

以哈希表的形式进行键值对。 例如:

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

类型:Hashtable
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-ThreatIntelMode

指定威胁智能的操作模式。 默认模式为“警报”,而不是“关闭”。

类型:String
接受的值:Alert, Deny, Off
Position:Named
默认值:Alert
必需:False
接受管道输入:True
接受通配符:False

-ThreatIntelWhitelist

威胁情报的允许列表

类型:PSAzureFirewallThreatIntelWhitelist
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-VirtualHubId

防火墙附加到的虚拟中心

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-VirtualNetwork

虚拟网络

类型:PSVirtualNetwork
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-VirtualNetworkName

指定将为其部署防火墙的虚拟网络的名称。 虚拟网络和防火墙必须属于同一资源组。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Zone

表示防火墙需要来自何处的可用性区域列表。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

String

PSVirtualNetwork

PSPublicIpAddress[]

PSPublicIpAddress

PSAzureFirewallApplicationRuleCollection[]

PSAzureFirewallNatRuleCollection[]

PSAzureFirewallNetworkRuleCollection[]

Hashtable

输出

PSAzureFirewall