Virtuális gép hálózati forgalomszűrőjének problémáinak diagnosztizálása

Ebből a cikkből megtudhatja, hogyan diagnosztizálhatja a hálózati forgalomszűrővel kapcsolatos problémákat a virtuális gépekre érvényes hálózati biztonsági csoport (NSG) biztonsági szabályainak megtekintésével.

Az NSG-k lehetővé teszik a virtuális gépeken bejövő és kimenő forgalom típusának szabályozását. Az NSG-t társíthatja egy Azure-beli virtuális hálózat alhálózatához, egy virtuális géphez csatlakoztatott hálózati adapterhez vagy mindkettőhöz. A hálózati adapterre alkalmazott hatályos biztonsági szabályok a hálózati adapterhez társított NSG-ben meglévő szabályok összesítése, és az alhálózat, amelyben a hálózati adapter található. A különböző NSG-k szabályai néha ütközhetnek egymással, és hatással lehetnek a virtuális gép hálózati kapcsolatára. Megtekintheti a virtuális gép hálózati adapterén alkalmazott NSG-k összes hatályos biztonsági szabályát. Ha nem ismeri a virtuális hálózat, a hálózati adapter vagy az NSG fogalmait, tekintse meg a virtuális hálózatok áttekintését, a hálózati adapterek és a hálózati biztonsági csoportok áttekintését.

Eset

Megpróbál csatlakozni egy virtuális géphez a 80-as porton keresztül az internetről, de a kapcsolat meghiúsul. Annak megállapításához, hogy miért nem fér hozzá a 80-as porthoz az internetről, megtekintheti a hálózati adapter érvényes biztonsági szabályait az Azure Portal, a PowerShell vagy az Azure CLI használatával.

Az alábbi lépések feltételezik, hogy rendelkezik egy meglévő virtuális géppel a hatályos biztonsági szabályok megtekintéséhez. Ha nem rendelkezik meglévő virtuális géppel, először helyezzen üzembe egy Linux vagy Windows virtuális gépet a cikkben szereplő feladatok elvégzéséhez. A cikkben szereplő példák egy myVM nevű, myVMVMNic nevű hálózati adapterrel rendelkező virtuális gépre mutatnak. A virtuális gép és a hálózati adapter egy myResourceGroup nevű erőforráscsoportban található, és az USA keleti régiójában találhatók. Módosítsa az értékeket a megfelelő lépésekben arra a virtuális gépre vonatkozóan, amelynél a problémát diagnosztizálja.

