Cvičení – konfigurace síťového přístupu

Dokončeno

V tomto cvičení nakonfigurujete přístup k virtuálnímu počítači, který jste vytvořili dříve v tomto modulu.

Důležité

Sandbox Microsoft Learn by měl být pořád spuštěný. Pokud vypršel časový limit sandboxu, budete muset předchozí cvičení znovu provést (cvičení – vytvoření virtuálního počítače Azure).

Pokud chcete ověřit, jestli je virtuální počítač, který jste vytvořili dříve, stále spuštěný, použijte následující příkaz:

az vm list


Pokud obdržíte prázdnou odpověď [], musíte znovu dokončit první cvičení v tomto modulu. Pokud výsledek zobrazí seznam aktuálního virtuálního počítače a jeho nastavení, můžete pokračovat.

Právě teď není virtuální počítač, na který jste vytvořili a nainstalovali Nginx, přístupný z internetu. Vytvoříte skupinu zabezpečení sítě, která se změní tím, že povolíte příchozí přístup HTTP na portu 80.

Úkol 1: Přístup k webovému serveru

V tomto postupu získáte IP adresu virtuálního počítače a pokusíte se o přístup k domovské stránce webového serveru.

  1. Spuštěním následujícího příkazu az vm list-ip-addresses získejte IP adresu virtuálního počítače a výsledek uložte jako proměnnou Bash:

    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. Spuštěním následujícího příkazu curl stáhněte domovskou stránku:

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

    Argument --connect-timeout slouží k nastavení až 5sekundového časového limitu, při kterém se může připojení vytvořit. Po pěti sekundách se zobrazí chybová zpráva, která uvádí, že časový limit připojení vypršel:

    curl: (28) Connection timed out after 5001 milliseconds
    

    Tato zpráva znamená, že se v daném časovém limitu nepodařilo získat přístup k virtuálnímu počítači.

  3. Volitelně můžete zkusit získat přístup k webovému serveru z prohlížeče:

    1. Spusťte následující příkaz a vytiskněte IP adresu virtuálního počítače na konzolu:

      echo $IPADDRESS       
      

      Uvidíte IP adresu, například 23.102.42.235.

    2. Zobrazenou IP adresu zkopírujte do schránky.

    3. Otevřete novou kartu prohlížeče a přejděte na webový server. Po několika okamžicích uvidíte, že připojení se neuskutečnilo. Pokud počkáte na vypršení časového limitu prohlížeče, zobrazí se zpráva podobná této:

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

    4. Tuto kartu prohlížeče nechte otevřenou na později.

Úkol 2: Výpis aktuálních pravidel skupiny zabezpečení sítě

Váš webový server nebyl přístupný. Abychom zjistili důvod, podíváme se na aktuální pravidla skupiny zabezpečení sítě.

  1. Spuštěním následujícího příkazu az network nsg list zobrazte seznam skupin zabezpečení sítě, které jsou přidružené k vašemu virtuálnímu počítači:

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

    Uvidíte toto:

    my-vmNSG
    
    
    

    Každý virtuální počítač v Azure je přidružen nejméně k jedné skupině zabezpečení sítě. V tomto případě služba Azure za vás vytvořila skupinu zabezpečení sítě s názvem my-vmNSG.

  2. Spuštěním následujícího příkazu az network nsg rule list zobrazte seznam pravidel přidružených ke skupině zabezpečení sítě s názvem my-vmNSG:

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

    Ve výstupu uvidíte velký blok textu ve formátu JSON. V dalším kroku spustíte podobný příkaz, který tento výstup převede do čitelnější podoby.

  3. Spusťte příkaz az network nsg rule list znovu. Tentokrát použijte argument --query, abyste pro každé pravidlo načetli pouze název, prioritu, ovlivněné porty a přístup (Povolit nebo Odepřít). Argument --output zformátuje výstup jako tabulku, která je čitelnější.

    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    
    

    Uvidíte toto:

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

    Uvidíte výchozí pravidlo, default-allow-ssh. Toto pravidlo povolí příchozí připojení přes port 22 (SSH). SSH (Secure Shell) je protokol, který se používá v Linuxu a umožňuje správcům vzdálený přístup k systému. Priorita tohoto pravidla je 1000. Pravidla se zpracovávají v pořadí podle priority, přičemž nižší čísla se zpracovávají dříve než vyšší čísla.

Ve výchozím nastavení skupina zabezpečení sítě virtuálního počítače s Linuxem povoluje síťový přístup pouze na portu 22. To správcům umožňuje přístup k systému. Musíte také povolit příchozí připojení na portu 80, což povolí přístup přes HTTP.

Úkol 3: Vytvoření pravidla zabezpečení sítě

Tady vytvoříte pravidlo zabezpečení sítě, které povolí příchozí přístup na portu 80 (HTTP).

  1. Spuštěním následujícího příkazu az network nsg rule create vytvořte pravidlo s názvem allow-http, které umožní příchozí přístup na portu 80:

    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    
    

    V našem příkladu nastavíme pro studijní účely prioritu 100. V tomto případě na prioritě nezáleží. Prioritu byste museli vzít v úvahu, pokud byste měli překrývající se rozsahy portů.

  2. Pokud chcete ověřit konfiguraci, spusťte příkaz az network nsg rule list a zobrazte aktualizovaný seznam pravidel:

    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    
    

    Uvidíte pravidlo default-allow-ssh i nové pravidlo allow-http:

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

Úkol 4: Znovu přejděte na webový server

Teď, když jste nakonfigurovali síťový přístup na port 80, vyzkoušíme znovu přístup k webovému serveru.

Poznámka:

Po aktualizaci skupiny zabezpečení sítě může chvíli trvat, než se aktualizovaná pravidla rozšíří. Opakujte další krok s pozastavením mezi pokusy, dokud nedostanete požadované výsledky.

  1. Spusťte stejný příkaz curl jako předtím:

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

    Uvidíte toto:

    <html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>
    
  2. Volitelně můžete aktualizovat kartu prohlížeče, která odkazuje na váš webový server. Uvidíte toto:

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

Dobrá práce. V praxi můžete vytvořit samostatnou skupinu zabezpečení sítě, která zahrnuje pravidla příchozího a odchozího síťového přístupu, která potřebujete. Pokud máte více virtuálních počítačů, které slouží ke stejnému účelu, můžete danou skupinu zabezpečení sítě přiřadit k jednotlivým virtuálním počítačům při jejich vytvoření. Tento způsob vám umožní řídit síťový přístup k více virtuálním počítačům pomocí jedné centrální sady pravidel.

Vyčištění

Až tento modul dokončíte, sandbox automaticky vyčistí vámi použité prostředky.

Pokud pracujete s vlastním předplatným, je vhodné vždy na konci projektu zkontrolovat, jestli budete vytvořené prostředky ještě potřebovat. Prostředky, které necháte spuštěné, můžou stát peníze. Prostředky můžete odstraňovat jednotlivě nebo můžete odstranit skupinu prostředků, a odstranit tak celou sadu prostředků najednou.