本文將教你如何建立安全規則,阻擋指向 80 和 443 埠的外發網路流量,並將這些流量加入你的規則集合中。 如需詳細資訊,請參閱 安全性系統管理員規則。
必要條件
開始設定安全性規則之前,請先確認下列步驟:
- 您瞭解安全性管理規則中的每個元素。
- 您已建立一個 Azure 虛擬網路管理員執行個體。
- 須安裝
Az.Network版本5.3.0或更高版本,才能存取所需的 Cmdlet。
建立安全管理設定
請使用 New-AzNetworkManagerSecurityAdminConfiguration. 建立安全管理設定。 這個配置包含了你在接下來章節中建立的規則集合和規則。
$config = @{
Name = 'SecurityConfig'
ResourceGroupName = 'myAVNMResourceGroup'
NetworkManagerName = 'myAVNM'
}
$securityconfig = New-AzNetworkManagerSecurityAdminConfiguration @config
將網路群組加入設定群組
安全管理員設定適用於一個或多個網路群組。 這些步驟會將網路群組儲存在變數中,並將其加入設定群組。
將網路群組儲存在變數中,方法是使用
Get-AzNetworkManagerGroup。$ng = @{ Name = 'myNetworkGroup' ResourceGroupName = 'myAVNMResourceGroup' NetworkManagerName = 'myAVNM' } $networkgroup = Get-AzNetworkManagerGroup @ng使用
New-AzNetworkManagerSecurityGroupItem為網路群組建立安全性群組項目。$groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id建立組態群組,並加入上一個步驟中的群組項目。
[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.PSNetworkManagerSecurityGroupItem]]$configGroup = @() $configGroup.Add($groupItem)
建立規則集合
使用 New-AzNetworkManagerSecurityAdminRuleCollection 建立安全性系統管理員規則集合。 這個集合適用於你在前一節建立的組態群組。
$collection = @{
Name = 'myRuleCollection'
ResourceGroupName = 'myAVNMResourceGroup'
NetworkManagerName = 'myAVNM'
ConfigName = 'SecurityConfig'
}
$rulecollection = New-AzNetworkManagerSecurityAdminRuleCollection @collection -AppliesToGroup $configGroup
為 80 和 443 埠建立拒絕規則
這些步驟定義規則的位址前綴與埠口,並建立一個規則, Block_HTTP_HTTPS 阻止埠 80 與 443 的外站流量。
使用
New-AzNetworkManagerAddressPrefixItem定義來源和目的地位址前置詞及連接埠。$sourceip = @{ AddressPrefix = 'Internet' AddressPrefixType = 'ServiceTag' } $sourceprefix = New-AzNetworkManagerAddressPrefixItem @sourceip $destinationip = @{ AddressPrefix = '10.0.0.0/24' AddressPrefixType = 'IPPrefix' } $destinationprefix = New-AzNetworkManagerAddressPrefixItem @destinationip [System.Collections.Generic.List[string]]$sourcePortList = @() $sourcePortList.Add("65500") [System.Collections.Generic.List[string]]$destinationPortList = @() $destinationPortList.Add("80") $destinationPortList.Add("443")透過使用
New-AzNetworkManagerSecurityAdminRule來建立安全規則。$rule = @{ Name = 'Block_HTTP_HTTPS' ResourceGroupName = 'myAVNMResourceGroup' NetworkManagerName = 'myAVNM' SecurityAdminConfigurationName = 'SecurityConfig' RuleCollectionName = 'myRuleCollection' Protocol = 'TCP' Access = 'Deny' Priority = '100' Direction = 'Outbound' SourceAddressPrefix = $sourceprefix SourcePortRange = $sourcePortList DestinationAddressPrefix = $destinationprefix DestinationPortRange = $destinationPortList } $securityrule = New-AzNetworkManagerSecurityAdminRule @rule
認可與提交部署
使用 Deploy-AzNetworkManagerCommit 將安全性設定提交到目標區域。 根據你先前建立的安全性管理員組態,建立 $configIds 清單,然後將其傳遞給提交作業。
[System.Collections.Generic.List[string]]$configIds = @()
$configIds.Add($securityconfig.Id)
$regions = @("westus")
$deployment = @{
Name = 'myAVNM'
ResourceGroupName = 'myAVNMResourceGroup'
ConfigurationId = $configIds
TargetLocation = $regions
CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @deployment
刪除安全性設定
如果您不再需要安全設定,請確認以下條件為真,以便您能刪除安全設定本身:
- 目前沒有將任何組態部署到任何區域。
- 刪除與安全性組態相關聯之規則集合中的所有安全性規則。
移除安全性設定部署
透過部署帶有 Deploy-AzNetworkManagerCommit的配置來移除安全部署。
[System.Collections.Generic.List[string]]$configIds = @()
[System.Collections.Generic.List[string]]$regions = @()
$regions.Add("westus")
$removedeployment = @{
Name = 'myAVNM'
ResourceGroupName = 'myAVNMResourceGroup'
ConfigurationId = $configIds
TargetLocation = $regions
CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @removedeployment
拿掉安全性規則
使用 Remove-AzNetworkManagerSecurityAdminRule 移除你先前建立的安全性規則。
$removerule = @{
Name = 'Block_HTTP_HTTPS'
ResourceGroupName = 'myAVNMResourceGroup'
NetworkManagerName = 'myAVNM'
SecurityAdminConfigurationName = 'SecurityConfig'
RuleCollectionName = 'myRuleCollection'
}
Remove-AzNetworkManagerSecurityAdminRule @removerule
移除安全性規則集合
$removecollection = @{
Name = 'myRuleCollection'
ResourceGroupName = 'myAVNMResourceGroup'
NetworkManagerName = 'myAVNM'
SecurityAdminConfigurationName = 'SecurityConfig'
}
Remove-AzNetworkManagerSecurityAdminRuleCollection @removecollection
刪除設定
使用 Remove-AzNetworkManagerSecurityAdminConfiguration 刪除安全性設定。
$removeconfig = @{
Name = 'SecurityConfig'
ResourceGroupName = 'myAVNMResourceGroup'
NetworkManagerName = 'myAVNM'
}
Remove-AzNetworkManagerSecurityAdminConfiguration @removeconfig
下一步
深入瞭解 安全性系統管理員規則。