Diagnosztizálás Azure Portal használatával

  1. Jelentkezzen be az Azure Portalra egy olyan Azure-fiókkal, amely rendelkezik a szükséges engedélyekkel.

  2. A Azure Portal tetején írja be a virtuális gép nevét a keresőmezőbe. Amikor a virtuális gép neve megjelenik a keresési eredmények között, jelölje ki.

  3. A BEÁLLÍTÁSOK területen válassza a Hálózatkezelés lehetőséget az alábbi képen látható módon:

    Screenshot shows the Azure portal with Networking settings for my V M V M Nic.

    Az előző képen látható szabályok a myVMVMNic nevű hálózati adapterre vonatkoznak. Láthatja, hogy két különböző hálózati biztonsági csoport bejövő portszabályai vannak a hálózati adapterhez:

    • mySubnetNSG: Ahhoz az alhálózathoz van társítva, amelyben a hálózati adapter található.
    • myVMNSG: A myVMVMNic nevű virtuális gép hálózati adapteréhez van társítva.

    A DenyAllInBound nevű szabály megakadályozza a virtuális gép felé irányuló bejövő kommunikációt a 80-as porton keresztül az internetről, a forgatókönyvben leírtak szerint. A szabály a FORRÁS 0.0.0.0/0 listáját tartalmazza, amely tartalmazza az internetet is. Más magasabb prioritású (alacsonyabb számú) szabály nem engedélyezi a 80-es port bejövő forgalmát. Ha engedélyezni szeretné, hogy a 80-os port bejövő legyen a virtuális gépre az internetről, olvassa el a Probléma megoldása című témakört. A biztonsági szabályokról és azok Azure-beli alkalmazásáról további információt a hálózati biztonsági csoportokban talál.

    A kép alján a KIMENŐPORT-SZABÁLYOK is láthatók. Ezek alatt vannak a hálózati adapter kimenő portszabályai. Bár a képen minden NSG-hez csak négy bejövő szabály látható, az NSG-k több mint négy szabályt tartalmazhatnak. A képen a VirtualNetwork a SOURCE és a DESTINATION , az AzureLoadBalancer pedig a SOURCE (Forrás) területen látható. A VirtualNetwork és az AzureLoadBalancerszolgáltatáscímkék. A szolgáltatáscímkék IP-címelőtagok egy csoportját jelölik, így minimalizálva a biztonsági szabályok létrehozásának összetettségét.

  4. Győződjön meg arról, hogy a virtuális gép futó állapotban van, majd válassza az Előző képen látható Hatályos biztonsági szabályok lehetőséget az érvényes biztonsági szabályok megtekintéséhez, az alábbi képen látható módon:

    Screenshot shows the Effective security rules pane with Download selected and AllowAzureLoadBalancerInbound Inbound rule selected.

    A felsorolt szabályok megegyeznek a 3. lépésben látott szabályokkal, bár a hálózati adapterhez és az alhálózathoz különböző lapok tartoznak az NSG-hez. Ahogy a képen látható, csak az első 50 szabály jelenik meg. Az összes szabályt tartalmazó .csv fájl letöltéséhez válassza a Letöltés lehetőséget.

    Az egyes szolgáltatáscímkék előtagjainak megtekintéséhez válasszon ki egy szabályt, például az AllowAzureLoadBalancerInbound nevű szabályt. Az alábbi képen az AzureLoadBalancer szolgáltatáscímke előtagja látható:

    Screenshot shows Address prefixes for AllowAzureLoadBalancerInbound entered.

    Bár az AzureLoadBalancer szolgáltatáscímke csak egy előtagot jelöl, más szolgáltatáscímkék több előtagot is képviselnek.

  5. Az előző lépések a myVMVMNic nevű hálózati adapter biztonsági szabályait mutatták be, de néhány korábbi képen egy myVMVMNic2 nevű hálózati adaptert is láthatott. A példában szereplő virtuális géphez két hálózati adapter van csatlakoztatva. Az érvényes biztonsági szabályok az egyes hálózati adapterek esetében eltérőek lehetnek.

    A myVMVMNic2 hálózati adapter szabályainak megtekintéséhez jelölje ki. Ahogy az a következő képen látható, a hálózati adapternek ugyanazok a szabályai vannak társítva az alhálózatához, mint a myVMVMNic hálózati adapterhez, mivel mindkét hálózati adapter ugyanabban az alhálózatban található. Amikor társít egy NSG-t egy alhálózathoz, annak szabályai az alhálózat összes hálózati adapterére érvényesek lesznek.

    Screenshot shows the Azure portal with Networking settings for my V M V M Nic 2.

    A myVMVMNic hálózati adaptertől eltérően a myVMVMNic2 hálózati adapterhez nincs hálózati biztonsági csoport társítva. Minden hálózati adapterhez és alhálózathoz nulla vagy egy NSG lehet társítva. Az egyes hálózati adapterekhez vagy alhálózatokhoz társított NSG azonos vagy eltérő lehet. Ugyanazt a hálózati biztonsági csoportot tetszőleges számú hálózati adapterhez és alhálózathoz társíthatja.

Bár az érvényes biztonsági szabályokat a virtuális gépen keresztül tekintették meg, az érvényes biztonsági szabályokat egyéni felhasználókon keresztül is megtekintheti:

Diagnosztizálás a PowerShell használatával

