Delen via


Netwerkverkeer filteren met een netwerkbeveiligingsgroep met behulp van PowerShell

U kunt het netwerkverkeer inkomend in en uitgaand naar een subnet van een virtueel netwerk filteren met een netwerkbeveiligingsgroep. Netwerkbeveiligingsgroepen bevatten beveiligingsregels die netwerkverkeer filteren op IP-adres, poort en protocol. Beveiligingsregels worden toegepast op resources die zijn geïmplementeerd in een subnet. In dit artikel leert u het volgende:

  • Een netwerkbeveiligingsgroep en beveiligingsregels maken
  • Een virtueel netwerk maken en een netwerkbeveiligingsgroep koppelen aan een subnet
  • Virtuele machines (VM) implementeren in een subnet
  • Verkeersfilters testen

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. Schermopname van een voorbeeld van Probeer het nu voor Azure Cloud Shell.
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Knop om Azure Cloud Shell te starten.
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Schermopname van de knop Cloud Shell in Azure Portal

Azure Cloud Shell gebruiken:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.

  3. Plak de code of opdracht in de Cloud Shell-sessie door Ctrl+Shift+V in Windows en Linux te selecteren of door Cmd+Shift+V te selecteren in macOS.

  4. Selecteer Enter om de code of opdracht uit te voeren.

Als u PowerShell lokaal wilt installeren en gebruiken, is voor dit artikel versie 1.0.0 of hoger van de Azure PowerShell-module vereist. Voer Get-Module -ListAvailable Az uit om te kijken welke versie is geïnstalleerd. Als u PowerShell wilt upgraden, raadpleegt u De Azure PowerShell-module installeren. Als u PowerShell lokaal uitvoert, moet u ook Connect-AzAccount uitvoeren om verbinding te kunnen maken met Azure.

Een netwerkbeveiligingsgroep maken

Een netwerkbeveiligingsgroep bevat beveiligingsregels. Beveiligingsregels geven een bron en doel op. Bronnen en doelen kunnen toepassingsbeveiligingsgroepen zijn.

Toepassingsbeveiligingsgroepen maken

Maak eerst een resourcegroep voor alle resources die in dit artikel zijn gemaakt met New-AzResourceGroup. In het volgende voorbeeld wordt een resourcegroep met de naam gemaakt op de locatie eastus:

New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS

Maak een toepassingsbeveiligingsgroep met New-AzApplicationSecurityGroup. Met een toepassingsbeveiligingsgroep kunt u servers met vergelijkbare poortfiltervereisten groeperen. In het volgende voorbeeld worden twee toepassingsbeveiligingsgroepen gemaakt.

$webAsg = New-AzApplicationSecurityGroup `
  -ResourceGroupName myResourceGroup `
  -Name myAsgWebServers `
  -Location eastus

$mgmtAsg = New-AzApplicationSecurityGroup `
  -ResourceGroupName myResourceGroup `
  -Name myAsgMgmtServers `
  -Location eastus

Beveiligingsregels maken

Maak een beveiligingsregel met New-AzNetworkSecurityRuleConfig. In het volgende voorbeeld wordt een regel gemaakt die inkomend verkeer van internet naar de toepassingsbeveiligingsgroep myWebServers toestaat via de poorten 80 en 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

In dit artikel wordt RDP (poort 3389) blootgesteld aan internet voor de VM myAsgMgmtServers . Voor productieomgevingen wordt u aanbevolen in plaats van poort 3389 voor internet te gebruiken, verbinding te maken met Azure-resources die u wilt beheren met behulp van een VPN of persoonlijke netwerkverbinding.

Een netwerkbeveiligingsgroep maken

Maak een netwerkbeveiligingsgroep met New-AzNetworkSecurityGroup. In het volgende voorbeeld wordt een netwerkbeveiligingsgroep met de naam myNsg gemaakt:

$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName myResourceGroup `
  -Location eastus `
  -Name myNsg `
  -SecurityRules $webRule,$mgmtRule

Een virtueel netwerk maken

Maak een virtueel netwerk met New-AzVirtualNetwork. In het volgende voorbeeld wordt een virtueel netwerk met de naam myVirtualNetwork gemaakt:

$virtualNetwork = New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroup `
  -Location EastUS `
  -Name myVirtualNetwork `
  -AddressPrefix 10.0.0.0/16

Maak een subnetconfiguratie met New-AzVirtualNetworkSubnetConfig en schrijf vervolgens de subnetconfiguratie naar het virtuele netwerk met Set-AzVirtualNetwork. In het volgende voorbeeld wordt een subnet met de naam mySubnet toegevoegd aan het virtuele netwerk en wordt de netwerkbeveiligingsgroep myNsg hieraan gekoppeld:

Add-AzVirtualNetworkSubnetConfig `
  -Name mySubnet `
  -VirtualNetwork $virtualNetwork `
  -AddressPrefix "10.0.2.0/24" `
  -NetworkSecurityGroup $nsg
$virtualNetwork | Set-AzVirtualNetwork

Virtuele machines maken

Voordat u de VIRTUELE machines maakt, haalt u het virtuele netwerkobject op met het subnet met Get-AzVirtualNetwork:

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

Maak een openbaar IP-adres voor elke virtuele machine met New-AzPublicIpAddress:

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

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

Maak twee netwerkinterfaces met New-AzNetworkInterface en wijs een openbaar IP-adres toe aan de netwerkinterface. In het volgende voorbeeld wordt een netwerkinterface gemaakt, wordt het openbare IP-adres van myVmWeb eraan gekoppeld en wordt het tot lid gemaakt van de toepassingsbeveiligingsgroep myAsgWebServers:

$webNic = New-AzNetworkInterface `
  -Location eastus `
  -Name myVmWeb `
  -ResourceGroupName myResourceGroup `
  -SubnetId $virtualNetwork.Subnets[0].Id `
  -ApplicationSecurityGroupId $webAsg.Id `
  -PublicIpAddressId $publicIpWeb.Id

In het volgende voorbeeld wordt een netwerkinterface gemaakt, wordt het openbare IP-adres van myVmMgmt eraan gekoppeld en wordt het tot lid gemaakt van de toepassingsbeveiligingsgroep myAsgMgmtServers:

$mgmtNic = New-AzNetworkInterface `
  -Location eastus `
  -Name myVmMgmt `
  -ResourceGroupName myResourceGroup `
  -SubnetId $virtualNetwork.Subnets[0].Id `
  -ApplicationSecurityGroupId $mgmtAsg.Id `
  -PublicIpAddressId $publicIpMgmt.Id

Maak twee virtuele machines in het virtuele netwerk, zodat u het filteren van verkeer in een latere stap kunt controleren.

Maak een VM-configuratie met New-AzVMConfig en maak vervolgens de VM met New-AzVM. In het volgende voorbeeld wordt een virtuele machine gemaakt die als een webserver fungeert. Met de optie -AsJob wordt de virtuele machine op de achtergrond gemaakt, zodat u met de volgende stap kunt doorgaan:

# 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

Maak een VM die fungeert als een beheerserver:

# 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

Het maken van de virtuele machine duurt een paar minuten. Ga pas verder met de volgende stap als Azure klaar is met het maken van de virtuele machine.

Verkeersfilters testen

Gebruik Get-AzPublicIpAddress om het openbare IP-adres van een virtuele machine op te halen. In het volgende voorbeeld wordt het openbare IP-adres van de VM myVmMgmt opgehaald:

Get-AzPublicIpAddress `
  -Name myVmMgmt `
  -ResourceGroupName myResourceGroup `
  | Select IpAddress

Gebruik de volgende opdracht om een sessie met een extern bureaublad te starten met de VM myVmMgmt vanaf uw lokale computer. Vervang <publicIpAddress> door het IP-adres dat is geretourneerd met de vorige opdracht.

mstsc /v:<publicIpAddress>

Open het gedownloade RDP-bestand. Selecteer Verbinding maken wanneer hierom wordt gevraagd.

Voer de gebruikersnaam en het wachtwoord in die u bij het maken van de VM hebt opgegeven (mogelijk moet u Meer opties en Een ander account gebruiken selecteren om de aanmeldingsgegevens op te geven die u hebt ingevoerd tijdens het maken van de virtuele machine) en selecteer OK. Er wordt mogelijk een certificaatwaarschuwing weergegeven tijdens het aanmelden. Selecteer Ja om door te gaan met de verbinding.

De verbinding slaagt, omdat inkomend verkeer van internet naar de toepassingsbeveiligingsgroep myAsgMgmtServers waarin de netwerkinterface die is gekoppeld aan de VM myVmMgmt zich bevindt, is toegestaan voor poort 3389.

Gebruik de volgende opdracht voor het maken van een externe bureaubladverbinding met de VM myVmWeb, uit de VM myVmMgmt, met de volgende opdracht, vanuit PowerShell:

mstsc /v:myvmWeb

De verbinding slaagt omdat een standaardbeveiligingsregel binnen elke netwerkbeveiligingsgroep verkeer via alle poorten tussen alle IP-adressen binnen een virtueel netwerk toestaat. U kunt geen externe bureaubladverbinding tot stand brengen met de VM myVmWeb via internet omdat de beveiligingsregel voor de myAsgWebServers geen inkomend verkeer van internet toestaat via poort 3389.

Gebruik de volgende opdracht voor het installeren van Microsoft IIS op de VM myVmWeb vanuit PowerShell:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

Nadat de installatie van IIS is voltooid, verbreekt u de verbinding met de VM myVmWeb, waarbij u de externe bureaubladverbinding met VM myVmMgmt behoudt. Als u het IIS-welkomstscherm wilt weergeven, opent u een internetbrowser en bladert u naar http://myVmWeb.

Verbreek de verbinding met de VM myVmMgmt.

Voer op de computer de volgende opdracht vanuit PowerShell uit om het openbare IP-adres van de myVmWeb-server op te halen:

Get-AzPublicIpAddress `
  -Name myVmWeb `
  -ResourceGroupName myResourceGroup `
  | Select IpAddress

Om te bevestigen dat u toegang hebt tot de myVmWeb-webserver buiten Azure, opent u een internetbrowser op uw computer en bladert u naar http://<public-ip-address-from-previous-step>. De verbinding slaagt, omdat inkomend verkeer van internet naar de toepassingsbeveiligingsgroep myAsgWebServers waarin de netwerkinterface die is gekoppeld aan de VM myVmWeb zich bevindt, is toegestaan voor poort 80.

Resources opschonen

U kunt de opdracht Remove-AzResourceGroup gebruiken om de resourcegroep en alle resources die deze bevat te verwijderen, wanneer u deze niet meer nodig hebt:

Remove-AzResourceGroup -Name myResourceGroup -Force

Volgende stappen

In dit artikel hebt u een netwerkbeveiligingsgroep gemaakt en gekoppeld aan een subnet van een virtueel netwerk. Zie Overzicht van netwerkbeveiligingsgroepen en Een beveiligingsgroep beheren voor meer informatie over netwerkbeveiligingsgroepen.

Azure routeert standaard verkeer tussen subnetten. In plaats daarvan kunt u verkeer routeren tussen subnetten via een virtuele machine, die bijvoorbeeld als een firewall fungeert. Zie Een routetabel maken voor meer informatie.