Filtrování síťového provozu pomocí skupiny zabezpečení sítě pomocí PowerShellu
Příchozí a odchozí provoz podsítě virtuální sítě můžete filtrovat pomocí skupiny zabezpečení sítě. Skupiny zabezpečení sítě obsahují pravidla zabezpečení, která filtrují síťový provoz podle IP adresy, portu a protokolu. Pravidla zabezpečení se vztahují na prostředky nasazené v podsíti. V tomto článku získáte informace o těchto tématech:
- Vytvoření skupiny zabezpečení sítě a pravidel zabezpečení
- Vytvoření virtuální sítě a přidružení skupiny zabezpečení sítě k podsíti
- Nasazení virtuálních počítačů do podsítě
- Testování filtrů provozu
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Použití služby Azure Cloud Shell
Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Můžete použít předinstalované příkazy služby Cloud Shell ke spuštění kódu uvedeného v tomto článku, aniž byste museli instalovat cokoli do svého místního prostředí.
Spuštění služby Azure Cloud Shell:
| Možnost | Příklad nebo odkaz |
|---|---|
| Zvolte Vyzkoušet v pravém horním rohu bloku kódu. Výběr Vyzkoušet automaticky nekopíruje kód do služby Cloud Shell. | ![]() |
| Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. | ![]() |
| Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. | ![]() |
Pokud chcete spustit kód uvedený v tomto článku ve službě Azure Cloud Shell, postupujte takto:
Spusťte Cloud Shell.
Vyberte tlačítko Kopírovat na bloku kódu a kód zkopírujte.
Vložte kód do relace Cloud Shell pomocí kláves Ctrl+Shift+V ve Windows a Linuxu nebo pomocí kláves Cmd+Shift+V v systému macOS.
Spusťte kód stisknutím klávesy Enter.
Pokud se rozhodnete nainstalovat a používat PowerShell místně, vyžaduje tento článek verzi modulu Azure PowerShell 1.0.0 nebo novější. Nainstalovanou verzi zjistíte spuštěním příkazu Get-Module -ListAvailable Az. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell. Pokud používáte PowerShell místně, je také potřeba spustit příkaz Connect-AzAccount pro vytvoření připojení k Azure.
Vytvoření skupiny zabezpečení sítě
Skupina zabezpečení sítě obsahuje pravidla zabezpečení. Pravidla zabezpečení určují zdroj a cíl. Zdroji a cíli můžou být skupiny zabezpečení aplikací.
Vytvoření skupin zabezpečení aplikací
Nejprve vytvořte skupinu prostředků pro všechny prostředky vytvořené v tomto článku pomocí New-AzResourceGroup. Následující příklad vytvoří skupinu prostředků v umístění eastus:
New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS
Vytvořte skupinu zabezpečení aplikace pomocí New-AzApplicationSecurityGroup. Skupina zabezpečení aplikací umožňuje seskupovat servery s podobnými požadavky na filtrování portů. Následující příklad vytvoří dvě skupiny zabezpečení aplikací.
$webAsg = New-AzApplicationSecurityGroup `
-ResourceGroupName myResourceGroup `
-Name myAsgWebServers `
-Location eastus
$mgmtAsg = New-AzApplicationSecurityGroup `
-ResourceGroupName myResourceGroup `
-Name myAsgMgmtServers `
-Location eastus
Vytvoření pravidel zabezpečení
Vytvořte pravidlo zabezpečení pomocí New-AzNetworkSecurityRuleConfig. Následující příklad vytvoří pravidlo povolující příchozí provoz z internetu do skupiny zabezpečení aplikací myWebServers na portech 80 a 443:
$webRule = New-AzNetworkSecurityRuleConfig `
-Name "Allow-Web-All" `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 100 `
-SourceAddressPrefix Internet `
-SourcePortRange * `
-DestinationApplicationSecurityGroupId $webAsg.id `
-DestinationPortRange 80,443
The following example creates a rule that allows traffic inbound from the internet to the *myMgmtServers* application security group over port 3389:
$mgmtRule = New-AzNetworkSecurityRuleConfig `
-Name "Allow-RDP-All" `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 110 `
-SourceAddressPrefix Internet `
-SourcePortRange * `
-DestinationApplicationSecurityGroupId $mgmtAsg.id `
-DestinationPortRange 3389
V tomto článku se k Internetu pro virtuální počítač myAsgMgmtServers zveřejňuje protokol RDP (port 3389). V produkčních prostředích se místo zveřejňování portu 3389 na internetu doporučuje připojovat k prostředkům Azure, které chcete spravovat, pomocí sítě VPN nebo privátního síťového připojení.
Vytvoření skupiny zabezpečení sítě
Vytvořte skupinu zabezpečení sítě pomocí New-AzNetworkSecurityGroup. Následující příklad vytvoří skupinu zabezpečení sítě myNsg:
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName myResourceGroup `
-Location eastus `
-Name myNsg `
-SecurityRules $webRule,$mgmtRule
Vytvoření virtuální sítě
Vytvořte virtuální síť pomocí New-AzVirtualNetwork. Následující příklad vytvoří virtuální síť myVirtualNetwork:
$virtualNetwork = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-Name myVirtualNetwork `
-AddressPrefix 10.0.0.0/16
Vytvořte konfiguraci podsítě pomocí New-AzVirtualNetworkSubnetConfiga pak zapište konfiguraci podsítě do virtuální sítě pomocí set-AzVirtualNetwork. Následující příklad do virtuální sítě přidá podsíť mySubnet a přidruží k ní skupinu zabezpečení sítě myNsg:
Add-AzVirtualNetworkSubnetConfig `
-Name mySubnet `
-VirtualNetwork $virtualNetwork `
-AddressPrefix "10.0.2.0/24" `
-NetworkSecurityGroup $nsg
$virtualNetwork | Set-AzVirtualNetwork
Vytvoření virtuálních počítačů
Před vytvořením virtuálních počítačů načtěte objekt virtuální sítě s podsítí pomocí Get-AzVirtualNetwork:
$virtualNetwork = Get-AzVirtualNetwork `
-Name myVirtualNetwork `
-Resourcegroupname myResourceGroup
Vytvořte veřejnou IP adresu pro každý virtuální počítač pomocí New-AzPublicIpAddress:
$publicIpWeb = New-AzPublicIpAddress `
-AllocationMethod Dynamic `
-ResourceGroupName myResourceGroup `
-Location eastus `
-Name myVmWeb
$publicIpMgmt = New-AzPublicIpAddress `
-AllocationMethod Dynamic `
-ResourceGroupName myResourceGroup `
-Location eastus `
-Name myVmMgmt
Pomocí New-AzNetworkInterfacevytvořte dvě síťová rozhraní a k síťovému rozhraní přiřaďte veřejnou IP adresu. Následující příklad vytvoří síťové rozhraní, přidruží k němu veřejnou IP adresu myVmWeb a udělá z něj člena skupiny zabezpečení aplikací myAsgWebServers:
$webNic = New-AzNetworkInterface `
-Location eastus `
-Name myVmWeb `
-ResourceGroupName myResourceGroup `
-SubnetId $virtualNetwork.Subnets[0].Id `
-ApplicationSecurityGroupId $webAsg.Id `
-PublicIpAddressId $publicIpWeb.Id
Následující příklad vytvoří síťové rozhraní, přidruží k němu veřejnou IP adresu myVmMgmt a udělá z něj člena skupiny zabezpečení aplikací myAsgMgmtServers:
$mgmtNic = New-AzNetworkInterface `
-Location eastus `
-Name myVmMgmt `
-ResourceGroupName myResourceGroup `
-SubnetId $virtualNetwork.Subnets[0].Id `
-ApplicationSecurityGroupId $mgmtAsg.Id `
-PublicIpAddressId $publicIpMgmt.Id
Vytvořte ve virtuální síti dva virtuální počítače, abyste v pozdějším kroku mohli ověřit filtrování provozu.
Vytvořte konfiguraci virtuálního počítače pomocí New-AzVMConfiga pak vytvořte virtuální počítač pomocí New-AzVM. Následující příklad vytvoří virtuální počítač, který bude sloužit jako webový server. Pomocí možnosti -AsJob se virtuální počítač vytvoří na pozadí, takže můžete pokračovat k dalšímu kroku:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfig = New-AzVMConfig `
-VMName myVmWeb `
-VMSize Standard_DS1_V2 | `
Set-AzVMOperatingSystem -Windows `
-ComputerName myVmWeb `
-Credential $cred | `
Set-AzVMSourceImage `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest | `
Add-AzVMNetworkInterface `
-Id $webNic.Id
New-AzVM `
-ResourceGroupName myResourceGroup `
-Location eastus `
-VM $webVmConfig `
-AsJob
Vytvořte virtuální počítač, který bude sloužit jako server pro správu:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
# Create the web server virtual machine configuration and virtual machine.
$mgmtVmConfig = New-AzVMConfig `
-VMName myVmMgmt `
-VMSize Standard_DS1_V2 | `
Set-AzVMOperatingSystem -Windows `
-ComputerName myVmMgmt `
-Credential $cred | `
Set-AzVMSourceImage `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest | `
Add-AzVMNetworkInterface `
-Id $mgmtNic.Id
New-AzVM `
-ResourceGroupName myResourceGroup `
-Location eastus `
-VM $mgmtVmConfig
Vytvoření virtuálního počítače trvá několik minut. Nepokračujte dalším krokem, dokud Azure nedokončí vytváření virtuálního počítače.
Testování filtrů provozu
K vrácení veřejné IP adresy virtuálního počítače použijte příkaz Get-AzPublicIpAddress . Následující příklad vrátí veřejnou IP adresu virtuálního počítače myVmMgmt:
Get-AzPublicIpAddress `
-Name myVmMgmt `
-ResourceGroupName myResourceGroup `
| Select IpAddress
Pomocí následujícího příkazu vytvořte ze svého místního počítače relaci vzdálené plochy s virtuálním počítačem myVmMgmt. Nahraďte <publicIpAddress> IP adresou vrácenou předchozím příkazem.
mstsc /v:<publicIpAddress>
Otevřete stažený soubor RDP. Pokud se zobrazí výzva, vyberte Připojit.
Zadejte uživatelské jméno a heslo, které jste zadali při vytváření virtuálního počítače (abyste mohli zadat přihlašovací údaje, které jste zadali při vytváření virtuálního počítače, možná budete muset vybrat Další možnosti a pak Použít jiný účet), a pak vyberte OK. Během procesu přihlášení se může zobrazit upozornění certifikátu. Vyberte Ano a pokračujte v připojování.
Připojení bude úspěšné, protože do skupiny zabezpečení aplikací myAsgMgmtServers, která obsahuje síťové rozhraní připojené k virtuálnímu počítači myVmMgmt, je povolený příchozí provoz z internetu na portu 3389.
Pomocí následujícího příkazu v PowerShellu vytvořte připojení ke vzdálené ploše virtuálního počítače myVmWeb z virtuálního počítače myVmMgmt:
mstsc /v:myvmWeb
Připojení bude úspěšné, protože výchozí pravidlo zabezpečení v obou skupinách zabezpečení sítě povoluje provoz na všech portech mezi všemi IP adresami v rámci virtuální sítě. K virtuálnímu počítači myVmWeb nemůžete vytvořit připojení ke vzdálené ploše z internetu, protože pravidlo zabezpečení pro skupinu zabezpečení aplikací myAsgWebServers nepovoluje příchozí provoz na portu 3389 z internetu.
Pomocí následujícího příkazu v PowerShellu nainstalujte na virtuální počítač myVmWeb službu Microsoft IIS:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Po dokončení instalace služby IIS se odpojte od virtuálního počítače myVmWeb. Stále zůstanete připojeni ke vzdálené ploše virtuálního počítače myVmMgmt. Chcete-li zobrazit uvítací obrazovku služby IIS, otevřete internetový prohlížeč a přejděte na adresu http: / /myVmWeb.
Odpojte se od virtuálního počítače myVmMgmt.
Zadáním následujícího příkazu v PowerShellu na svém počítači načtěte veřejnou IP adresu serveru myVmWeb:
Get-AzPublicIpAddress `
-Name myVmWeb `
-ResourceGroupName myResourceGroup `
| Select IpAddress
Pokud chcete ověřit, že máte přístup k webovému serveru myVmWeb i mimo Azure, otevřete na svém počítači internetový prohlížeč a přejděte na adresu http://<public-ip-address-from-previous-step>. Připojení bude úspěšné, protože do skupiny zabezpečení aplikací myAsgWebServers, která obsahuje síťové rozhraní připojené k virtuálnímu počítači myVmWeb, je povolený příchozí provoz z internetu na portu 80.
Vyčištění prostředků
Pokud už je nepotřebujete, můžete k odebrání skupiny prostředků a všech prostředků, které obsahuje, použít příkaz Remove-AzResourceGroup :
Remove-AzResourceGroup -Name myResourceGroup -Force
Další kroky
V tomto článku jste vytvořili skupinu zabezpečení sítě a přidružíte ji k podsíti virtuální sítě. Další informace o skupinách zabezpečení sítě najdete v tématech Přehled skupin zabezpečení sítě a Správa skupiny zabezpečení sítě.
Provoz mezi podsítěmi směruje ve výchozím nastavení Azure. Místo toho se můžete rozhodnout směrovat provoz mezi podsítěmi například prostřednictvím virtuálního počítače, který slouží jako brána firewall. Další informace o postupu najdete v tématu Vytvoření směrovací tabulky.