Megjegyzés

Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Futtathatja a következő parancsokat az Azure Cloud Shell, vagy futtathatja a PowerShellt a számítógépről. Az Azure Cloud Shell egy ingyenes interaktív rendszerhéj. A fiókjával való használat érdekében a gyakran használt Azure-eszközök már előre telepítve és konfigurálva vannak rajta. Ha a számítógépen futtatja a PowerShellt, szüksége lesz a Azure PowerShell modulra, amely 1.0.0-s vagy újabb verziójú. Futtassa Get-Module -ListAvailable Az a számítógépen a telepített verzió megkereséséhez. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. Ha helyileg futtatja a PowerShellt, a szükséges engedélyekkel rendelkező fiókkal is be kell jelentkeznie Connect-AzAccount az Azure-ba.

A Get-AzEffectiveNetworkSecurityGroup segítségével lekérheti a hálózati adapterek hatályos biztonsági szabályait. Az alábbi példa lekéri a myVMVMNic nevű hálózati adapter érvényes biztonsági szabályait, amely a myResourceGroup nevű erőforráscsoportban található:

Get-AzEffectiveNetworkSecurityGroup `
  -NetworkInterfaceName myVMVMNic `
  -ResourceGroupName myResourceGroup

A kimenet json formátumban jelenik meg. A kimenet megértéséhez tekintse meg a parancs kimenetének értelmezését. A kimenet csak akkor lesz visszaadva, ha egy NSG van társítva a hálózati adapterrel, az alhálózattal, amelyben a hálózati adapter található, vagy mindkettő. A virtuális gépnek futó állapotban kell lennie. Egy virtuális gép több hálózati adapterrel is rendelkezhet, amelyeken különböző NSG-k vannak alkalmazva. Hibaelhárításkor futtassa az egyes hálózati adapterek parancsát.

Ha továbbra is csatlakozási problémát tapasztal, tekintse meg a további diagnózisokat és szempontokat.

Ha nem tudja a hálózati adapter nevét, de nem tudja annak a virtuális gépnek a nevét, amelyhez a hálózati adapter csatlakozik, a következő parancsok a virtuális géphez csatolt összes hálózati adapter azonosítóját adják vissza:

$VM = Get-AzVM -Name myVM -ResourceGroupName myResourceGroup
$VM.NetworkProfile

A következő példához hasonló kimenet jelenik meg:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMVMNic

Az előző kimenetben a hálózati adapter neve myVMVMNic.

Diagnosztizálás az Azure CLI használatával

Ha a cikkben szereplő feladatok elvégzéséhez Azure CLI-parancsokat használ, futtassa a parancsokat az Azure Cloud Shell, vagy futtassa az Azure CLI-t a számítógépéről. Ehhez a cikkhez az Azure CLI 2.0.32-es vagy újabb verziója szükséges. A telepített verzió azonosításához futtassa a következőt: az --version. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. Ha helyileg futtatja az Azure CLI-t, akkor egy olyan fiókkal kell futtatnia az login és bejelentkeznie az Azure-ba, amely rendelkezik a szükséges engedélyekkel.

Szerezze be az érvényes biztonsági szabályokat egy hálózati adapterhez az az network nic list-effective-nsg használatával. Az alábbi példa lekéri a myVMVMNic nevű hálózati adapter érvényes biztonsági szabályait, amely a myResourceGroup nevű erőforráscsoportban található:

az network nic list-effective-nsg \
  --name myVMVMNic \
  --resource-group myResourceGroup

A kimenet json formátumban jelenik meg. A kimenet megértéséhez tekintse meg a parancs kimenetének értelmezését. A kimenet csak akkor lesz visszaadva, ha egy NSG van társítva a hálózati adapterrel, az alhálózattal, amelyben a hálózati adapter található, vagy mindkettő. A virtuális gépnek futó állapotban kell lennie. Egy virtuális gép több hálózati adapterrel is rendelkezhet, amelyeken különböző NSG-k vannak alkalmazva. Hibaelhárításkor futtassa az egyes hálózati adapterek parancsát.

