Du kan använda en nätverkssäkerhetsgrupp för att filtrera inkommande och utgående nätverkstrafik till och från Azure-resurser i ett virtuellt Azure-nätverk.
Nätverkssäkerhetsgrupper innehåller säkerhetsregler som filtrerar nätverkstrafik efter IP-adress, port och protokoll. När en nätverkssäkerhetsgrupp är associerad med ett undernät tillämpas säkerhetsregler på resurser som distribueras i det undernätet.
I den här guiden lär du dig att:
- Skapa en nätverkssäkerhetsgrupp och säkerhetsregler
- Skapa programsäkerhetsgrupper
- Skapa ett virtuellt nätverk och associera en nätverkssäkerhetsgrupp med ett undernät
- Distribuera virtuella datorer och associera deras nätverksgränssnitt med programsäkerhetsgrupperna
Förutsättningar
Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
Alternativ |
Exempel/länk |
Välj Testa det i det övre högra hörnet av en kod- eller kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. |
|
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. |
|
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |
|
Så här använder du Azure Cloud Shell:
Starta Cloud Shell.
Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.
Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.
Välj Retur för att köra koden eller kommandot.
Om du väljer att installera och använda PowerShell lokalt kräver den här artikeln Azure PowerShell-modulen version 1.0.0 eller senare. Kör Get-Module -ListAvailable Az
för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Connect-AzAccount
för att skapa en anslutning till Azure.
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
- Den här artikeln kräver version 2.0.28 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Följande procedur skapar ett virtuellt nätverk med ett resursundernät.
I portalen söker du efter och väljer Virtuella nätverk.
På sidan Virtuella nätverk väljer du + Skapa.
På fliken Grundläggande i Skapa virtuellt nätverk anger eller väljer du följande information:
Inställning |
Värde |
Projektinformation |
|
Prenumeration |
Välj din prenumeration. |
Resursgrupp |
Välj Skapa ny.
Ange test-rg i Namn.
Välj OK. |
Instansinformation |
|
Namn |
Ange vnet-1. |
Region |
Välj East US 2. |
Välj Nästa för att fortsätta till fliken Säkerhet .
Välj Nästa för att gå vidare till fliken IP-adresser .
I rutan adressutrymme under Undernät väljer du standardundernätet .
I fönstret Redigera undernät anger eller väljer du följande information:
Inställning |
Värde |
Information om undernät |
|
Undernätsmall |
Låt standardvärdet vara Standard. |
Namn |
Ange undernät-1. |
Startadress |
Låt standardvärdet vara 10.0.0.0. |
Storlek på undernät |
Lämna standardvärdet /24(256 adresser). |
Välj Spara.
Välj Granska + skapa längst ned på skärmen. När valideringen har slutförts väljer du Skapa.
Skapa först en resursgrupp för alla resurser som skapats i den här artikeln med New-AzResourceGroup. I följande exempel skapas en resursgrupp på platsen westus2 :
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Skapa ett virtuellt nätverk med hjälp av New-AzVirtualNetwork. I följande exempel skapas en virtuell med namnet vnet-1:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Skapa en undernätskonfiguration med New-AzVirtualNetworkSubnetConfig och skriv sedan undernätskonfigurationen till det virtuella nätverket med Set-AzVirtualNetwork. I följande exempel läggs ett undernät med namnet subnet-1 till det virtuella nätverket och nätverkssäkerhetsgruppen nsg-1 associeras med den:
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Skapa först en resursgrupp för alla resurser som skapas i den här artikeln med az group create. I följande exempel skapas en resursgrupp på platsen westus2 :
az group create \
--name test-rg \
--location westus2
Skapa ett virtuellt nätverk med kommandot az network vnet create. I följande exempel skapas en virtuell med namnet vnet-1:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Lägg till ett undernät i ett virtuellt nätverk med az network vnet subnet create. I följande exempel läggs ett undernät med namnet subnet-1 till det virtuella nätverket och nätverkssäkerhetsgruppen nsg-1 associeras med den:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
Skapa programsäkerhetsgrupper
Med en programsäkerhetsgrupp (ASG) kan du gruppera servrar med liknande funktioner, till exempel webbservrar.
I sökrutan överst i portalen anger du Programsäkerhetsgrupp. Välj Programsäkerhetsgrupper i sökresultaten.
Välj + Skapa.
På fliken Grundläggande i Skapa en programsäkerhetsgrupp anger du eller väljer den här informationen:
Inställning |
Värde |
Projektinformation |
|
Prenumeration |
Välj din prenumeration. |
Resursgrupp |
Välj test-rg. |
Instansinformation |
|
Namn |
Ange asg-web. |
Region |
Välj East US 2. |
Välj Granska + skapa.
Välj + Skapa.
Upprepa föregående steg och ange följande värden:
Inställning |
Värde |
Projektinformation |
|
Prenumeration |
Välj din prenumeration. |
Resursgrupp |
Välj test-rg. |
Instansinformation |
|
Namn |
Ange asg-mgmt. |
Region |
Välj East US 2. |
Välj Granska + skapa.
Välj Skapa.
Skapa en programsäkerhetsgrupp med New-AzApplicationSecurityGroup. En programsäkerhetsgrupp gör att du kan gruppera servrar med liknande portfiltreringskrav. I följande exempel skapas två programsäkerhetsgrupper.
$web = @{
ResourceGroupName = "test-rg"
Name = "asg-web"
Location = "westus2"
}
$webAsg = New-AzApplicationSecurityGroup @web
$mgmt = @{
ResourceGroupName = "test-rg"
Name = "asg-mgmt"
Location = "westus2"
}
$mgmtAsg = New-AzApplicationSecurityGroup @mgmt
Skapa en programsäkerhetsgrupp med az network asg create. En programsäkerhetsgrupp gör att du kan gruppera servrar med liknande portfiltreringskrav. I följande exempel skapas två programsäkerhetsgrupper.
az network asg create \
--resource-group test-rg \
--name asg-web \
--location westus2
az network asg create \
--resource-group test-rg \
--name asg-mgmt \
--location westus2
Skapa en nätverkssäkerhetsgrupp
En nätverkssäkerhetsgrupp (NSG) skyddar nätverkstrafiken i ditt virtuella nätverk.
I sökrutan överst i portalen anger du Nätverkssäkerhetsgrupp. Välj Nätverkssäkerhetsgrupper i sökresultaten.
Kommentar
I sökresultaten för Nätverkssäkerhetsgrupper kan du se Nätverkssäkerhetsgrupper (klassisk). Välj Nätverkssäkerhetsgrupper.
Välj + Skapa.
På fliken Grundinställningar i Skapa nätverkssäkerhetsgrupp anger du eller väljer den här informationen:
Inställning |
Värde |
Projektinformation |
|
Prenumeration |
Välj din prenumeration. |
Resursgrupp |
Välj test-rg. |
Instansinformation |
|
Namn |
Ange nsg-1. |
Plats |
Välj East US 2. |
Välj Granska + skapa.
Välj Skapa.
Skapa en nätverkssäkerhetsgrupp med New-AzNetworkSecurityGroup. I följande exempel skapas en nätverkssäkerhetsgrupp med namnet nsg-1:
$nsgParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "nsg-1"
}
$nsg = New-AzNetworkSecurityGroup @nsgParams
Skapa en nätverkssäkerhetsgrupp med az network nsg create. I följande exempel skapas en nätverkssäkerhetsgrupp med namnet nsg-1:
# Create a network security group
az network nsg create \
--resource-group test-rg \
--name nsg-1
Associera nätverkssäkerhetsgrupp till undernät
I det här avsnittet associerar du nätverkssäkerhetsgruppen med undernätet för det virtuella nätverk som du skapade tidigare.
I sökrutan överst i portalen anger du Nätverkssäkerhetsgrupp. Välj Nätverkssäkerhetsgrupper i sökresultaten.
Välj nsg-1.
Välj Undernät i avsnittet Inställningar i nsg-1.
På sidan Undernät väljer du + Associera:
Under Associera undernät väljer du vnet-1 (test-rg) för Virtuellt nätverk.
Välj undernät-1 för undernät och välj sedan OK.
Använd Get-AzVirtualNetwork för att hämta det virtuella nätverksobjektet och använd sedan Set-AzVirtualNetworkSubnetConfig för att associera nätverkssäkerhetsgruppen med undernätet. I följande exempel hämtas det virtuella nätverksobjektet och undernätskonfigurationen uppdateras för att associera nätverkssäkerhetsgruppen:
# Retrieve the virtual network
$vnet = Get-AzVirtualNetwork -Name "vnet-1" -ResourceGroupName "test-rg"
# Update the subnet configuration to associate the network security group
$subnetConfigParams = @{
VirtualNetwork = $vnet
Name = "subnet-1"
AddressPrefix = $vnet.Subnets[0].AddressPrefix
NetworkSecurityGroup = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
# Update the virtual network with the new subnet configuration
$vnet | Set-AzVirtualNetwork
Använd az network vnet subnet update för att associera nätverkssäkerhetsgruppen med undernätet. I följande exempel associeras nätverkssäkerhetsgruppen nsg-1 med undernätet-1 :
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--network-security-group nsg-1
Skapa säkerhetsregler
Välj Inkommande säkerhetsregler i avsnittet Inställningar i nsg-1.
På sidan Inkommande säkerhetsregler väljer du + Lägg till.
Skapa en säkerhetsregel som tillåter portarna 80 och 443 till asg-web-programsäkerhetsgruppen . På sidan Lägg till inkommande säkerhetsregel anger eller väljer du följande information:
Inställning |
Värde |
Källa |
Låt standardvärdet Alla vara kvar. |
Källportintervall |
Låt standardvärdet (*)vara kvar. |
Mål |
Välj Programsäkerhetsgrupp. |
Målprogramsäkerhetsgrupper |
Välj asg-web. |
Tjänst |
Lämna standardinställningen Anpassad. |
Målportintervall |
Ange 80 443. |
Protokoll |
Välj TCP. |
Åtgärd |
Låt standardvärdet Tillåt vara kvar. |
Prioritet |
Låt standardvärdet vara 100. |
Namn |
Ange allow-web-all. |
Markera Lägga till.
Slutför föregående steg med följande information:
Inställning |
Värde |
Källa |
Låt standardvärdet Alla vara kvar. |
Källportintervall |
Låt standardvärdet (*)vara kvar. |
Mål |
Välj Programsäkerhetsgrupp. |
Säkerhetsgrupp för målapplikation |
Välj asg-mgmt. |
Tjänst |
Välj RDP. |
Åtgärd |
Låt standardvärdet Tillåt vara kvar. |
Prioritet |
Låt standardvärdet vara 110. |
Namn |
Ange allow-rdp-all. |
Markera Lägga till.
Varning
I den här artikeln exponeras RDP (port 3389) på Internet för den virtuella dator som har tilldelats programsäkerhetsgruppen asg-mgmt .
I produktionsmiljöer rekommenderar vi att du ansluter till Azure-resurser som du vill hantera med hjälp av vpn, privat nätverksanslutning eller Azure Bastion i stället för att exponera port 3389 för Internet.
Mer information om Azure Bastion finns i Vad är Azure Bastion?.
Skapa en säkerhetsregel med New-AzNetworkSecurityRuleConfig. I följande exempel skapas en regel som tillåter inkommande trafik från Internet till asg-web-programsäkerhetsgruppen via portarna 80 och 443:
$webAsgParams = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$webAsg = Get-AzApplicationSecurityGroup @webAsgParams
$webRuleParams = @{
Name = "Allow-Web-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $webAsg.id
DestinationPortRange = 80,443
}
$webRule = New-AzNetworkSecurityRuleConfig @webRuleParams
I följande exempel skapas en regel som tillåter inkommande trafik från Internet till programsäkerhetsgruppen asg-mgmt via port 3389:
$mgmtAsgParams = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtAsg = Get-AzApplicationSecurityGroup @mgmtAsgParams
$mgmtRuleParams = @{
Name = "Allow-RDP-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $mgmtAsg.id
DestinationPortRange = 3389
}
$mgmtRule = New-AzNetworkSecurityRuleConfig @mgmtRuleParams
Använd Get-AzNetworkSecurityGroup för att hämta den befintliga nätverkssäkerhetsgruppen och lägg sedan till de nya reglerna med operatorn +=
. Uppdatera slutligen nätverkssäkerhetsgruppen med Set-AzNetworkSecurityGroup:
# Retrieve the existing network security group
$nsg = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
# Add the new rules to the security group
$nsg.SecurityRules += $webRule
$nsg.SecurityRules += $mgmtRule
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
Varning
I den här artikeln exponeras RDP (port 3389) på Internet för den virtuella dator som har tilldelats programsäkerhetsgruppen asg-mgmt .
I produktionsmiljöer rekommenderar vi att du ansluter till Azure-resurser som du vill hantera med hjälp av vpn, privat nätverksanslutning eller Azure Bastion i stället för att exponera port 3389 för Internet.
Mer information om Azure Bastion finns i Vad är Azure Bastion?.
Skapa en säkerhetsregel med az network nsg rule create. I följande exempel skapas en regel som tillåter inkommande trafik från Internet till asg-web-programsäkerhetsgruppen via portarna 80 och 443:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-Web-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-web" \
--destination-port-range 80 443
I följande exempel skapas en regel som tillåter inkommande trafik från Internet till programsäkerhetsgruppen asg-mgmt via port 22:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-SSH-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 110 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-mgmt" \
--destination-port-range 22
Varning
I den här artikeln exponeras SSH (port 22) på Internet för den virtuella dator som har tilldelats programsäkerhetsgruppen asg-mgmt .
För produktionsmiljöer rekommenderar vi att du ansluter till Azure-resurser som du vill hantera med hjälp av vpn, privat nätverksanslutning eller Azure Bastion i stället för att exponera port 22 på Internet.
Mer information om Azure Bastion finns i Vad är Azure Bastion?.
Skapa virtuella datorer
Skapa två virtuella datorer i det virtuella nätverket.
I portalen söker du efter och väljer Virtuella datorer.
I Virtuella datorer väljer du + Skapa och sedan Virtuell Azure-dator.
I Skapa en virtuell dator anger eller väljer du den här informationen på fliken Grundläggande :
Inställning |
Värde |
Projektinformation |
|
Prenumeration |
Välj din prenumeration. |
Resursgrupp |
Välj test-rg. |
Instansinformation |
|
Namn på virtuell maskin |
Ange vm-web. |
Region |
Välj (US) Östra USA 2. |
Tillgängliga alternativ |
Lämna standardvärdet Ingen infrastrukturredundans krävs. |
Säkerhetstyp |
Välj Standard. |
Bild |
Välj Windows Server 2022 Datacenter – x64 Gen2. |
Azure Spot-instans |
Låt standardinställningen vara avmarkerad. |
Storlek |
Välj en storlek. |
Administratörskonto |
|
Användarnamn |
Ange ett användarnamn. |
Lösenord |
Ange ett lösenord. |
Bekräfta lösenord |
Ange lösenordet igen. |
Regler för inkommande portar |
|
Välj inkommande portar |
Välj Ingen. |
Välj Nästa: Diskar och sedan Nästa: Nätverk.
På fliken Nätverk anger eller väljer du följande information:
Inställning |
Värde |
Nätverksgränssnitt |
|
Virtuellt nätverk |
Välj vnet-1. |
Undernät |
Välj undernät-1 (10.0.0.0/24). |
Offentlig IP-adress |
Lämna standardvärdet för en ny offentlig IP-adress. |
Säkerhetsgrupp för nätverksinterface (NIC) |
Välj Ingen. |
Välj fliken Granska + skapa eller välj den blå knappen Granska + skapa längst ned på sidan.
Välj Skapa. Det kan ta några minuter att distribuera den virtuella datorn.
Upprepa föregående steg för att skapa en andra virtuell dator med namnet vm-mgmt.
Innan du skapar de virtuella datorerna hämtar du det virtuella nätverksobjektet med undernätet med Get-AzVirtualNetwork:
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Skapa en offentlig IP-adress för varje virtuell dator med New-AzPublicIpAddress:
$publicIpWebParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-web"
}
$publicIpWeb = New-AzPublicIpAddress @publicIpWebParams
$publicIpMgmtParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-mgmt"
}
$publicIpMgmt = New-AzPublicIpAddress @publicIpMgmtParams
Skapa två nätverksgränssnitt med New-AzNetworkInterface och tilldela nätverksgränssnittet en offentlig IP-adress. I följande exempel skapas ett nätverksgränssnitt som associerar den offentliga ip-vm-web offentliga IP-adressen till den.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
I följande exempel skapas ett nätverksgränssnitt som associerar den offentliga ip-vm-mgmt offentliga IP-adressen till den.
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Skapa två virtuella datorer i det virtuella nätverket så att du kan verifiera trafikfiltrering i ett senare steg.
Skapa en VM-konfiguration med New-AzVMConfig och skapa sedan den virtuella datorn med New-AzVM. I följande exempel skapas en virtuell dator som fungerar som en webbserver. Alternativet -AsJob
skapar den virtuella datorn i bakgrunden, så att du kan fortsätta till nästa steg:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-web"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-web"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$webVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $webNic.Id
$webVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $webVmConfig
}
New-AzVM @webVmParams -AsJob
Skapa en virtuell dator som fungerar som en hanteringsserver:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-mgmt"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-mgmt"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$mgmtVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $mgmtNic.Id
$mgmtVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $mgmtVmConfig
}
New-AzVM @mgmtVmParams
Det tar några minuter att skapa den virtuella datorn. Fortsätt inte med nästa steg förrän Azure har skapat den virtuella datorn.
Skapa två virtuella datorer i det virtuella nätverket så att du kan verifiera trafikfiltrering i ett senare steg.
Skapa en virtuell dator med az vm create. I följande exempel skapas en virtuell dator som fungerar som en webbserver. Alternativet --nsg ""
har angetts för att förhindra att Azure skapar en standardnätverkssäkerhetsgrupp för nätverksgränssnittet som Azure skapar när den virtuella datorn skapas. Kommandot uppmanar dig att skapa ett lösenord för den virtuella datorn. SSH-nycklar används inte i det här exemplet för att underlätta de senare stegen i den här artikeln. I en produktionsmiljö använder du SSH-nycklar för säkerhet.
az vm create \
--resource-group test-rg \
--name vm-web \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--authentication-type password \
--assign-identity
Det tar några minuter att skapa den virtuella datorn. När den virtuella datorn har skapats returneras utdata som liknar följande exempel:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-web",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
Skapa en virtuell dator med az vm create. I följande exempel skapas en virtuell dator som fungerar som en hanteringsserver.
I följande exempel skapas en virtuell dator och ett användarkonto läggs till. Parametern --generate-ssh-keys
gör att CLI söker efter en tillgänglig ssh-nyckel i ~/.ssh
. Om en hittas används den nyckeln. Annars genereras och lagras en i ~/.ssh
. Slutligen distribuerar vi den senaste Ubuntu 22.04
avbildningen.
az vm create \
--resource-group test-rg \
--name vm-mgmt \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys \
--assign-identity
Det tar några minuter att skapa den virtuella datorn. Fortsätt inte med nästa steg förrän Azure har skapat den virtuella datorn.
Koppla nätverksgränssnitt till en ASG
När du skapade de virtuella datorerna skapade Azure ett nätverksgränssnitt för varje virtuell dator och kopplade det till den virtuella datorn.
Lägg till nätverksgränssnittet för varje virtuell dator till en av de programsäkerhetsgrupper som du skapade tidigare:
I sökrutan överst i portalen anger du Virtuell dator. Välj Virtuella datorer i sökresultaten och välj sedan vm-web.
Välj Programsäkerhetsgrupper i avsnittet Nätverk på vm-web.
Välj Lägg till programsäkerhetsgrupper och välj sedan asg-web på fliken Lägg till programsäkerhetsgrupper.
Välj slutligen Lägg till.
Upprepa föregående steg för vm-mgmt och välj asg-mgmt på fliken Lägg till programsäkerhetsgrupper.
Använd Get-AzNetworkInterface för att hämta nätverksgränssnittet för den virtuella datorn och använd sedan Get-AzApplicationSecurityGroup för att hämta programsäkerhetsgruppen. Slutligen använder du Set-AzNetworkInterface för att associera programsäkerhetsgruppen med nätverksgränssnittet. I följande exempel associeras programsäkerhetsgruppen asg-web med nätverksgränssnittet vm-web-nic :
$params1 = @{
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Upprepa kommandot för att associera programsäkerhetsgruppen asg-mgmt med nätverksgränssnittet vm-mgmt-nic .
$params1 = @{
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Använd az network nic update för att associera nätverksgränssnittet med programsäkerhetsgruppen. I följande exempel associeras programsäkerhetsgruppen asg-web med nätverksgränssnittet vm-web-nic :
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-web --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-web \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-web
Upprepa kommandot för att associera programsäkerhetsgruppen asg-mgmt med nätverksgränssnittet vm-mgmt-nic .
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-mgmt --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-mgmt \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-mgmt
Testa trafikfilter
I sökrutan överst i portalen anger du Virtuell dator. Välj Virtuella datorer i sökresultaten.
Välj vm-mgmt.
På sidan Översikt väljer du knappen Anslut och väljer sedan Intern RDP.
Välj Hämta RDP-fil.
Öppna den nedladdade RDP-filen och välj Anslut. Ange det användarnamn och lösenord som du angav när du skapade den virtuella datorn.
Välj OK.
Du kan få en certifikatvarning under anslutningsprocessen. Om du får varningen väljer du Ja eller Fortsätt för att fortsätta med anslutningen.
Anslutningen lyckas eftersom inkommande trafik från Internet till programsäkerhetsgruppen asg-mgmt tillåts via port 3389.
Nätverksgränssnittet för vm-mgmt är associerat med programsäkerhetsgruppen asg-mgmt och tillåter anslutningen.
Öppna en PowerShell-session på vm-mgmt. Anslut till vm-web med hjälp av följande:
mstsc /v:vm-web
RDP-anslutningen från vm-mgmt till vm-web lyckas eftersom virtuella datorer i samma nätverk kan kommunicera med varandra via valfri port som standard.
Du kan inte skapa en RDP-anslutning till den virtuella datorn vm-web från Internet. Säkerhetsregeln för asg-web förhindrar anslutningar till port 3389 inkommande från Internet. Inkommande trafik från Internet nekas som standard till alla resurser.
Om du vill installera Microsoft IIS på den virtuella datorn vm-web anger du följande kommando från en PowerShell-session på den virtuella datorn vm-web :
Install-WindowsFeature -name Web-Server -IncludeManagementTools
När IIS-installationen är klar, koppla från den virtuella datorn vm-web, vilket lämnar dig ansluten via fjärrskrivbord till den virtuella datorn vm-mgmt.
Koppla bort VM vm-mgmt.
Sök efter vm-web i portalens sökruta.
På översiktssidan för vm-web noterar du den offentliga IP-adressen för den virtuella datorn. Adressen som visas i följande exempel är 203.0.113.103. Din adress är annorlunda:
Om du vill bekräfta att du har åtkomst till vm-web-webbservern från Internet öppnar du en webbläsare på datorn och bläddrar till http://<public-ip-address-from-previous-step>
.
Du ser IIS-standardsidan eftersom inkommande trafik från Internet till asg-web-programsäkerhetsgruppen tillåts via port 80.
Nätverksgränssnittet som är kopplat till vm-web är associerat med asg-web-programsäkerhetsgruppen och tillåter anslutningen.
Använd Get-AzPublicIpAddress för att returnera den offentliga IP-adressen för en virtuell dator. I följande exempel returneras den offentliga IP-adressen för den virtuella datorn vm-mgmt :
$params = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$publicIP = Get-AzPublicIpAddress @params | Select IpAddress
Använd följande kommando för att skapa en fjärrskrivbordssession med den virtuella datorn vm-mgmt från den lokala datorn.
mstsc /v:$publicIP
Ange det användarnamn och lösenord som du angav när du skapade den virtuella datorn (du kan behöva välja Fler alternativ och sedan Använda ett annat konto för att ange de autentiseringsuppgifter som du angav när du skapade den virtuella datorn) och välj sedan OK. Du kan få en certifikatvarning under inloggningen. Välj Ja för att fortsätta med anslutningen.
Anslutningen lyckas. Port 3389 tillåts inkommande trafik från internet till asg-mgmt-programsäkerhetsgruppen. Nätverksgränssnittet som är kopplat till den virtuella datorn vm-mgmt finns i den här gruppen.
Använd följande kommando för att skapa en fjärrskrivbordsanslutning till den virtuella datorn vm-web från den virtuella datorn vm-mgmt med följande kommando från PowerShell:
mstsc /v:vm-web
Anslutningen lyckas eftersom en standardsäkerhetsregel i varje nätverkssäkerhetsgrupp tillåter trafik via alla portar mellan alla IP-adresser i ett virtuellt nätverk. Du kan inte skapa en fjärrskrivbordsanslutning till den virtuella datorn vm-web från Internet eftersom säkerhetsregeln för asg-web inte tillåter inkommande port 3389 från Internet.
Använd följande kommando för att installera Microsoft IIS på den virtuella datorn vm-web från PowerShell:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
När IIS-installationen är klar, koppla bort från den virtuella datorn vm-web, som lämnar dig kvar i fjärrskrivbordsanslutningen för virtuella datorn vm-mgmt. Om du vill visa välkomstskärmen för IIS öppnar du en webbläsare och bläddrar till http://vm-web.
Koppla bort VM vm-mgmt.
På datorn anger du följande kommando från PowerShell för att hämta den offentliga IP-adressen för vm-web-servern :
$params = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
Get-AzPublicIpAddress @params | Select IpAddress
Om du vill bekräfta att du har åtkomst till vm-web-webbservern utanför Azure öppnar du en webbläsare på datorn och bläddrar till http://<public-ip-address-from-previous-step>
. Anslutningen lyckas. Port 80 är tillåten för inkommande trafik från Internet till asg-web-programsäkerhetsgruppen. Nätverksgränssnittet som är kopplat till den virtuella datorn vm-web finns i den här gruppen.
Anslut till de virtuella datorer som skapades tidigare med valfri SSH-klient. Följande kommando kan till exempel användas från ett kommandoradsgränssnitt, till exempel Windows-undersystem för Linux för att skapa en SSH-session med den virtuella datorn vm-mgmt. Du kan logga in på de virtuella datorerna med dina autentiseringsuppgifter för Microsoft Entra-ID eller använda SSH-nyckeln som du använde för att skapa de virtuella datorerna. I följande exempel använder vi SSH-nyckeln för att logga in på den virtuella hanteringsdatorn och loggar sedan in på den virtuella webbdatorn från den virtuella hanteringsdatorn med ett lösenord.
Mer information om hur du SSH till en virtuell Linux-dator och loggar in med Microsoft Entra-ID finns i Logga in på en virtuell Linux-dator i Azure med hjälp av Microsoft Entra ID och OpenSSH.
Lagra IP-adressen för den virtuella datorn för att SSH
Kör följande kommando för att lagra IP-adressen för den virtuella datorn som en miljövariabel:
export IP_ADDRESS=$(az vm show --show-details --resource-group test-rg --name vm-mgmt --query publicIps --output tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
Anslutningen lyckas eftersom nätverksgränssnittet som är kopplat till den virtuella datorn vm-mgmt finns i programsäkerhetsgruppen asg-mgmt , som tillåter inkommande port 22 från Internet.
Använd följande kommando för att SSH till den virtuella datorn vm-web från den virtuella datorn vm-mgmt :
ssh -o StrictHostKeyChecking=no azureuser@vm-web
Anslutningen lyckas eftersom en standardsäkerhetsregel i varje nätverkssäkerhetsgrupp tillåter trafik via alla portar mellan alla IP-adresser i ett virtuellt nätverk. Du kan inte SSH till den virtuella datorn vm-web från Internet eftersom säkerhetsregeln för asg-web inte tillåter inkommande port 22 från Internet.
Använd följande kommandon för att installera nginx-webbservern på den virtuella datorn vm-web :
# Update package source
sudo apt-get -y update
# Install NGINX
sudo apt-get -y install nginx
Den virtuella datorn vm-web tillåts utgående till Internet för att hämta nginx eftersom en standardsäkerhetsregel tillåter all utgående trafik till Internet. Stäng SSH-sessionen för vm-web, vilket lämnar dig vid username@vm-mgmt:~$
prompten för den virtuella datorn vm-mgmt. Om du vill hämta välkomstskärmen för nginx från den virtuella datorn vm-web anger du följande kommando:
curl vm-web
Logga ut från vm-mgmt VM. Bekräfta att du kan komma åt webbservern vm-web utanför Azure genom att ange curl <publicIpAddress>
från din egen dator. Anslutningen lyckas eftersom asg-web-programsäkerhetsgruppen, som nätverksgränssnittet är kopplat till på vm-web den virtuella datorn, tillåter inkommande trafik på port 80 från Internet.
När du är klar med de resurser som du skapade kan du ta bort resursgruppen och alla dess resurser.
I Azure Portal söker du efter och väljer Resursgrupper.
På sidan Resursgrupper väljer du resursgruppen test-rg .
På sidan test-rg väljer du Ta bort resursgrupp.
Ange test-rg i Ange resursgruppsnamn för att bekräfta borttagningen och välj sedan Ta bort.
När den inte längre behövs kan du använda Remove-AzResourceGroup för att ta bort resursgruppen och alla resurser som den innehåller:
$params = @{
Name = "test-rg"
Force = $true
}
Remove-AzResourceGroup @params
När den inte längre behövs använder du az group delete för att ta bort resursgruppen och alla resurser som den innehåller.
az group delete \
--name test-rg \
--yes \
--no-wait
Nästa steg
I den här kursen får du:
- Skapade en nätverkssäkerhetsgrupp och kopplade den till ett virtuellt nätverksundernät.
- Skapade programsäkerhetsgrupper för webb och hantering.
- Skapade två virtuella datorer och associerade deras nätverksgränssnitt med programsäkerhetsgrupperna.
- Testade nätverksfiltreringen för programsäkerhetsgruppen.
Mer information om nätverkssäkerhetsgrupper finns i Översikt över nätverkssäkerhetsgrupper och Hantera en nätverkssäkerhetsgrupp.
Azure dirigerar som standard trafik mellan undernät. Du kan i stället välja att dirigera trafik mellan undernät via en virtuell dator, till exempel som en brandvägg.
Gå vidare till nästa självstudie om du vill veta hur du skapar en routningstabell.