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。