Netwerk verkeer filteren met een netwerk beveiligings groep met behulp van Power shell
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 nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
Azure Cloud Shell gebruiken
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 opdrachten van Cloud Shell 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 Nu proberen in de rechterbovenhoek van een codeblok. Als u Uitproberen selecteert, wordt de code niet automatisch gekopieerd naar Cloud Shell. | ![]() |
| Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. | ![]() |
| Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. | ![]() |
Om de code in dit artikel in Azure Cloud Shell uit te voeren:
Start Cloud Shell.
Selecteer de knop Kopiëren op een codeblok om de code te kopiëren.
Plak de code in de Cloud Shell-sessie door CTRL+Shift+V te selecteren in Windows en Linux of door Cmd+Shift+V op macOS te selecteren.
Selecteer Invoeren om de code uit te voeren.
Als u Power shell lokaal wilt installeren en gebruiken, moet u voor dit artikel gebruikmaken van de Azure PowerShell module versie 1.0.0 of hoger. 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 resource groep 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 toepassings beveiligings groep 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 beveiligings regel 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 myAsgMgmtServers -VM. Voor productie omgevingen, in plaats van poort 3389 aan Internet weer te geven, is het raadzaam om verbinding te maken met Azure-resources die u wilt beheren met een VPN- of particuliere netwerk verbinding.
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 subnet-configuratie met New-AzVirtualNetworkSubnetConfigen schrijf vervolgens de configuratie van het subnet 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 Vm's maakt, haalt u het virtuele netwerk object 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 netwerk interfaces met New-AzNetworkInterfaceen wijs een openbaar IP-adres toe aan de netwerk interface. 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-AzVMConfigen maak de virtuele machine 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 welkomst scherm van IIS wilt weer geven, opent u een Internet browser en gaat 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 netwerk beveiligings groep 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 route tabel makenvoor meer informatie.


