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

Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes Azure-fiókot .

Előfeltételek

  • Ehhez a cikkhez az Azure CLI 2.0.28-es vagy újabb verziója szükséges. 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 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ásbiztonsági csoport felé 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-s port) elérhető az interneten a myAsgMgmtServers virtuális géphez. Éles környezetekben ahelyett, hogy a 22-s portot az internetre tenné, ajánlott VPN- vagy magánhálózati kapcsolattal csatlakozni a kezelni kívánt Azure-erőforrásokhoz.

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 jelszót használunk. 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ót az SSH-ügyfél dokumentációjában talál. Cserélje le <replace-with-your-password> a következő parancsot egy ön által választott jelszóra.

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

az vm create \
  --resource-group myResourceGroup \
  --name myVmWeb \
  --image UbuntuLTS \
  --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 következő példához hasonló kimenet jelenik meg:

{
  "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 egy későbbi lépésben érheti el a virtuális gépet az internetről. 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 UbuntuLTS \
  --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ájlt a visszaadott kimenetben. A következő lépésben ezt a címet használjuk a virtuális gép eléréséhez. 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ásakor megadott jelszót.

A kapcsolat sikeres, mert a 22-s port engedélyezett az internetről arra a myAsgMgmtServers alkalmazásbiztonsági csoportra, 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éphez 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. Nem tud SSH-t csatlakoztatni a myVmWeb virtuális géphez 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 kimenő forgalomként beolvasható az internetre az nginx lekéréséhez, mert egy alapértelmezett biztonsági szabály lehetővé teszi az internet felé irányuló összes kimenő forgalmat. Lépjen ki a myVmWeb SSH-munkamenetből, amely a username@myVmMgmt:~$myVmMgmt virtuális gép kérdésére hagyja. 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

Kijelentkezés a myVmMgmt virtuális gépről. 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-os port engedélyezett az internetről arra a myAsgWebServers alkalmazásbiztonsági csoportra, amelyben a myVmWeb virtuális géphez csatlakoztatott hálózati adapter található.

Az erőforrások eltávolítása

Ha már nincs rá szükség, az az csoporttörlés 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 azt 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.