Set-AzFirewall

儲存修改後的防火牆。

Syntax

Set-AzFirewall
   -AzureFirewall <PSAzureFirewall>
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

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 Proxy 和 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。 如果使用者想要再次啟動服務,但使用 可用性區域,則必須呼叫 Zones 方法,以引號定義所需的 可用性區域,並以逗號分隔。 若要移除 可用性區域,必須改為引進$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

輸入

PSAzureFirewall

輸出

PSAzureFirewall