Ha továbbra is csatlakozási problémát tapasztal, tekintse meg a további diagnózisokat és szempontokat.

Ha nem tudja a hálózati adapter nevét, de nem tudja annak a virtuális gépnek a nevét, amelyhez a hálózati adapter csatlakozik, a következő parancsok a virtuális géphez csatolt összes hálózati adapter azonosítóját adják vissza:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

A visszaadott kimenetben az alábbi példához hasonló információk láthatók:

"networkProfile": {
    "additionalProperties": {},
    "networkInterfaces": [
      {
        "additionalProperties": {},
        "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMVMNic",
        "primary": true,
        "resourceGroup": "myResourceGroup"
      },

Az előző kimenetben a hálózati adapter neve myVMVMNic interfész.

Parancskimenet értelmezése

Függetlenül attól, hogy a PowerShellt vagy az Azure CLI-t használta-e a probléma diagnosztizálásához, a következő információkat tartalmazó kimenet jelenik meg:

  • NetworkSecurityGroup: A hálózati biztonsági csoport azonosítója.
  • Társítás: Azt határozza meg, hogy a hálózati biztonsági csoport egy NetworkInterface-hez vagy alhálózathoz van-e társítva. Ha mindkettőhöz NSG van társítva, a kimenetet a NetworkSecurityGroup, azAssociation és az EffectiveSecurityRules adja vissza minden NSG-hez. Ha az NSG közvetlenül a parancs futtatása előtt van társítva vagy megszüntetve az érvényes biztonsági szabályok megtekintéséhez, előfordulhat, hogy várnia kell néhány másodpercet, amíg a módosítás megjelenik a parancs kimenetében.
  • EffectiveSecurityRules: Az egyes tulajdonságok magyarázatát a Biztonsági szabály létrehozása című cikk ismerteti. A defaultSecurityRules/ előtaggal előtaggal ellátott szabálynevek alapértelmezett biztonsági szabályok, amelyek minden NSG-ben léteznek. A securityRules/ előtaggal előtaggal ellátott szabálynevek az Ön által létrehozott szabályok. A szolgáltatáscímkét (például Internet, VirtualNetwork és AzureLoadBalancer ) a destinationAddressPrefix vagy sourceAddressPrefix tulajdonságokhoz megadó szabályok szintén rendelkeznek értékekkel a expandedDestinationAddressPrefix tulajdonsághoz. A expandedDestinationAddressPrefix tulajdonság felsorolja a szolgáltatáscímke által képviselt összes címelőtagot.

Ha ismétlődő szabályokat lát a kimenetben, annak az az oka, hogy egy NSG van társítva a hálózati adapterhez és az alhálózathoz is. Mindkét NSG ugyanazokkal az alapértelmezett szabályokkal rendelkezik, és további ismétlődő szabályokkal is rendelkezhet, ha saját szabályokat hozott létre, amelyek mindkét NSG-ben megegyeznek.

A defaultSecurityRules/DenyAllInBound nevű szabály megakadályozza a virtuális gép felé irányuló bejövő kommunikációt a 80-as porton keresztül az internetről, a forgatókönyvben leírtak szerint. Nincs más magasabb prioritású (alacsonyabb számú) szabály, amely engedélyezi a 80-es port internetről történő bejövő forgalmát.

Probléma megoldása

Akár az Azure Portalt, a PowerShellt, akár az Azure CLI-t használja a jelen cikkben ismertetett forgatókönyvben bemutatott probléma diagnosztizálására, a megoldás egy hálózati biztonsági szabály létrehozása a következő tulajdonságokkal:

Tulajdonság Érték
Forrás Bármely
Forrásporttartományok Bármelyik
Cél A virtuális gép IP-címe, egy IP-címtartomány vagy az alhálózat összes címe.
Célporttartományok 80
Protokoll TCP
Művelet Engedélyezés
Prioritás 100
Név Allow-HTTP-All

A szabály létrehozása után a 80-s port engedélyezett az internetről, mivel a szabály prioritása magasabb, mint a DenyAllInBound nevű alapértelmezett biztonsági szabály, amely megtagadja a forgalmat. Megtudhatja, hogyan hozhat létre biztonsági szabályt. Ha a hálózati adapterhez és az alhálózathoz is különböző NSG-k vannak társítva, ugyanazt a szabályt mindkét NSG-ben létre kell hoznia.

Amikor az Azure feldolgozza a bejövő forgalmat, az alhálózathoz társított NSG-ben dolgozza fel a szabályokat (ha van társított NSG), majd feldolgozza a hálózati adapterhez társított NSG-ben lévő szabályokat. Ha a hálózati adapterhez és az alhálózathoz NSG van társítva, a portnak mindkét NSG-ben nyitva kell lennie ahhoz, hogy a forgalom elérje a virtuális gépet. Az adminisztrációs és kommunikációs problémák megkönnyítése érdekében javasoljuk, hogy az NSG-t az egyes hálózati adapterek helyett egy alhálózathoz társítsa. Ha az alhálózaton belüli virtuális gépeknek eltérő biztonsági szabályokra van szükségük, a hálózati adaptereket egy alkalmazásbiztonsági csoport (ASG) tagjaivá teheti, és megadhat egy ASG-t a biztonsági szabály forrásaként és céljaként. További információ az alkalmazásbiztonsági csoportokról.

Ha továbbra is kommunikációs problémákat tapasztal, tekintse meg a Megfontolandó szempontok és a További diagnózis című témakört.

Megfontolandó szempontok

A csatlakozási problémák elhárításához vegye figyelembe a következő szempontokat:

  • Az alapértelmezett biztonsági szabályok blokkolják az internetről érkező bejövő hozzáférést, és csak a virtuális hálózatról érkező bejövő forgalmat engedélyezik. Az internetről bejövő forgalom engedélyezéséhez adjon hozzá az alapértelmezettnél magasabb prioritású biztonsági szabályokat. További információ az alapértelmezett biztonsági szabályokról, illetve a biztonsági szabályok hozzáadásáról.
  • Ha társviszonyban lévő virtuális hálózatokkal rendelkezik, a VIRTUAL_NETWORK szolgáltatáscímke alapértelmezés szerint automatikusan kibővül, hogy tartalmazza a virtuális társhálózatok előtagjait. A virtuális hálózatok közötti társviszony-létesítéssel kapcsolatos problémák elhárításához megtekintheti az előtagokat az ExpandedAddressPrefix listában. További információ a virtuális hálózatok közötti társviszony-létesítésről és a szolgáltatáscímkékről.
  • Az érvényes biztonsági szabályok csak akkor jelennek meg a hálózati adaptereken, ha a virtuális gép hálózati adapteréhez és alhálózatához NSG van társítva, és ha a virtuális gép futó állapotban van.
  • Ha a hálózati adapterhez vagy alhálózathoz nincs NSG társítva, és nyilvános IP-cím van hozzárendelve egy virtuális géphez, minden port nyitva van a bejövő és kimenő hozzáféréshez bárhonnan. Ha a virtuális gép nyilvános IP-címmel rendelkezik, javasoljuk, hogy alkalmazzon NSG-t a hálózati adapter alhálózatára.

További diagnosztika

  • Az Azure Network Watcher IP-folyamatellenőrző funkciójának használatával gyorstesztet futtathat annak megállapításához, hogy engedélyezett-e a virtuális gép felé vagy onnan érkező forgalom. Az IP-forgalom ellenőrzése megmutatja, hogy a forgalom engedélyezve van-e vagy sem. Ha a rendszer megtagadja, az IP-forgalom ellenőrzése megmutatja, hogy melyik biztonsági szabály tiltja a forgalmat.
  • Ha nincsenek olyan biztonsági szabályok, amelyek a virtuális gép hálózati kapcsolatának meghiúsulását okozzák, a problémát a következők okozhatják:

Következő lépések