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. | |
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. |
Azure Cloud Shell gebruiken:
Start Cloud Shell.
Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.
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.
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.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor