共用方式為


Set-AzFirewall

儲存修改後的防火牆。

語法

Default (預設值)

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 防火牆的威脅情報作業模式

$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 防火牆上啟用胖流量記錄

$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\n  \"FQDNs\": null,\r\n  \"IpAddresses\": null\r\n}"
		Type	                        : "Microsoft.Network/azureFirewalls"
		VirtualHub	                    : null
		Zones	                        : Count = 0
		privateRange	                : null

在本示例中,在防火牆上啟用了啟用胖流日誌記錄。

範例 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。 如果使用者想要再次啟動服務,但使用可用區域,則需要呼叫 Zones 方法,以引號定義所需的可用區域,並以逗號分隔。 如果需要移除可用區域,則需要改為引入 $null 參數。 最後,應該在防火牆上呼叫Allocate方法。 新的 VNet 和公用 IP 必須與防火牆位於相同的資源群組中。 同樣地,若要將變更反映在雲端中,必須呼叫 Set-AzFirewall。

範例 16:在 Azure 防火牆上啟用 Dnstap 記錄

$azFw = Get-AzFirewall -Name "ps184" -ResourceGroupName "ps774"
$azFw.EnableDnstapLogging = $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"
		EnableDnstapLogging	            : "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\n  \"FQDNs\": null,\r\n  \"IpAddresses\": null\r\n}"
		Type	                        : "Microsoft.Network/azureFirewalls"
		VirtualHub	                    : null
		Zones	                        : Count = 0
		privateRange	                : null

在本示例中,在防火牆上啟用了啟用DnstaFlogging Logming。

參數

-AsJob

在背景執行 Cmdlet

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-AzureFirewall

Azure防火牆

參數屬性

類型:PSAzureFirewall
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:True
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False
別名:參閱

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-DefaultProfile

用於與 azure 通訊的認證、帳戶、租用戶和訂用帳戶。

參數屬性

類型:IAzureContextContainer
預設值:None
支援萬用字元:False
不要顯示:False
別名:AzContext, AzureRmContext, AzureCredential

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 指令未執行。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False
別名:威斯康星州

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

PSAzureFirewall

輸出

PSAzureFirewall