你当前正在访问 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 防火墙标准版升级到高级防火墙。 升级过程可能需要几分钟时间,不需要服务停机。 成功完成升级后,可以将退出的标准策略替换为高级策略。
示例 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
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-AzureFirewall
The AzureFirewall
类型: | PSAzureFirewall |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Confirm
在运行 cmdlet 之前,提示你进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DefaultProfile
用于与 Azure 通信的凭据、帐户、租户和订阅。
类型: | IAzureContextContainer |
别名: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |