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

New-AzFirewall

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

注意

这是我们文档的早期版本。 有关最新信息 ,请参阅最新版本

语法

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]
   [-IdentifyTopFatFlow]
   [-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]
   [-IdentifyTopFatFlow]
   [-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]
   [-IdentifyTopFatFlow]
   [-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

本示例创建了一个防火墙,该防火墙将目标为 10.1.2.3:80 到 10.2.3.4:8080 威胁 Intel 的所有数据包的目标 IP 和端口已在此示例中关闭。

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

本示例在防火墙所在的同一资源组中创建附加到虚拟中心“中心”的防火墙。 将为防火墙分配 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
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationRuleCollection

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

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

-AsJob

在后台运行 cmdlet

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

-Confirm

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

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

-DefaultProfile

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

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

-DnsServer

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

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

-EnableDnsProxy

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

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

-FirewallPolicyId

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

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

-Force

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

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

-HubIPAddress

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

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

-IdentifyTopFatFlow

标识顶级脂肪流。 默认情况下为 false。

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

-Location

指定防火墙的区域。

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

-ManagementPublicIpAddress

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

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

-Name

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

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

-NatRuleCollection

AzureFirewallNatRuleCollections 列表

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

-NetworkRuleCollection

AzureFirewallNetworkRuleCollections 的列表

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

-PrivateRange

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

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

-PublicIpAddress

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

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

-PublicIpName

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

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

-ResourceGroupName

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

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

-SkuName

防火墙的 SKU 名称

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

-SkuTier

防火墙的 SKU 层

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

-Tag

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

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

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

-ThreatIntelMode

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

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

-ThreatIntelWhitelist

威胁智能的允许列表

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

-VirtualHubId

防火墙附加到的虚拟中心

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

-VirtualNetwork

虚拟网络

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

-VirtualNetworkName

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

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

-WhatIf

显示在此 cmdlet 运行的情况下将会发生什么。 此 cmdlet 未运行。

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

-Zone

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

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

输入

String

PSVirtualNetwork

PSPublicIpAddress[]

PSPublicIpAddress

PSAzureFirewallApplicationRuleCollection[]

PSAzureFirewallNatRuleCollection[]

PSAzureFirewallNetworkRuleCollection[]

Hashtable

输出

PSAzureFirewall