Hálózati forgalom szűrése hálózati biztonsági csoporttal az Azure CLI használatával

A virtuális hálózatok alhálózatainak bejövő vagy kimenő hálózati forgalmát hálózati biztonsági csoport segítségével szűrheti. 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. A biztonsági szabályok az egyes alhálózatokban üzembe helyezett erőforrásokra vonatkoznak. Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Hálózati biztonsági csoport és biztonsági szabályok 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 egy alhálózaton
  • Forgalomszűrők tesztelése

If you don't have an Azure subscription, create an Azure free account before you begin.

Előfeltételek

  • 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.

Hálózati biztonsági csoport létrehozása

A hálózati biztonsági csoportok biztonsági szabályokat tartalmaznak. A biztonsági szabályok egy forrást és egy célt határoznak meg. A források és célok lehetnek alkalmazásbiztonsági csoportok.

Alkalmazásbiztonsági csoportok létrehozása

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. A következő példa létrehoz egy erőforráscsoportot az eastus helyen:

az group create \
  --name myResourceGroup \
  --location eastus

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 myResourceGroup \
  --name myAsgWebServers \
  --location eastus

az network asg create \
  --resource-group myResourceGroup \
  --name myAsgMgmtServers \
  --location eastus

Hálózati biztonsági csoport létrehozása

Hozzon létre egy hálózati biztonsági csoportot az network nsg create használatával. Az alábbi példa egy myNsg nevű hálózati biztonsági csoportot hoz létre:

# Create a network security group
az network nsg create \
  --resource-group myResourceGroup \
  --name myNsg

Biztonsági szabályok létrehozása

Hozzon létre egy biztonsági szabályt az az network nsg rule create használatával. Az alábbi példa egy olyan szabályt hoz létre, amely engedélyezi az internetről a myWebServers alkalmazásbiztonsági csoportba bejövő forgalmat a 80-as és 443-as porton keresztül.

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsg \
  --name Allow-Web-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-asgs "myAsgWebServers" \
  --destination-port-range 80 443

Az alábbi példa létrehoz egy szabályt, amely engedélyezi az internetről a myMgmtServers alkalmazás biztonsági csoportjába irányuló forgalmat a 22-s porton keresztül:

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsg \
  --name Allow-SSH-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 110 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-asgs "myAsgMgmtServers" \
  --destination-port-range 22

Ebben a cikkben az SSH (22-as port) elérhető az interneten a myAsgMgmtServers virtuális gép számára. Éles környezetekben a 22-s port internetes megjelenítése helyett ajánlott olyan Azure-erőforrásokhoz csatlakozni, amelyeket VPN- vagy magánhálózati kapcsolattal szeretne kezelni.

Virtuális hálózat létrehozása

Hozzon létre egy virtuális hálózatot az az network vnet create paranccsal. Az alábbi példa egy myVirtualNetwork virtuális hálózatot hoz létre:

az network vnet create \
  --name myVirtualNetwork \
  --resource-group myResourceGroup \
  --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 mySubnet nevű alhálózatot ad hozzá a virtuális hálózathoz, és hozzárendeli a myNsg hálózati biztonsági csoportot.

az network vnet subnet create \
  --vnet-name myVirtualNetwork \
  --resource-group myResourceGroup \
  --name mySubnet \
  --address-prefix 10.0.0.0/24 \
  --network-security-group myNsg

Virtuális gépek létrehozása

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 virtuális gépet hoz létre, amely webkiszolgálóként fog szolgálni. A --asgs myAsgWebServers beállítás hatására az Azure a virtuális gép számára létrehozott hálózati adaptert a myAsgWebServers alkalmazásbiztonsági csoport tagjának állítja be.

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 cikk egyszerűsítése érdekében a rendszer jelszót használ. A kulcsokat általában éles környezetben használják. Kulcsok használata esetén az SSH-ügynök továbbítását is konfigurálnia kell a többi lépéshez. További információkért tekintse meg az SSH-ügyfél dokumentációját. Cserélje le <replace-with-your-password> a következő parancsot egy választott jelszóra.

