Set-AzFirewall
儲存修改後的防火牆。
語法
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
類型: | 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 |