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.

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. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Screenshot that shows an example of Try It for Azure 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. Button to launch Azure Cloud Shell.
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

Pokud se rozhodnete nainstalovat a používat PowerShell místně, tento článek vyžaduje modul Azure PowerShell verze 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í rutiny 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í rutiny 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í rutiny 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 je protokol RDP (port 3389) vystavený internetu pro virtuální počítač myAsgMgmtServers . 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í rutiny 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í rutiny 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í rutiny New-AzVirtualNetworkSubnetConfig a pak zapište konfiguraci podsítě do virtuální sítě pomocí rutiny 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í rutiny Get-AzVirtualNetwork:

$virtualNetwork = Get-AzVirtualNetwork `
 -Name myVirtualNetwork `
 -Resourcegroupname myResourceGroup

Vytvořte veřejnou IP adresu pro každý virtuální počítač pomocí Rutiny New-AzPublicIpAddress:

$publicIpWeb = New-AzPublicIpAddress `
  -AllocationMethod Dynamic `
  -ResourceGroupName myResourceGroup `
  -Location eastus `
  -Name myVmWeb

$publicIpMgmt = New-AzPublicIpAddress `
  -AllocationMethod Dynamic `
  -ResourceGroupName myResourceGroup `
  -Location eastus `
  -Name myVmMgmt

Vytvořte dvě síťová rozhraní pomocí New-AzNetworkInterface a přiřaďte k síťovému rozhraní 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í rutiny New-AzVMConfig a pak vytvořte virtuální počítač pomocí rutiny 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

Pomocí rutiny Get-AzPublicIpAddress vraťte veřejnou IP adresu virtuálního počítače. 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. Pokud chcete zobrazit úvodní obrazovku služby IIS, otevřete internetový prohlížeč a přejděte na 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ž ji nepotřebujete, můžete k odebrání skupiny prostředků a všech prostředků, které obsahuje, použít 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. Postup najdete v tématu Vytvoření směrovací tabulky.