adminPassword="<replace-with-your-password>"

az vm create \
  --resource-group myResourceGroup \
  --name myVmWeb \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet mySubnet \
  --nsg "" \
  --asgs myAsgWebServers \
  --admin-username azureuser \
  --admin-password $adminPassword

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/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVmWeb",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "myResourceGroup"
}

Jegyezze fel a publicIpAddress értékét. Ezzel a címmel érheti el a virtuális gépet az internetről egy későbbi lépésben. Hozzon létre egy felügyeleti kiszolgálóként szolgáló virtuális gépet:

az vm create \
  --resource-group myResourceGroup \
  --name myVmMgmt \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet mySubnet \
  --nsg "" \
  --asgs myAsgMgmtServers \
  --admin-username azureuser \
  --admin-password $adminPassword

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 jegyezze fel a publicIpAddress függvényt a visszaadott kimenetben. Ezzel a címmel érheti el a virtuális gépet a következő lépésben. Ne ugorjon a következő lépésre, amíg az Azure be nem fejezte a virtuális gép létrehozását.

Forgalomszűrők tesztelése

Az alábbi paranccsal hozzon létre egy SSH-munkamenetet a myVmMgmt virtuális géppel. Cserélje le <a publicIpAddress elemet> a virtuális gép nyilvános IP-címére. A fenti példában az IP-cím 13.90.242.231.

ssh azureuser@<publicIpAddress>

Amikor a rendszer jelszót kér, adja meg a virtuális gépek létrehozása területen megadott jelszót.

A kapcsolat sikeres, mert a 22-as port az internetről a myAsgMgmtServers alkalmazás biztonsági csoportjába engedélyezett, amelyben a myVmMgmt virtuális géphez csatlakoztatott hálózati adapter található.

A következő paranccsal SSH-t használhat a myVmWeb virtuális gépre a myVmMgmt virtuális gépről:

ssh azureuser@myVmWeb

A kapcsolat sikeresen létrejön, mert az egyes hálózati biztonsági csoportokon belüli alapértelmezett biztonsági szabály minden porton keresztül engedélyezi a forgalmat a virtuális hálózaton belüli összes IP-cím között. A myVmWeb virtuális géphez nem lehet SSH-t csatlakoztatni az internetről, mert a myAsgWebServers biztonsági szabálya nem engedélyezi a 22-s portot az internetről.

A következő parancsokkal telepítse az nginx webkiszolgálót a myVmWeb virtuális gépre:

# Update package source
sudo apt-get -y update

# Install NGINX
sudo apt-get -y install nginx

A myVmWeb virtuális gép az internetre kifelé haladva lekérheti az nginxet, mert egy alapértelmezett biztonsági szabály lehetővé teszi az internet felé irányuló kimenő forgalmat. Lépjen ki a myVmWeb SSH-munkamenetből, amely a username@myVmMgmt:~$ myVmMgmt virtuális gép parancssorából indul ki. Ha le szeretné kérni az nginx üdvözlőképernyőjét a myVmWeb virtuális gépről, írja be a következő parancsot:

curl myVmWeb

A myVmMgmt virtuális gép kijelentkezése. Annak ellenőrzéséhez, hogy hozzáfér-e a myVmWeb webkiszolgálóhoz az Azure-on kívülről, írja be curl <publicIpAddress> a saját számítógépéről. A kapcsolat sikeres, mert a 80-as port be van kapcsolva az internetről a myAsgWebServers alkalmazás biztonsági csoportjába, amelyben a myVmWeb virtuális géphez csatlakoztatott hálózati adapter található.

Clean up resources

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 myResourceGroup --yes

Következő lépések

Ebben a cikkben létrehozott egy hálózati biztonsági csoportot, és hozzárendelte egy virtuális hálózati alhálózathoz. 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 lehetősége van arra, hogy egy virtuális gépen keresztül irányítsa a forgalmat az alhálózatok között, amely így például tűzfalként is szolgálhat. További információ: Útvonaltábla létrehozása.