Megosztás a következőn keresztül:


Virtuális gépek hálózatiforgalom-szűrési problémájának diagnosztizálása

Ebben a cikkben megtudhatja, hogyan diagnosztizálhat hálózati forgalomszűrővel kapcsolatos problémát 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 érvényes biztonsági szabályok a hálózati adapterhez társított NSG-ben meglévő szabályok összesítése, és a hálózati adapter alhálózata. A különböző NSG-k szabályai néha ütközhetnek egymással, és hatással lehetnek a virtuális gépek hálózati kapcsolatára. Megtekintheti a virtuális gép hálózati adaptereire 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 adaptert és a hálózati biztonsági csoportok áttekintését.

Eset

Megpróbál csatlakozni egy virtuális géphez a 80-s porton keresztül az internetről, de a kapcsolat meghiúsul. Annak megállapításához, hogy miért nem tudja elérni a 80-as portot az internetről, megtekintheti a hálózati adapterek hatályos 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 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 telepítsen egy Linux vagy Windows rendszerű 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. Szükség szerint módosítsa a problémát diagnosztizáló virtuális gép lépéseiben szereplő értékeket.

Diagnosztizálás az 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. Az Azure Portal tetején adja meg a virtuális gép nevét a keresőmezőbe. Amikor megjelenik a virtuális gép neve 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:

    Képernyőkép az Azure Portalról a V M V M hálózati adapter hálózati beállításaival.

    Az előző képen látható szabályok egy 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 felsorolja a 0.0.0.0/0-t a SOURCE-hez, amely tartalmazza az internetet is. A magasabb prioritású (alacsonyabb számú) egyéb 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Ő PORTSZABÁLYOK is láthatók. Ezek alatt vannak a hálózati adapter kimenő portszabályai. Bár a képen csak négy bejövő szabály látható az egyes NSG-khez, 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 alatt látható. A VirtualNetwork és az AzureLoadBalancer szolgáltatáscímkék. A szolgáltatáscímkék AZ IP-címelőtagok egy csoportját jelölik, így minimalizálható a biztonsági szabályok létrehozásának összetettsége.

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

    Képernyőkép az Érvényes biztonsági szabályok panelről, amelyen a Letöltés lehetőség van kiválasztva, és az AllowAzureLoadBalancerInbound bejövő szabály ki van jelölve.

    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 tartozó NSG különböző lapokat használ. 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ímkéjének előtagja látható:

    Képernyőkép az AllowAzureLoadBalancerInbound megadott címelőtagokról.

    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 jelölnek.

  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 minden hálózati adapter esetében eltérőek lehetnek.

    A myVMVMNic2 hálózati adapter szabályainak megtekintéséhez jelölje ki. Az alábbi képen látható módon a hálózati adapternek ugyanazok a szabályai vannak 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ó. Ha egy NSG-t egy alhálózathoz társít, annak szabályait az alhálózat összes hálózati adapterére alkalmazza a rendszer.

    Képernyőkép az Azure Portalról a V M V M Nic 2 hálózati beállításaival.

    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 a virtuális gépen keresztül tekinthet meg érvényes biztonsági szabályokat, a hatékony biztonsági szabályokat egyénien is megtekintheti:

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

Feljegyzés

Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. 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.

A következő parancsokat az Azure Cloud Shellben, vagy a PowerShell futtatásával futtathatja 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 az Azure PowerShell 1.0.0-s vagy újabb verziójára. 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.

Szerezze be a get-AzEffectiveNetworkSecurityGroup hálózati adapterre vonatkozó hatályos biztonsági szabályokat. Az alábbi példa a myVMVMNic nevű hálózati adapter érvényes biztonsági szabályait tartalmazza, amely a myResourceGroup nevű erőforráscsoportban található:

Get-AzEffectiveNetworkSecurityGroup `
  -NetworkInterfaceName myVMVMNic `
  -ResourceGroupName myResourceGroup

A kimenet json formátumban lesz visszaadva. 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, a hálózati adapter alhálózatával vagy mindkettővel. 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 visszaadják a virtuális géphez csatlakoztatott összes hálózati adapter azonosítóját:

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

A következő példához hasonló kimenetet kap:

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 Shellben, vagy futtassa az Azure CLI-t a számítógépéről. Ez a cikk az Azure CLI 2.0.32-es vagy újabb verzióját igényli. 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, egy olyan fiókkal is be kell jelentkeznie az login az Azure-ba, amely rendelkezik a szükséges engedélyekkel.

