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

New-AzureRmFirewall

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

重要

由于 Az PowerShell 模块现在已具有 AzureRM PowerShell 模块的所有功能及更多功能,因此我们将于 2024 年 2 月 29 日停用 AzureRM PowerShell 模块。

若要避免服务中断,请更新脚本,在 2024 年 2 月 29 日结束之前将使用 AzureRM PowerShell 模块的脚本更新为使用 Az PowerShell 模块。 若要自动更新脚本,请按照快速入门指南操作。

语法

New-AzureRmFirewall
   -Name <String>
   -ResourceGroupName <String>
   -Location <String>
   [-VirtualNetworkName <String>]
   [-PublicIpName <String>]
   [-ApplicationRuleCollection <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSAzureFirewallApplicationRuleCollection]>]
   [-NatRuleCollection <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSAzureFirewallNatRuleCollection]>]
   [-NetworkRuleCollection <System.Collections.Generic.List`1[Microsoft.Azure.Commands.Network.Models.PSAzureFirewallNetworkRuleCollection]>]
   [-Tag <Hashtable>]
   [-Force]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

New-AzureRmFirewall cmdlet 创建Azure 防火墙。

示例

1:创建附加到虚拟网络的防火墙

New-AzureRmFirewall -Name "azFw" -ResourceGroupName "rg" -Location centralus -VirtualNetworkName "vnet" -PublicIpName "pip-name"

此示例在与防火墙相同的资源组中创建附加到虚拟网络“vnet”的防火墙。 由于未指定任何规则,防火墙将阻止所有流量 (默认行为) 。

2:创建允许所有 HTTPS 流量的防火墙

$rule = New-AzureRmFirewallApplicationRule -Name R1 -Protocol "https:443" -TargetFqdn "*" 
$ruleCollection = New-AzureRmFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow"
New-AzureRmFirewall -Name "azFw" -ResourceGroupName "rg" -Location centralus -VirtualNetworkName "vnet" -PublicIpName "pip-name" -ApplicationRuleCollection $ruleCollection

此示例创建一个防火墙,该防火墙允许端口 443 上的所有 HTTPS 流量。

3:DNAT - 将发往 10.1.2.3:80 的流量重定向到 10.2.3.4:8080

$rule = New-AzureRmFirewallNatRule -Name "natRule" -Protocol "TCP" -SourceAddress "*" -DestinationAddress "10.1.2.3" -DestinationPort "80" -TranslatedAddress "10.2.3.4" -TranslatedPort "8080"
$ruleCollection = New-AzureRmFirewallNatRuleCollection -Name "NatRuleCollection" -Priority 1000 -Rule $rule
New-AzureRmFirewall -Name "azFw" -ResourceGroupName "rg" -Location centralus -NatRuleCollection $ruleCollection

此示例创建了一个防火墙,该防火墙将发往 10.1.2.3:80 的所有数据包的目标 IP 和端口转换为 10.2.3.4:8080

参数

-ApplicationRuleCollection

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

Type:List<T>[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:AzureRmContext, AzureCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Force

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

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

-Name

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

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

-NatRuleCollection

AzureFirewallNatRuleCollections 的列表

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

-NetworkRuleCollection

AzureFirewallNetworkRuleCollections 的列表

Type:List<T>[PSAzureFirewallNetworkRuleCollection]
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

-Tag

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

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

Type:Hashtable
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

输入

None

此 cmdlet 不接受任何输入。

输出

Microsoft.Azure.Commands.Network.Models.PSFirewall