你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Set-AzFirewall
保存修改后的防火墙。
语法
Set-AzFirewall
-AzureFirewall <PSAzureFirewall>
[-AsJob]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
Set-AzFirewall cmdlet 更新Azure 防火墙。
示例
1:更新防火墙应用程序规则集合的优先级
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$ruleCollection = $azFw.GetApplicationRuleCollectionByName("ruleCollectionName")
$ruleCollection.Priority = 101
Set-AzFirewall -AzureFirewall $azFw
此示例更新Azure 防火墙的现有规则集合的优先级。 假设资源组“rg”中Azure 防火墙“AzureFirewall”包含名为“ruleCollectionName”的应用程序规则集合,上述命令将更改该规则集合的优先级,并在之后更新Azure 防火墙。 如果没有 Set-AzFirewall 命令,则对本地$azFw对象执行的所有操作都不会反映在服务器上。
2:创建Azure 防火墙并稍后设置应用程序规则集合
$azFw = New-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg" -VirtualNetworkName "vnet-name" -PublicIpName "pip-name"
$rule = New-AzFirewallApplicationRule -Name R1 -Protocol "http:80","https:443" -TargetFqdn "*google.com", "*microsoft.com" -SourceAddress "10.0.0.0"
$RuleCollection = New-AzFirewallApplicationRuleCollection -Name RC1 -Priority 100 -Rule $rule -ActionType "Allow"
$azFw.ApplicationRuleCollections = $RuleCollection
$azFw | Set-AzFirewall
在此示例中,首先创建防火墙,而无需任何应用程序规则集合。 之后会创建应用程序规则和应用程序规则集合,然后在内存中修改防火墙对象,而不会影响云中的实际配置。 若要在云中反映更改,必须调用 Set-AzFirewall。
3:更新Azure 防火墙的威胁 Intel 操作模式
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.ThreatIntelMode = "Deny"
Set-AzFirewall -AzureFirewall $azFw
此示例更新资源组“rg”中Azure 防火墙“AzureFirewall”的威胁 Intel 操作模式。 如果没有 Set-AzFirewall 命令,则对本地$azFw对象执行的所有操作都不会反映在服务器上。
4:解除分配和分配防火墙
$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw
$firewall.Deallocate()
$firewall | Set-AzFirewall
$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName
$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName
$firewall.Allocate($vnet, $pip)
$firewall | Set-AzFirewall
此示例检索防火墙、解除分配防火墙并保存它。 Deallocate 命令会删除正在运行的服务,但会保留防火墙的配置。 若要在云中反映更改,必须调用 Set-AzFirewall。 如果用户希望再次启动服务,则应在防火墙上调用 Allocate 方法。 新的 VNet 和公共 IP 必须与防火墙位于同一资源组中。 同样,若要在云中反映更改,必须调用 Set-AzFirewall。
5:为强制隧道方案分配管理公共 IP 地址
$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName
$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName
$mgmtPip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name MgmtPublicIpName
$firewall.Allocate($vnet, $pip, $mgmtPip)
$firewall | Set-AzFirewall
此示例为强制隧道方案分配具有管理公共 IP 地址和子网的防火墙。 VNet 必须包含名为“AzureFirewallManagementSubnet”的子网。
6:将公共 IP 地址添加到Azure 防火墙
$pip = New-AzPublicIpAddress -Name "azFwPublicIp1" -ResourceGroupName "rg" -Sku "Standard" -Location "centralus" -AllocationMethod Static
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.AddPublicIpAddress($pip)
$azFw | Set-AzFirewall
在此示例中,附加到防火墙的公共 IP 地址“azFwPublicIp1”。
7:从Azure 防火墙中删除公共 IP 地址
$pip = Get-AzPublicIpAddress -Name "azFwPublicIp1" -ResourceGroupName "rg"
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.RemovePublicIpAddress($pip)
$azFw | Set-AzFirewall
在此示例中,从防火墙分离的公共 IP 地址“azFwPublicIp1”。
8:更改Azure 防火墙上的管理公共 IP 地址
$newMgmtPip = New-AzPublicIpAddress -Name "azFwMgmtPublicIp2" -ResourceGroupName "rg" -Sku "Standard" -Location "centralus" -AllocationMethod Static
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.ManagementIpConfiguration.PublicIpAddress = $newMgmtPip
$azFw | Set-AzFirewall
在此示例中,防火墙的管理公共 IP 地址将更改为“AzFwMgmtPublicIp2”
9:将 DNS 配置添加到Azure 防火墙
$dnsServers = @("10.10.10.1", "20.20.20.2")
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.DNSEnableProxy = $true
$azFw.DNSServer = $dnsServers
$azFw | Set-AzFirewall
在此示例中,DNS 代理和 DNS 服务器配置附加到防火墙。
10:更新防火墙应用程序规则集合中现有规则的目标
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$ruleCollection = $azFw.GetNetworkRuleCollectionByName("ruleCollectionName")
$rule=$ruleCollection.GetRuleByName("ruleName")
$rule.DestinationAddresses = "10.10.10.10"
Set-AzFirewall -AzureFirewall $azFw
此示例更新Azure 防火墙的规则集合中现有规则的目标。 这允许在 IP 地址动态更改时自动更新规则。
11:在 Azure 防火墙 上允许活动 FTP
$azFw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azFw.AllowActiveFTP = $true
$azFw | Set-AzFirewall
在此示例中,防火墙上允许使用活动 FTP。
12:从虚拟中心解除分配和分配防火墙
$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw
$firewall.Deallocate()
$firewall | Set-AzFirewall
$Hub = Get-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub"
$firewall.Allocate($Hub.Id)
$firewall | Set-AzFirewall
此示例检索中心防火墙,解除分配中心防火墙,并保存它。 Deallocate 命令删除对虚拟中心的引用,但会保留防火墙的配置。 若要在云中反映更改,必须调用 Set-AzFirewall。 Allocate 方法将虚拟中心引用分配给防火墙。 同样,若要在云中反映更改,必须调用 Set-AzFirewall。
13:在Azure 防火墙上启用 Fat Flow 日志记录
$azFw = Get-AzFirewall -Name "ps184" -ResourceGroupName "ps774"
$azFw.EnableFatFlowLogging = $true
$azFw | Set-AzFirewall
AllowActiveFTP : null
ApplicationRuleCollections : Count = 0
ApplicationRuleCollectionsText : "[]"
DNSEnableProxy : null
DNSServer : null
DNSServersText : "null"
Etag : "W/\"7533fa1b-8588-400d-857c-6bc372e14f1b\""
FirewallPolicy : null
HubIPAddresses : null
Id : "/subscriptions/aeb5b02a-0f18-45a4-86d6-81808115cacf/resourceGroups/ps774/providers/Microsoft.Network/azureFirewalls/ps184"
EnableFatFlowLogging : "true"
IpConfigurations : Count = 0
IpConfigurationsText : "[]"
Location : "eastus"
ManagementIpConfiguration : null
ManagementIpConfigurationText : "null"
Name : "ps184"
NatRuleCollections : Count = 0
NatRuleCollectionsText : "[]"
NetworkRuleCollections : Count = 0
NetworkRuleCollectionsText : "[]"
PrivateRange : null
PrivateRangeText : "null"
ProvisioningState : "Succeeded"
ResourceGroupName : "ps774"
ResourceGuid : null
Sku : {Microsoft.Azure.Commands.Network.Models.PSAzureFirewallSku}
Tag : null
TagsTable : null
ThreatIntelMode : "Alert"
ThreatIntelWhitelist : {Microsoft.Azure.Commands.Network.Models.PSAzureFirewallThreatIntelWhitelist}
ThreatIntelWhitelistText : "{\r
\"FQDNs\": null,\r
\"IpAddresses\": null\r\n}"
Type : "Microsoft.Network/azureFirewalls"
VirtualHub : null
Zones : Count = 0
privateRange : null
在此示例中,防火墙上启用了“启用 Fat Flow 日志记录”。
14:将标准 Azure 防火墙版升级到 高级版
$azfw = Get-AzFirewall -Name "AzureFirewall" -ResourceGroupName "rg"
$azfw.Sku.Tier="Premium"
Set-AzFirewall -AzureFirewall $azfw
此示例将现有的 Azure 防火墙 Standard 升级到高级版防火墙。 升级过程可能需要几分钟时间,不需要服务停机。 成功完成升级后,可以将退出的标准策略替换为高级策略。
15:使用可用性区域解除分配和分配防火墙
$firewall=Get-AzFirewall -ResourceGroupName rgName -Name azFw
$firewall.Deallocate()
$firewall | Set-AzFirewall
$vnet = Get-AzVirtualNetwork -ResourceGroupName rgName -Name anotherVNetName
$pip = Get-AzPublicIpAddress -ResourceGroupName rgName -Name publicIpName
$firewall.Zones = "1","2","3"
$firewall.Allocate($vnet, $pip)
$firewall | Set-AzFirewall
此示例检索防火墙、解除分配防火墙并保存它。 Deallocate 命令会删除正在运行的服务,但会保留防火墙的配置。 若要在云中反映更改,必须调用 Set-AzFirewall。 如果用户想要再次启动服务,但使用 可用性区域,则需要调用 Zone 方法,以引号定义所需的可用性区域,并用逗号分隔。 如果需要删除可用性区域,则需要改为引入$null参数。 最后,应在防火墙上调用 Allocate 方法。 新的 VNet 和公共 IP 必须与防火墙位于同一资源组中。 同样,若要在云中反映更改,必须调用 Set-AzFirewall。
参数
-AsJob
在后台运行 cmdlet
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AzureFirewall
The AzureFirewall
Type: | PSAzureFirewall |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
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 |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
输出
相关链接
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