Självstudie: Filtrera nätverkstrafik med en nätverkssäkerhetsgrupp
Artikel
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 självstudien 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
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 Prova i det övre högra hörnet i en kod eller ett 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 använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
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
Name
Ange vnet-1.
Region
Välj USA, östra 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.
Name
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 :
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:
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:
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:
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
Name
Ange asg-web.
Region
Välj USA, östra 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
Name
Ange asg-mgmt.
Region
Välj USA, östra 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.
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.
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 :
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
Source
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.
Name
Ange allow-web-all.
Markera Lägga till.
Slutför föregående steg med följande information:
Inställning
Värde
Source
Låt standardvärdet Alla vara kvar.
Källportintervall
Låt standardvärdet (*)vara kvar.
Mål
Välj Programsäkerhetsgrupp.
Målprogramsäkerhetsgrupp
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.
Name
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.
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:
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.
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:
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.
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.
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:
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.
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.
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 :
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
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 :
När IIS-installationen är klar kopplar du från den virtuella datorn vm-web , vilket lämnar dig i fjärrskrivbordsanslutningen för den virtuella datorn vm-mgmt .
Koppla från den virtuella datorn 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 :
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 från Internet till programsäkerhetsgruppen asg-mgmt . 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:
När IIS-installationen är klar kopplar du från den virtuella datorn vm-web , vilket lämnar dig i fjärrskrivbordsanslutningen för den 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 från den virtuella datorn 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 :
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 tillåts inkommande 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.
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 :
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. Avsluta SSH-sessionen vm-web, vilket lämnar dig i kommandotolken för username@vm-mgmt:~$ 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 den virtuella datorn vm-mgmt . 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 som är kopplat till den virtuella datorn för virtuell dator är i, tillåter inkommande port 80 från Internet.
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.