A hálózati biztonsági csoportokkal szűrheti az Azure-beli virtuális hálózatok Azure-erőforrásaiba irányuló és onnan kimenő bejövő és kimenő hálózati forgalmat.
A hálózati biztonsági csoportok biztonsági szabályokat tartalmaznak, amelyek IP-cím, port és protokoll szerint szűrik a hálózati forgalmat. Ha egy hálózati biztonsági csoport alhálózathoz van társítva, a rendszer biztonsági szabályokat alkalmaz az adott alhálózatban üzembe helyezett erőforrásokra.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Hálózati biztonsági csoport és biztonsági szabályok létrehozása
- Alkalmazásbiztonsági csoportok létrehozása
- Virtuális hálózat létrehozása és hálózati biztonsági csoport hozzárendelése egy alhálózathoz
- Virtuális gépek üzembe helyezése és hálózati adapterek társítása az alkalmazásbiztonsági csoportokhoz
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Ingyenesen létrehozhat fiókot.
- Egy Azure-fiók, aktív előfizetéssel. Ingyenesen létrehozhat fiókot.
Azure Cloud Shell
Az Azure által üzemeltetett Azure Cloud Shell egy interaktív felület, amelyet a böngészőből használhat. A Bash vagy a PowerShell segítségével is használhatja a Cloud Shellt az Azure-szolgáltatásokhoz. A Cloud Shell előre telepített parancsaival futtathatja a jelen cikkben szereplő kódot anélkül, hogy bármit telepítenie kellene a helyi környezetben.
Az Azure Cloud Shell indítása:
| Lehetőség |
Példa/hivatkozás |
| Válassza a Kipróbálás lehetőséget egy kód vagy parancsblokk jobb felső sarkában. A Kipróbálás lehetőség választása nem másolja automatikusan a kódot vagy a parancsot a Cloud Shellbe. |
|
| Látogasson el a https://shell.azure.com webhelyre, vagy kattintson a Cloud Shell indítása gombra a böngészőben. |
|
| Az Azure Portal jobb felső sarkában található menüben kattintson a Cloud Shell gombra. |
|
Az Azure Cloud Shell használata:
Indítsa el a Cloud Shellt.
A kód vagy parancs másolásához kattintson a Másolás gombra egy kódblokkon (vagy parancsblokkon).
Illessze be a kódot vagy parancsot a Cloud Shell-munkamenetbe a Windows és Linux rendszeren a Ctrl Shift+ billentyűkombinációval+, vagy a Cmd++ macOS rendszeren való kiválasztásával.
A kód vagy parancs futtatásához válassza az Enter lehetőséget .
Ha a PowerShell helyi telepítése és használata mellett dönt, ehhez a cikkhez az Azure PowerShell-modul 1.0.0-s vagy újabb verziójára van szükség. A telepített verzió azonosításához futtassa a következőt: Get-Module -ListAvailable Az. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. Ha helyileg futtatja a PowerShellt, az Azure-ral való kapcsolat létrehozásához is futnia Connect-AzAccount kell.
Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: Az Azure Cloud Shell használatának első lépései.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
- Ez a cikk az Azure CLI 2.0.28-es vagy újabb verzióját igényli. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.
Az alábbi eljárás létrehoz egy virtuális hálózatot egy erőforrás-alhálózattal.
A portálon keresse meg és válassza ki a virtuális hálózatokat.
A Virtuális hálózatok lapon válassza a + Létrehozás lehetőséget.
A Virtuális hálózat létrehozása alapismeretek lapján adja meg vagy válassza ki a következő információkat:
| Beállítás |
Érték |
|
Projekt részletei |
|
| Előfizetés |
Válassza ki előfizetését. |
| Erőforráscsoport |
Válassza az Új létrehozása lehetőséget.
Adja meg a test-rg nevet.
Válassza az OK gombot. |
|
Példány részletei |
|
| Név |
Adja meg a vnet-1 értéket. |
| Régió |
Válassza az USA 2. keleti régiója lehetőséget. |
A Tovább gombra kattintva lépjen a Biztonság lapra.
A Tovább gombra kattintva lépjen az IP-címek lapra.
Az Alhálózatok alatti címtérben válassza ki az alapértelmezett alhálózatot.
Az Alhálózat szerkesztése panelen adja meg vagy válassza ki a következő információkat:
| Beállítás |
Érték |
|
Alhálózat részletei |
|
| Alhálózati sablon |
Hagyja meg az alapértelmezett értéket alapértelmezettként. |
| Név |
Adja meg az 1. alhálózatot. |
| Kezdőcím |
Hagyja meg a 10.0.0.0 alapértelmezett értékét. |
| Alhálózat mérete |
Hagyja meg a /24(256-címek) alapértelmezett értékét. |
Válassza a Mentés lehetőséget.
Válassza a Véleményezés + létrehozás lehetőséget a képernyő alján. Az ellenőrzés sikeres befejezése után válassza a Létrehozás lehetőséget.
Először hozzon létre egy erőforráscsoportot a cikkben létrehozott összes erőforráshoz a New-AzResourceGroup használatával. Az alábbi példa létrehoz egy erőforráscsoportot a westus2-helyen :
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Hozzon létre egy virtuális hálózatot a New-AzVirtualNetwork használatával. Az alábbi példa létrehoz egy vnet-1 nevű virtuális hálózatot:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Hozzon létre egy alhálózat-konfigurációt a New-AzVirtualNetworkSubnetConfig használatával, majd írja be az alhálózat konfigurációját a virtuális hálózatba a Set-AzVirtualNetwork használatával. Az alábbi példa egy 1. alhálózat nevű alhálózatot ad hozzá a virtuális hálózathoz, és az nsg-1 hálózati biztonsági csoportot társítja hozzá:
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Először hozzon létre egy erőforráscsoportot a cikkben létrehozott összes erőforráshoz az az group create használatával. Az alábbi példa létrehoz egy erőforráscsoportot a westus2-helyen :
az group create \
--name test-rg \
--location westus2
Hozzon létre egy virtuális hálózatot az az network vnet create paranccsal. Az alábbi példa létrehoz egy vnet-1 nevű virtuális hálózatot:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Alhálózat hozzáadása virtuális hálózathoz az az network vnet subnet create használatával. Az alábbi példa egy 1. alhálózat nevű alhálózatot ad hozzá a virtuális hálózathoz, és az nsg-1 hálózati biztonsági csoportot társítja hozzá:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
Alkalmazásbiztonsági csoportok létrehozása
Az alkalmazásbiztonsági csoportok (ASG-k) lehetővé teszik, hogy hasonló függvényekkel, például webkiszolgálókkal csoportosítsa a kiszolgálókat.
A portál tetején található keresőmezőbe írja be az Alkalmazás biztonsági csoportját. Válassza ki az alkalmazásbiztonsági csoportokat a keresési eredmények között.
Válassza a +Létrehozás lehetőséget.
Az Alkalmazásbiztonsági csoport létrehozása alapismeretek lapján adja meg vagy válassza ki az alábbi adatokat:
| Beállítás |
Érték |
|
Projekt részletei |
|
| Előfizetés |
Válassza ki előfizetését. |
| Erőforráscsoport |
Válassza a test-rg lehetőséget. |
|
Példány részletei |
|
| Név |
Adja meg az asg-web parancsot. |
| Régió |
Válassza az USA 2. nyugati régióját. |
Válassza az Áttekintés + létrehozás lehetőséget.
Válassza a +Létrehozás lehetőséget.
Ismételje meg az előző lépéseket, és adja meg a következő értékeket:
| Beállítás |
Érték |
|
Projekt részletei |
|
| Előfizetés |
Válassza ki előfizetését. |
| Erőforráscsoport |
Válassza a test-rg lehetőséget. |
|
Példány részletei |
|
| Név |
Adja meg az asg-mgmt értéket. |
| Régió |
Válassza az USA 2. nyugati régióját. |
Válassza az Áttekintés + létrehozás lehetőséget.
Válassza a Létrehozás lehetőséget.
Hozzon létre egy alkalmazásbiztonsági csoportot a New-AzApplicationSecurityGroup használatával. Az alkalmazásbiztonsági csoportok lehetővé teszik, hogy csoportokba rendezze a hasonló portszűrési követelményekkel rendelkező kiszolgálókat. Az alábbi példa két alkalmazásbiztonsági csoportot hoz létre.
$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
Hozzon létre egy alkalmazásbiztonsági csoportot az az network asg create használatával. Az alkalmazásbiztonsági csoportok lehetővé teszik, hogy csoportokba rendezze a hasonló portszűrési követelményekkel rendelkező kiszolgálókat. Az alábbi példa két alkalmazásbiztonsági csoportot hoz létre.
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
Hálózati biztonsági csoport létrehozása
Egy hálózati biztonsági csoport (NSG) biztosítja a virtuális hálózat hálózati forgalmát.
A portál tetején található keresőmezőbe írja be a Hálózati biztonsági csoportot. Válassza ki a hálózati biztonsági csoportokat a keresési eredmények között.
Feljegyzés
A hálózati biztonsági csoportok keresési eredményei között megjelenhetnek a hálózati biztonsági csoportok (klasszikus) is. Válassza ki a hálózati biztonsági csoportokat.
Válassza a +Létrehozás lehetőséget.
A Hálózati biztonsági csoport létrehozása alapismeretek lapján adja meg vagy válassza ki az alábbi adatokat:
| Beállítás |
Érték |
|
Projekt részletei |
|
| Előfizetés |
Válassza ki előfizetését. |
| Erőforráscsoport |
Válassza a test-rg lehetőséget. |
|
Példány részletei |
|
| Név |
Adja meg az nsg-1 értéket. |
| Hely |
Válassza az USA 2. nyugati régióját. |
Válassza az Áttekintés + létrehozás lehetőséget.
Válassza a Létrehozás lehetőséget.
Hozzon létre egy hálózati biztonsági csoportot a New-AzNetworkSecurityGroup használatával. Az alábbi példa egy nsg-1 nevű hálózati biztonsági csoportot hoz létre:
$nsgParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "nsg-1"
}
$nsg = New-AzNetworkSecurityGroup @nsgParams
Hozzon létre egy hálózati biztonsági csoportot az network nsg create használatával. Az alábbi példa egy nsg-1 nevű hálózati biztonsági csoportot hoz létre:
# Create a network security group
az network nsg create \
--resource-group test-rg \
--name nsg-1
Hálózati biztonsági csoport társítása alhálózathoz
Ebben a szakaszban a hálózati biztonsági csoportot a korábban létrehozott virtuális hálózat alhálózatához társítja.
A portál tetején található keresőmezőbe írja be a Hálózati biztonsági csoportot. Válassza ki a hálózati biztonsági csoportokat a keresési eredmények között.
Válassza az nsg-1 lehetőséget.
Válassza ki az alhálózatokat az nsg-1 Beállítások szakaszából.
Az Alhálózatok lapon válassza a + Társítás lehetőséget:
Az Alhálózat társítása területen válassza a virtuális hálózathoz tartozó vnet-1 (test-rg) elemet.
Válassza az alhálózat 1. alhálózatát, majd kattintson az OK gombra.
A Get-AzVirtualNetwork használatával kérje le a virtuális hálózati objektumot, majd a Set-AzVirtualNetworkSubnetConfig használatával társítsa a hálózati biztonsági csoportot az alhálózathoz. Az alábbi példa lekéri a virtuális hálózati objektumot, és frissíti az alhálózat konfigurációját a hálózati biztonsági csoport társításához:
# 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
Az az network vnet subnet update használatával társítsa a hálózati biztonsági csoportot az alhálózathoz. Az alábbi példa az nsg-1 hálózati biztonsági csoportot társítja az 1 . alhálózathoz:
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--network-security-group nsg-1
Biztonsági szabályok létrehozása
Válassza ki a bejövő biztonsági szabályokat az nsg-1 Beállítások szakaszában.
A Bejövő biztonsági szabályok lapon válassza a + Hozzáadás lehetőséget.
Hozzon létre egy biztonsági szabályt, amely engedélyezi a 80-as portot az asg-webalkalmazás biztonsági csoportjához. A Bejövő biztonsági szabály hozzáadása lapon adja meg vagy válassza ki a következő adatokat:
| Beállítás |
Érték |
| Forrás |
Hagyja meg az Any alapértelmezett értékét. |
| Forrásporttartományok |
Hagyja meg a (*) alapértelmezett értékét. |
| Cél |
Válassza az Alkalmazás biztonsági csoportját. |
| Célalkalmazás biztonsági csoportjai |
Válassza az asg-web lehetőséget. |
| Szolgáltatás |
Hagyja meg az Egyéni beállítás alapértelmezett értékét. |
| Célporttartományok |
Adja meg a 80-at. |
| Protokoll |
Válassza a TCP lehetőséget. |
| Művelet |
Hagyja meg az Engedélyezés alapértelmezett értékét. |
| Prioritás |
Hagyja meg a 100 alapértelmezett értéket. |
| Név |
Adja meg az allow-http-web parancsot. |
Válassza a Hozzáadás lehetőséget.
Hajtsa végre az előző lépéseket a következő információkkal:
| Beállítás |
Érték |
| Forrás |
Hagyja meg az Any alapértelmezett értékét. |
| Forrásporttartományok |
Hagyja meg a (*) alapértelmezett értékét. |
| Cél |
Válassza az Alkalmazás biztonsági csoportját. |
| Célalkalmazás biztonsági csoportja |
Válassza az asg-mgmt lehetőséget. |
| Szolgáltatás |
Hagyja meg az Egyéni beállítás alapértelmezett értékét. |
| Célporttartományok |
Adja meg a 8080-at. |
| Protokoll |
Válassza a TCP lehetőséget. |
| Művelet |
Hagyja meg az Engedélyezés alapértelmezett értékét. |
| Prioritás |
Hagyja meg a 110 alapértelmezett értéket. |
| Név |
Adja meg az allow-8080-mgmt értéket. |
Válassza a Hozzáadás lehetőséget.
Hozzon létre egy biztonsági szabályt a New-AzNetworkSecurityRuleConfig használatával. Az alábbi példa egy szabályt hoz létre, amely engedélyezi az internetről az asg-webalkalmazás biztonsági csoportjába irányuló forgalmat a 80-as porton keresztül:
$webAsgParams = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$webAsg = Get-AzApplicationSecurityGroup @webAsgParams
$webRuleParams = @{
Name = "Allow-HTTP-Web"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $webAsg.id
DestinationPortRange = 80
}
$webRule = New-AzNetworkSecurityRuleConfig @webRuleParams
Az alábbi példa egy szabályt hoz létre, amely engedélyezi az internetről az asg-mgmt alkalmazás biztonsági csoportjába irányuló forgalmat a 8080-as porton keresztül:
$mgmtAsgParams = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtAsg = Get-AzApplicationSecurityGroup @mgmtAsgParams
$mgmtRuleParams = @{
Name = "Allow-8080-Mgmt"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $mgmtAsg.id
DestinationPortRange = 8080
}
$mgmtRule = New-AzNetworkSecurityRuleConfig @mgmtRuleParams
A Get-AzNetworkSecurityGroup használatával kérje le a meglévő hálózati biztonsági csoportot, majd adja hozzá az új szabályokat az += operátorhoz. Végül frissítse a hálózati biztonsági csoportot a Set-AzNetworkSecurityGroup használatával:
# 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
Hozzon létre egy biztonsági szabályt az az network nsg rule create használatával. Az alábbi példa egy szabályt hoz létre, amely engedélyezi az internetről az asg-webalkalmazás biztonsági csoportjába irányuló forgalmat a 80-as porton keresztül:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-HTTP-Web \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-web" \
--destination-port-range 80
Az alábbi példa létrehoz egy szabályt, amely engedélyezi az internetről az asg-mgmt alkalmazás biztonsági csoportjába irányuló forgalmat a 8080-as porton keresztül:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-8080-Mgmt \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 110 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-mgmt" \
--destination-port-range 8080
Virtuális gépek létrehozása
Hozzon létre két virtuális gépet (virtuális gépet) a virtuális hálózaton.
A portálon keresse meg és válassza ki a virtuális gépeket.
A virtuális gépeken válassza a + Létrehozás, majd a Virtuális gép lehetőséget.
A Virtuális gép létrehozása lapon adja meg vagy válassza ki ezeket az információkat az Alapszintű beállítások lapon:
| Beállítás |
Érték |
|
Projekt részletei |
|
| Előfizetés |
Válassza ki előfizetését. |
| Erőforráscsoport |
Válassza a test-rg lehetőséget. |
|
Példány részletei |
|
| Virtuális gép neve |
Írja be a vm-web parancsot. |
| Régió |
Válassza az (USA) USA 2. nyugati régiója elemet. |
| Rendelkezésre állási beállítások |
Hagyja meg a Nincs szükség infrastruktúra-redundanciára vonatkozó alapértelmezett beállítást. |
| Biztonsági típus |
Válassza a Standard lehetőséget. |
| Image |
Válassza az Ubuntu Server 24.04 LTS – x64 Gen2 lehetőséget. |
| Azure Spot-példány |
Hagyja bejelöletlenül az alapértelmezett értéket. |
| Méret |
Válasszon ki egy méretet. |
|
Rendszergazdai fiók |
|
| Hitelesítési típus |
Válassza az SSH nyilvános kulcsát. |
| Felhasználónév |
Adja meg azureuser. |
| Nyilvános SSH-kulcs forrása |
Válassza az Új kulcspár létrehozása lehetőséget. |
| Kulcspár neve |
Adja meg a VM webkulcsot. |
|
Bejövő portszabályok |
|
| Bejövő portok kiválasztása |
Válassza a Nincs lehetőséget. |
Válassza a Következő: Lemezek , majd a Következő: Hálózatkezelés lehetőséget.
A Hálózatkezelés lapon adja meg vagy válassza ki a következő adatokat:
| Beállítás |
Érték |
|
Hálózati adapter |
|
| Virtuális hálózat |
Válassza a vnet-1 lehetőséget. |
| Alhálózat |
Válassza az 1. alhálózatot (10.0.0.0/24). |
| Nyilvános IP-cím |
Hagyja meg az új nyilvános IP-cím alapértelmezett értékét. |
| Hálózati hálózati biztonsági csoport |
Válassza a Nincs lehetőséget. |
Válassza a Véleményezés + létrehozás lapot, vagy válassza a kék Véleményezés + létrehozás gombot az oldal alján.
Válassza a Létrehozás lehetőséget.
Amikor a rendszer új kulcspár létrehozására kéri, válassza a Titkos kulcs letöltése és az erőforrás létrehozása lehetőséget. A titkos kulcs le lesz töltve a helyi számítógépre. A virtuális gép üzembe helyezése eltarthat néhány percig.
Ismételje meg az előző lépéseket egy vm-mgmt nevű második virtuális gép létrehozásához vm-mgmt kulcspárnévvel.
A virtuális gépek létrehozása előtt kérje le a virtuális hálózati objektumot az alhálózattal a Get-AzVirtualNetwork használatával:
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Hozzon létre egy nyilvános IP-címet minden egyes virtuális géphez a New-AzPublicIpAddress használatával:
$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
Hozzon létre két hálózati adaptert a New-AzNetworkInterface használatával, és rendeljen hozzá egy nyilvános IP-címet a hálózati adapterhez. Az alábbi példa létrehoz egy hálózati adaptert, és a nyilvános ip-vm-web nyilvános IP-címet társítja hozzá.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
Az alábbi példa létrehoz egy hálózati adaptert, amely a nyilvános ip-vm-mgmt nyilvános IP-címet társítja hozzá.
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Hozzon létre két virtuális gépet a virtuális hálózatban, hogy érvényesíthesse majd a fogalom szűrését egy később lépésben.
SSH-kulcsok létrehozása az Azure-ban a New-AzSshKey használatával. Az alábbi példa SSH-kulcserőforrásokat hoz létre az egyes virtuális gépekhez:
# Create SSH key for vm-web
$webSshKeyParams = @{
ResourceGroupName = "test-rg"
Name = "vm-web-key"
}
New-AzSshKey @webSshKeyParams
# Create SSH key for vm-mgmt
$mgmtSshKeyParams = @{
ResourceGroupName = "test-rg"
Name = "vm-mgmt-key"
}
New-AzSshKey @mgmtSshKeyParams
Hozzon létre egy virtuálisgép-konfigurációt a New-AzVMConfig használatával, majd hozza létre a virtuális gépet a New-AzVM használatával. Az alábbi példa egy webkiszolgálóként szolgáló virtuális gépet hoz létre. Az -AsJob kapcsoló a háttérben hozza létre a virtuális gépet, így Ön eközben folytathatja a következő lépéssel.
# Get the SSH public key
$sshKey = Get-AzSshKey -Name "vm-web-key" -ResourceGroupName "test-rg"
$webVmConfigParams = @{
VMName = "vm-web"
VMSize = "Standard_DS1_V2"
}
$vmImageParams = @{
PublisherName = "Canonical"
Offer = "ubuntu-24_04-lts"
Skus = "server"
Version = "latest"
}
$webVmConfig = New-AzVMConfig @webVmConfigParams | `
Set-AzVMOperatingSystem -Linux -ComputerName "vm-web" -Credential (New-Object System.Management.Automation.PSCredential("azureuser", (ConvertTo-SecureString "DummyP@ssw0rd" -AsPlainText -Force))) -DisablePasswordAuthentication | `
Set-AzVMSourceImage @vmImageParams | `
Add-AzVMNetworkInterface -Id $webNic.Id | `
Set-AzVMOSDisk -CreateOption FromImage | `
Set-AzVMBootDiagnostic -Disable | `
Add-AzVMSshPublicKey -KeyData $sshKey.publicKey -Path "/home/azureuser/.ssh/authorized_keys"
$webVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $webVmConfig
}
New-AzVM @webVmParams -AsJob
Hozzon létre egy felügyeleti kiszolgálóként szolgáló virtuális gépet:
# Get the SSH public key
$sshKey = Get-AzSshKey -Name "vm-mgmt-key" -ResourceGroupName "test-rg"
$mgmtVmConfigParams = @{
VMName = "vm-mgmt"
VMSize = "Standard_DS1_V2"
}
$vmImageParams = @{
PublisherName = "Canonical"
Offer = "ubuntu-24_04-lts"
Skus = "server"
Version = "latest"
}
$mgmtVmConfig = New-AzVMConfig @mgmtVmConfigParams | `
Set-AzVMOperatingSystem -Linux -ComputerName "vm-mgmt" -Credential (New-Object System.Management.Automation.PSCredential("azureuser", (ConvertTo-SecureString "DummyP@ssw0rd" -AsPlainText -Force))) -DisablePasswordAuthentication | `
Set-AzVMSourceImage @vmImageParams | `
Add-AzVMNetworkInterface -Id $mgmtNic.Id | `
Set-AzVMOSDisk -CreateOption FromImage | `
Set-AzVMBootDiagnostic -Disable | `
Add-AzVMSshPublicKey -KeyData $sshKey.publicKey -Path "/home/azureuser/.ssh/authorized_keys"
$mgmtVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $mgmtVmConfig
}
New-AzVM @mgmtVmParams
A virtuális gép létrehozása néhány percet vesz igénybe. Ne ugorjon a következő lépésre, amíg az Azure be nem fejezte a virtuális gép létrehozását.
Hozzon létre két virtuális gépet a virtuális hálózatban, hogy érvényesíthesse majd a fogalom szűrését egy később lépésben.
Hozzon létre egy virtuális gépet az az vm create paranccsal. Az alábbi példa egy webkiszolgálóként szolgáló virtuális gépet hoz létre. A --nsg "" beállítás meg van adva, hogy az Azure ne hozzon létre alapértelmezett hálózati biztonsági csoportot az Azure által a virtuális gép létrehozásakor létrehozott hálózati adapterhez. A --generate-ssh-keys paraméter hatására a parancssori felület egy elérhető ssh-kulcsot keres a fájlban ~/.ssh. Ha talál ilyet, a rendszer ezt a kulcsot használja. Ha nem, a rendszer létrehoz és tárol egyet a következő helyen ~/.ssh:
az vm create \
--resource-group test-rg \
--name vm-web \
--image Ubuntu2404 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys
A virtuális gép üzembe helyezése néhány percet vesz igénybe. A virtuális gép létrehozása után a rendszer az alábbi példához hasonló kimenetet ad vissza:
{
"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"
}
Hozzon létre egy virtuális gépet az az vm create paranccsal. Az alábbi példa létrehoz egy felügyeleti kiszolgálóként szolgáló virtuális gépet:
az vm create \
--resource-group test-rg \
--name vm-mgmt \
--image Ubuntu2404 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys
A virtuális gép üzembe helyezése néhány percet vesz igénybe. Ne ugorjon a következő lépésre, amíg az Azure be nem fejezte a virtuális gép létrehozását.
Hálózati adapterek társítása ASG-hez
A virtuális gépek létrehozásakor az Azure létrehozott egy hálózati adaptert minden egyes virtuális géphez, és csatlakoztatta a virtuális géphez.
Adja hozzá az egyes virtuális gépek hálózati adapterét a korábban létrehozott alkalmazásbiztonsági csoportok egyikéhez:
A portál tetején található keresőmezőbe írja be a virtuális gépet. Válassza ki a virtuális gépeket a keresési eredmények között, majd válassza a vm-web lehetőséget.
Válassza ki az alkalmazásbiztonsági csoportokat a virtuálisgép-web Hálózatkezelés szakaszából.
Válassza az Alkalmazásbiztonsági csoportok hozzáadása lehetőséget, majd az Alkalmazásbiztonsági csoportok hozzáadása lapon válassza az asg-web lehetőséget. Végül válassza a Hozzáadás lehetőséget.
Ismételje meg az előző lépéseket a vm-mgmt esetében, és válassza az asg-mgmt lehetőséget az Alkalmazásbiztonsági csoportok hozzáadása lapon.
A Get-AzNetworkInterface használatával kérje le a virtuális gép hálózati adapterét, majd a Get-AzApplicationSecurityGroup használatával kérje le az alkalmazásbiztonsági csoportot. Végül a Set-AzNetworkInterface használatával társítsa az alkalmazásbiztonsági csoportot a hálózati adapterhez. Az alábbi példa az asg-webalkalmazás biztonsági csoportját a vm-web-nic hálózati adapterhez társítja:
$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
Ismételje meg a parancsot az asg-mgmt alkalmazás biztonsági csoportjának a vm-mgmt-nic hálózati adapterhez való társításához.
$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
Az az network nic update használatával társíthatja a hálózati adaptert az alkalmazásbiztonsági csoporthoz. Az alábbi példa az asg-webalkalmazás biztonsági csoportját a vm-web-nic hálózati adapterhez társítja:
# 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
Ismételje meg a parancsot az asg-mgmt alkalmazás biztonsági csoportjának a vm-mgmt-nic hálózati adapterhez való társításához.
# 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
Forgalomszűrők tesztelése
A portál tetején található keresőmezőbe írja be a virtuális gépet. Válassza ki a virtuális gépeket a keresési eredmények között.
Válassza ki a vm-web lehetőséget.
Válassza a Futtatás parancsot az Műveletek szakaszban.
Válassza a RunShellScript lehetőséget.
A Parancsszkript futtatása panelen adja meg a következő parancsokat:
sudo apt-get update -y
sudo apt-get install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
Válassza a Futtatás parancsot. Várja meg, amíg a szkript sikeresen befejeződik.
A virtuálisgép-web Áttekintés lapján jegyezze fel a virtuális gép nyilvános IP-címét.
Annak ellenőrzéséhez, hogy hozzáfér-e a vm-web webszerverhez az internetről a 80-as porton, nyisson meg egy webböngészőt a számítógépen, és böngésszen erre http://<public-ip-address-from-previous-step>.
Megjelenik az nginx alapértelmezett lapja, mert az internetről az asg-webalkalmazás biztonsági csoportjába irányuló bejövő forgalom a 80-as porton keresztül engedélyezett.
A vm-webhez csatolt hálózati adapter az asg-web alkalmazás biztonsági csoporthoz van társítva, és engedélyezi a kapcsolatot.
Próbálja meg elérni a vm-webet a 443-as porton a böngészőben való böngészéssel https://<public-ip-address-vm-web> . A kapcsolat meghiúsul vagy időtúllépést szenved, mert az asg-web biztonsági szabálya nem engedélyezi a 443-as port internetről való bejövő forgalmát.
Konfigurálja a vm-mgmt-et a 8080-as porton, nginx használatával. Válassza ki a vm-mgmt elemet a Virtuális gépek lapon.
Válassza a Futtatás parancsot az Operations (Műveletek) szakaszban.
Válassza a RunShellScript lehetőséget.
A Parancsszkript futtatása panelen adja meg a következő parancsokat az nginx 8080-ra való telepítéséhez:
sudo apt-get update -y
sudo apt-get install -y nginx
# Configure nginx to listen on port 8080
sudo tee /etc/nginx/sites-available/default > /dev/null <<EOF
server {
listen 8080 default_server;
listen [::]:8080 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files \$uri \$uri/ =404;
}
}
EOF
sudo systemctl restart nginx
Válassza a Futtatás parancsot. Várja meg, amíg a szkript sikeresen befejeződik.
A vm-mgmtÁttekintés lapján jegyezze fel a virtuális gép nyilvános IP-címét.
Annak ellenőrzéséhez, hogy hozzáfér-e a vm-mgmt webkiszolgálóhoz az internetről a 8080-s porton, nyisson meg egy webböngészőt a számítógépen, és keresse meg a következőt http://<public-ip-address-vm-mgmt>:8080: .
Megjelenik az nginx alapértelmezett lapja, mert az internetről az asg-mgmt alkalmazás biztonsági csoportjába irányuló bejövő forgalom a 8080-as porton keresztül engedélyezett.
Próbálja meg elérni a vm-mgmt-et a 80-as porton, ha a böngészőben megnyitja a http://<public-ip-address-vm-mgmt> címet. A kapcsolat meghiúsul vagy túllépi az időkorlátot, mert egyetlen biztonsági szabály sem engedélyezi a 80-as port bejövő forgalmát az asg-mgmt alkalmazás biztonsági csoportjába .
A vm-webhez csatolt hálózati adapter az asg-web alkalmazás biztonsági csoporthoz van társítva, és engedélyezi a kapcsolatot.
Telepítse az nginxet a vm-webre az Invoke-AzVMRunCommand használatával:
$webInstallParams = @{
ResourceGroupName = "test-rg"
VMName = "vm-web"
CommandId = "RunShellScript"
ScriptString = @"
sudo apt-get update -y
sudo apt-get install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
"@
}
Invoke-AzVMRunCommand @webInstallParams
A parancs végrehajtása eltarthat néhány percig. A befejezés után tesztelje a webes hozzáférést a vm-web virtuális gépen.
Szerezze meg a vm-web nyilvános IP-címét:
$webIPParams = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
$webIP = Get-AzPublicIpAddress @webIPParams
Write-Host "vm-web IP: $($webIP.IpAddress)"
Annak ellenőrzéséhez, hogy hozzáfér-e a vm-web webszerverhez az internetről a 80-as porton, nyisson meg egy webböngészőt a számítógépén, és nyissa meg a következő címet: http://<vm-web-ip-address>.
Az nginx alapértelmezett lapja azért jelenik meg, mert az internetről az asg-webalkalmazás biztonsági csoportjába irányuló bejövő forgalom a 80-as porton keresztül engedélyezett. A virtuálisgép-web virtuális géphez csatolt hálózati adapter ebben a csoportban található.
Próbálja meg elérni a vm-webet a 443-as porton úgy, hogy megnyitja https://<vm-web-ip-address> a böngészőjében. A kapcsolat meghiúsul vagy időtúllépést szenved, mert az asg-web biztonsági szabálya nem engedélyezi a 443-as port internetről való bejövő forgalmát.
Most telepítse az nginxet a 8080-s portra a vm-mgmt rendszeren:
$mgmtInstallParams = @{
ResourceGroupName = "test-rg"
VMName = "vm-mgmt"
CommandId = "RunShellScript"
ScriptString = @"
sudo apt-get update -y
sudo apt-get install -y nginx
# Configure nginx to listen on port 8080
sudo tee /etc/nginx/sites-available/default > /dev/null <<'EOF'
server {
listen 8080 default_server;
listen [::]:8080 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files \$uri \$uri/ =404;
}
}
EOF
sudo systemctl restart nginx
"@
}
Invoke-AzVMRunCommand @mgmtInstallParams
Kérje le a vm-mgmt nyilvános IP-címét:
$mgmtIPParams = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtIP = Get-AzPublicIpAddress @mgmtIPParams
Write-Host "vm-mgmt IP: $($mgmtIP.IpAddress)"
Annak ellenőrzéséhez, hogy hozzáfér-e a vm-mgmt webkiszolgálóhoz az internetről a 8080-s porton, nyisson meg egy webböngészőt a számítógépen, és keresse meg a következőt http://<vm-mgmt-ip-address>:8080: .
Megjelenik az nginx alapértelmezett lapja, mert az internetről az asg-mgmt alkalmazás biztonsági csoportjába irányuló bejövő forgalom a 8080-as porton keresztül engedélyezett.
Próbálja meg elérni a vm-mgmt-et a 80-s porton a böngészőben való böngészéssel http://<vm-mgmt-ip-address> . A kapcsolat meghiúsul vagy túllépi az időkorlátot, mert egyetlen biztonsági szabály sem engedélyezi a 80-as port bejövő forgalmát az asg-mgmt alkalmazás biztonsági csoportjába .
Telepítse az nginxet a vm-web-re az az vm run-command invoke használatával:
az vm run-command invoke \
--resource-group test-rg \
--name vm-web \
--command-id RunShellScript \
--scripts "sudo apt-get update -y && sudo apt-get install -y nginx && sudo systemctl enable nginx && sudo systemctl start nginx"
Szerezze meg a vm-web nyilvános IP-címét:
webIP=$(az vm show --show-details --resource-group test-rg --name vm-web --query publicIps --output tsv)
echo "vm-web IP: $webIP"
A következő parancs segítségével ellenőrizheti, hogy a vm-web webszerverhez hozzáfér-e az internetről a 80-as porton: curl parancs segítségével.
curl http://$webIP
A kapcsolat sikeres, mert az asg-webalkalmazás biztonsági csoportja, amelyben a virtuálisgép-web virtuális géphez csatlakoztatott hálózati adapter található, lehetővé teszi a 80-as portot az internetről.
Próbálja meg elérni a vm-webet a 443-as porton:
curl -k https://$webIP
A kapcsolat meghiúsul vagy időtúllépést szenved, mert az asg-web biztonsági szabálya nem engedélyezi a 443-as port internetről való bejövő forgalmát.
Most telepítse az nginxet a 8080-s portra a vm-mgmt rendszeren:
az vm run-command invoke \
--resource-group test-rg \
--name vm-mgmt \
--command-id RunShellScript \
--scripts "sudo apt-get update -y && \
sudo apt-get install -y nginx && \
sudo bash -c 'cat > /etc/nginx/sites-available/default <<EOF
server {
listen 8080 default_server;
listen [::]:8080 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files \\\$uri \\\$uri/ =404;
}
}
EOF' && \
sudo systemctl restart nginx"
Kérje le a vm-mgmt nyilvános IP-címét:
mgmtIP=$(az vm show --show-details --resource-group test-rg --name vm-mgmt --query publicIps --output tsv)
echo "vm-mgmt IP: $mgmtIP"
Annak ellenőrzéséhez, hogy a vm-mgmt webkiszolgáló a 8080-ás porton elérhető-e az internetről, használja a curl parancsot:
curl http://$mgmtIP:8080
A kapcsolat sikeres, mert az internetről az asg-mgmt alkalmazás biztonsági csoportjába irányuló bejövő forgalom a 8080-as porton keresztül engedélyezett.
Próbálja meg elérni a vm-mgmt-et a 80-s porton:
curl http://$mgmtIP
A kapcsolat meghiúsul vagy túllépi az időkorlátot, mert egyetlen biztonsági szabály sem engedélyezi a 80-as port bejövő forgalmát az asg-mgmt alkalmazás biztonsági csoportjába .
Ha befejezte a létrehozott erőforrások használatát, törölheti az erőforráscsoportot és annak összes erőforrását.
Az Azure Portalon keresse meg és válassza ki az erőforráscsoportokat.
Az Erőforráscsoportok lapon válassza ki a test-rg erőforráscsoportot.
A test-rg lapon válassza az Erőforráscsoport törlése lehetőséget.
A törlés megerősítéséhez írja be a test-rg értéket az Erőforráscsoport neve mezőbe, majd válassza a Törlés lehetőséget.
Ha már nincs rá szükség, a Remove-AzResourceGroup használatával eltávolíthatja az erőforráscsoportot és az összes benne lévő erőforrást:
$params = @{
Name = "test-rg"
Force = $true
}
Remove-AzResourceGroup @params
Ha már nincs rá szükség, az az group delete használatával távolítsa el az erőforráscsoportot és az összes benne lévő erőforrást.
az group delete \
--name test-rg \
--yes \
--no-wait
Következő lépések
Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:
- Létrehozott egy hálózati biztonsági csoportot, és hozzárendelte egy virtuális hálózati alhálózathoz.
- Alkalmazásbiztonsági csoportokat hozott létre a webes és felügyeleti forgalomhoz.
- Két Linux rendszerű virtuális gépet hozott létre SSH-kulcsos hitelesítéssel, és társította a hálózati adaptereket az alkalmazásbiztonsági csoportokkal.
- Nginx-webkiszolgálókat telepített mindkét különböző portkonfigurációjú virtuális gépre.
- Tesztelte az alkalmazásbiztonsági csoport hálózati szűrésének működését azzal, hogy bemutatta, a vm-web engedélyezi a 80-as portot (HTTP), de letiltja a 443-as portot, míg a vm-mgmt engedélyezi a 8080-as portot, de letiltja a 80-as portot (HTTP).
A hálózati biztonsági csoportokkal kapcsolatos további információ: Hálózati biztonsági csoportok áttekintése és Hálózati biztonsági csoportok kezelése.
Az Azure alapértelmezés szerint irányítja a forgalmat az alhálózatok között. Ehelyett dönthet úgy, hogy az alhálózatok közötti forgalmat egy virtuális gépen keresztül irányítja át, például tűzfalként szolgálva.
Ha meg szeretné ismerni, hogyan hozhat létre útválasztási táblázatot, folytassa a következő oktatóanyaggal.