Gyakorlat – Hálózati hozzáférés konfigurálása

Befejeződött

Ebben a gyakorlatban konfigurálja a modulban korábban létrehozott virtuális gép (VM) elérését.

Fontos

A Microsoft Learn tesztkörnyezetnek továbbra is futnia kell. Ha a tesztkörnyezet túllépte az időkorlátot, újra kell végeznie az előző gyakorlatot (Gyakorlat – Azure-beli virtuális gép létrehozása).

Ha ellenőrizni szeretné, hogy a korábban létrehozott virtuális gép továbbra is fut-e, használja a következő parancsot:

az vm list


Ha üres választ []kap, ismét be kell fejeznie a modul első gyakorlatát. Ha az eredmény felsorolja az aktuális virtuális gépet és annak beállításait, folytathatja.

Az Nginx által létrehozott és telepített virtuális gép jelenleg nem érhető el az internetről. Létre fog hozni egy hálózati biztonsági csoportot, amely úgy változik, hogy engedélyezi a bejövő HTTP-hozzáférést a 80-as porton.

1. feladat: A webkiszolgáló elérése

Ebben az eljárásban beszerzi a virtuális gép IP-címét, és megkísérli elérni a webkiszolgáló kezdőlapját.

  1. Futtassa a következő az vm list-ip-addresses parancsot a virtuális gép IP-címének lekéréséhez, az eredményt pedig tárolja Bash-változóként:

    IPADDRESS="$(az vm list-ip-addresses \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --name my-vm \
      --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
      --output tsv)"    
    
  2. A kezdőlap letöltéséhez futtassa a következő curl parancsot:

    curl --connect-timeout 5 http://$IPADDRESS
    

    A --connect-timeout argumentum legfeljebb öt másodpercet engedélyez a kapcsolat létesítéséhez. Öt másodperc elteltével hibaüzenet jelenik meg, amely szerint a kapcsolat esetében időtúllépés történt:

    curl: (28) Connection timed out after 5001 milliseconds
    

    Ez az üzenet azt jelenti, hogy a virtuális gép nem volt elérhető az időkorláton belül.

  3. Ha szeretné, próbálja meg egy böngészőből elérni a webkiszolgálót:

    1. Futtassa a következőt a virtuális gép IP-címének a konzolon való megjelenítéséhez:

      echo $IPADDRESS       
      

      Megjelenik egy IP-cím (például 23.102.42.235).

    2. Másolja a vágólapra a megjelenő IP-címet.

    3. Nyisson meg egy új böngészőlapot, és lépjen a webkiszolgálóra. Néhány pillanat múlva látni fogja, hogy a kapcsolat nem jön létre. Ha megvárja a böngésző időtúllépését, a következőhöz hasonlót fog látni:

      Screenshot of a web browser showing an error message that says the connection timed out.

    4. Hagyja megnyitva ezt a böngészőlapot a későbbi műveletekhez.

2. feladat: Az aktuális hálózati biztonsági csoport szabályainak listázása

A webkiszolgáló nem volt elérhető. Hogy megtudjuk ennek okát, vizsgáljuk meg az aktuális NSG-szabályokat.

  1. Futtassa a következő az network nsg list parancsot a virtuális géphez társított hálózati biztonsági csoportok listázásához:

    az network nsg list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --query '[].name' \
      --output tsv    
    

    Ezt fogja látni:

    my-vmNSG
    
    
    

    Az Azure-ban lévő összes virtuális gép legalább egy hálózati biztonsági csoporthoz társítva van. Ebben az esetben az Azure a my-vmNSG nevű NSG-t hozta létre.

  2. Futtassa a következő az network nsg rule list parancsot a my-vmNSG nevű NSG-hez társított szabályok listázásához:

    az network nsg rule list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG    
    

    A kimenetben egy nagy méretű, JSON formátumú szövegblokk látható. A következő lépésben egy hasonló parancsot futtat, amellyel ez a kimenet könnyebben olvasható lesz.

  3. Futtassa ismét az az network nsg rule list parancsot. Ezúttal csak az egyes szabályok nevét, prioritását, érintett portjait és hozzáférését (Engedélyezés vagy Megtagadás) kérje le a --query argumentummal. Az --output argumentum táblázatként formázza a kimenetet, így könnyebben olvasható.

    az network nsg rule list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG \
      --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \
      --output table    
    

    Ezt fogja látni:

    Name              Priority    Port    Access
    -----------------  ----------  ------  --------
    default-allow-ssh  1000        22      Allow
    
    

    Az alapértelmezett default-allow-ssh szabályt látja. Ez a szabály a 22-es (SSH-) porton engedélyezi a bejövő kapcsolatokat. Az SSH (Secure Shell) egy Linux rendszeren használt protokoll, amellyel a rendszergazdák távolról érhetik el a rendszert. Ezen szabály prioritása 1000. A szabályok feldolgozása prioritási sorrendben történik. Az alacsonyabb sorszámúak feldolgozása a magasabb sorszámúak előtt történik.