Szerezze be az az network nic list-effective-nsg hálózati adapter érvényes biztonsági szabályait. Az alábbi példa a myResourceGroup nevű erőforráscsoportban található myVMVMNic nevű hálózati adapter érvényes biztonsági szabályait tartalmazza:

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

A kimenet json formátumban lesz visszaadva. 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, a hálózati adapter alhálózatával vagy mindkettővel. 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 visszaadják a virtuális géphez csatlakoztatott összes hálózati adapter azonosítóját:

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.

Parancs kimenetének é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 jelzi, hogy a hálózati biztonsági csoport a NetworkInterface vagy alhálózathoz van-e társítva. Ha egy NSG mindkettőhöz van társítva, a kimenet a NetworkSecurityGroup, az Association és az EffectiveSecurityRules függvényekkel lesz visszaadva minden egyes NSG-hez. Ha az NSG közvetlenül a parancs futtatása előtt van társítva vagy leválasztva a tényleges 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ű témakörben találja. A defaultSecurityRules/ előtaggal ellátott szabálynevek az alapértelmezett biztonsági szabályok, amelyek minden NSG-ben léteznek. A securityRules/ előtaggal ellátott szabálynevek olyan szabályok, amelyeket ön hozott létre. A szolgáltatáscímkét megadó szabályok, például az Internet, a VirtualNetwork és az AzureLoadBalancer a destinationAddressPrefix vagy a sourceAddressPrefix tulajdonságokhoz szintén rendelkeznek értékekkel a expandáltDestinationAddressPrefix 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 a hálózati adapterhez és az alhálózathoz is társítva van. Mindkét NSG ugyanazokkal az alapértelmezett szabályokkal rendelkezik, és további ismétlődő szabályokkal is rendelkezhet, ha mindkét NSG-ben azonos szabályokat hozott létre.

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. A magasabb prioritású (alacsonyabb számú) egyéb szabály nem engedélyezi a 80-es portot az internetről való bejövő forgalomhoz.

Probléma megoldása

Akár az Azure Portalt, a PowerShellt, akár az Azure CLI-t használja a jelen cikkben bemutatott probléma diagnosztizálásához, 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ármely
Cél A virtuális gép IP-címe, az IP-címek tartománya 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-os 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, mindkét NSG-ben ugyanazt a szabályt kell létrehoznia.

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 szabályait. 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, beállíthatja, hogy a hálózati adapterek egy alkalmazásbiztonsági csoport (ASG) tagjai legyenek, és egy ASG-t adjon meg egy 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ó szempontokat és a további diagnosztika című témakört.

Megfontolások

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

  • Az alapértelmezett biztonsági szabályok blokkolják a bejövő hozzáférést az internetről, é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árshálózatokkal rendelkezik, alapértelmezés szerint a VIRTUAL_NETWORK szolgáltatáscímke automatikusan kibővül, hogy a társviszonyban lévő virtuális hálózatok előtagjait is tartalmazza. 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 a ExpandedAddressPrefix listában. További információ a virtuális hálózatok társviszony-létesítéséről és a szolgáltatáscímkékről.
  • Az érvényes biztonsági szabályok csak akkor jelennek meg a hálózati adapterek esetében, 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 nincsenek NSG-k 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 egy NSG-t a hálózati adapter alhálózatára.

További diagnosztika

  • Ha gyorstesztet szeretne futtatni annak megállapításához, hogy engedélyezett-e a forgalom egy virtuális gép felé vagy onnan, használja az Azure Network Watcher IP-forgalom-ellenőrzési képességét. Az IP-forgalom ellenőrzése jelzi, hogy a forgalom engedélyezett vagy megtagadva van-e. Ha a rendszer megtagadja, az IP-forgalom ellenőrzése megmutatja, hogy melyik biztonsági szabály tiltja le 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éma a következő lehet:
    • A virtuális gép operációs rendszerén belül futó tűzfalszoftver
    • Virtuális berendezésekhez vagy helyszíni forgalomhoz konfigurált útvonalak. Az internetes forgalom kényszerített bújtatással átirányítható a helyszíni hálózatra. Ha virtuális berendezésre vagy helyszínire kényszeríti az alagút internetes forgalmát, előfordulhat, hogy nem tud csatlakozni a virtuális géphez az internetről. Ha szeretné megtudni, hogyan diagnosztizálhatja a virtuális gép forgalomát akadályozó útvonalproblémák diagnosztizálását, tekintse meg a virtuális gép hálózati forgalomirányítási problémájának diagnosztizálását ismertető témakört.

Következő lépések