Alapértelmezés szerint a Linux rendszerű virtuális gépek NSG-i csak a 22-es porton engedélyezik a hálózati hozzáférést. Ezáltal a rendszergazdák hozzáférhetnek a rendszerhez. A 80-as porton is engedélyeznie kell a bejövő kapcsolatokat, amely HTTP-n keresztüli hozzáférést tesz lehetővé.

3. feladat: A hálózati biztonsági szabály létrehozása

Itt létrehoz egy hálózati biztonsági szabályt, amely engedélyezi a bejövő hozzáférést a 80-as (HTTP-) porton.

  1. Futtassa a következő az network nsg rule create parancsot egy allow-http nevű szabály létrehozásához, amely engedélyezi a bejövő hozzáférést a 80-as porton:

    az network nsg rule create \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG \
      --name allow-http \
      --protocol tcp \
      --priority 100 \
      --destination-port-range 80 \
      --access Allow    
    

    Tanulási célból a prioritás értéke legyen 100. Ebben az esetben a prioritás nem fontos. Akkor érdemes figyelembe venni a prioritást, ha átfedésben vannak a porttartományok.

  2. A konfiguráció ellenőrzéséhez futtassa az az network nsg rule list parancsot, hogy megjelenítse a szabályok frissített listáját:

    az network nsg rule list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG \
      --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \
      --output table    
    

    A default-allow-ssh szabályt, valamint az új allow-http szabályt is látni fogja:

    Name              Priority    Port    Access
    -----------------  ----------  ------  --------
    default-allow-ssh  1000        22      Allow
    allow-http          100        80      Allow    
    

4. feladat: A webkiszolgáló ismételt elérése

Most, hogy beállította a hálózati hozzáférést a 80-as porthoz, próbáljon meg másodszor is hozzáférni a webkiszolgálóhoz.

Megjegyzés:

Az NSG frissítése után eltarthat néhány percig, amíg a frissített szabályok propagálása megtörténik. Próbálkozzon újra a következő lépéssel, a kísérletek közötti szünetekkel, amíg meg nem kapja a kívánt eredményeket.

  1. Futtassa a korábban már futtatott curl parancsot:

    curl --connect-timeout 5 http://$IPADDRESS
    

    Ezt fogja látni:

    <html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>
    
  2. Választható lépésként frissítse a webkiszolgálóra mutató böngészőlapot. Ezt fogja látni:

    A screenshot of a web browser showing the home page from the web server. The home page displays a welcome message.

Szép munka. A gyakorlatban létrehozhat egy különálló hálózati biztonsági csoportot, amely a szükséges bejövő és kimenő hálózati hozzáférési szabályokat is tartalmazza. Ha több azonos célt szolgáló virtuális géppel rendelkezik, akkor a létrehozásuk időpontjában hozzárendelheti a kívánt csoportot az egyes virtuális gépekhez. Ez a módszer lehetővé teszi, hogy több virtuális gép hálózati hozzáférését szabályozza egyetlen központi szabálykészlet alapján.

A fölöslegessé vált elemek eltávolítása

A tesztkörnyezet automatikusan törli az erőforrásokat, amikor végzett ezzel a modullal.

Ha a saját előfizetésében dolgozik, érdemes az egyes projektek végén eldöntenie, hogy szüksége lesz-e még a létrehozott erőforrásokra. A futtatásból kilépő erőforrások pénzbe kerülhetnek. Az erőforrásokat törölheti egyesével, vagy az erőforráscsoport törlésével eltávolíthatja a benne lévő összes erőforrást is.