Übung: Konfigurieren des Netzwerkzugriffs

Abgeschlossen

In dieser Übung konfigurieren Sie den Zugriff auf die VM, die Sie zuvor in diesem Modul erstellt haben.

Wichtig

Die Sandbox in Microsoft Learn sollte immer noch ausgeführt werden. Falls das Zeitlimit der Sandbox abgelaufen ist, müssen Sie die vorherige Übung wiederholen (Übung: Erstellen eine Azure-VM).

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob die vorhin erstellte VM noch ausgeführt wird:

az vm list


Wenn Sie eine leere Antwort [] erhalten, müssen Sie die erste Übung in diesem Modul erneut durchführen. Wenn das Ergebnis Ihre aktuelle VM und deren Einstellungen auflistet, können Sie fortfahren.

Auf die VM, die Sie erstellt und auf der Sie NGINX installiert haben, kann nicht über das Internet zugegriffen werden. Um dies zu ändern, erstellen Sie eine Netzwerksicherheitsgruppe und lassen eingehenden HTTP-Zugriff an Port 80 zu.

Aufgabe 1: Zugreifen auf Ihren Webserver

In diesem Verfahren rufen Sie die IP-Adresse für Ihre VM ab und versuchen, auf die Homepage Ihres Webservers zuzugreifen.

  1. Führen Sie den folgenden az vm list-ip-addresses-Befehl aus, um die IP-Adresse Ihrer VM abzurufen und das Ergebnis als Bash-Variable zu speichern:

    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. Führen Sie den folgenden curl-Befehl aus, um die Homepage herunterzuladen:

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

    Das --connect-timeout-Argument gibt an, dass für das Herstellen der Verbindung bis zu fünf Sekunden zulässig sein sollen. Nach fünf Sekunden wird eine Fehlermeldung angezeigt, in der steht, dass für die Verbindung ein Timeout aufgetreten ist:

    curl: (28) Connection timed out after 5001 milliseconds
    

    Dies bedeutet, dass innerhalb des Zeitraums für den Timeout nicht auf die VM zugegriffen werden konnte.

  3. Versuchen Sie optional, über einen Browser auf den Webserver zuzugreifen:

    1. Führen Sie den folgenden Befehl aus, um die IP-Adresse Ihrer VM in der Konsole auszugeben:

      echo $IPADDRESS       
      

      Es wird eine IP-Adresse angezeigt, z. B. 23.102.42.235.

    2. Kopieren Sie die angezeigte IP-Adresse in die Zwischenablage.

    3. Öffnen Sie eine neue Browserregisterkarte, und navigieren Sie zu Ihrem Webserver. Nach einigen Augenblicken sehen Sie, dass keine Verbindung hergestellt wird. Wenn Sie warten, bis im Browser ein Timeout auftritt, wird eine Meldung ähnlich der folgenden angezeigt:

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

    4. Lassen Sie diese Browserregisterkarte für spätere Schritte geöffnet.

Aufgabe 2: Auflisten der aktuellen Regeln für die Netzwerksicherheitsgruppe

Auf Ihren Webserver konnte nicht zugegriffen werden. Sehen Sie sich die aktuellen NSG-Regeln an, um den Grund dafür herauszufinden.

  1. Führen Sie den folgenden az network nsg list-Befehl aus, um die Netzwerksicherheitsgruppen aufzulisten, die Ihrer VM zugeordnet sind:

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

    Folgendes wird angezeigt:

    my-vmNSG
    
    
    

    Jeder VM in Azure ist mindestens eine Netzwerksicherheitsgruppe zugeordnet. In diesem Fall hat Azure eine NSG namens my-vmNSG für Sie erstellt.

  2. Führen Sie den folgenden az network nsg rule list-Befehl aus, um die Regeln aufzulisten, die der NSG my-vmNSG zugeordnet sind:

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

    In der Ausgabe wird ein großer Textblock im JSON-Format angezeigt. Im nächsten Schritt führen Sie einen ähnlichen Befehl aus, durch den diese Ausgabe leichter lesbar wird.

  3. Führen Sie den az network nsg rule list-Befehl ein zweites Mal aus. Verwenden Sie dieses Mal das --query-Argument, um nur den Namen, die Priorität, die betroffenen Ports und den Zugriff (Zulassen oder Verweigern) für die einzelnen Regeln abzurufen. Das --output-Argument formatiert die Ausgabe als Tabelle, sodass sie leicht lesbar ist.

    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    
    

    Folgendes wird angezeigt:

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

    Hierbei handelt es sich um die Standardregel default-allow-ssh. Diese Regel lässt eingehende Verbindungen über Port 22 (SSH) zu. SSH (Secure Shell) ist ein Protokoll, das unter Linux verwendet wird, um Administratoren Remotezugriff auf das System zu ermöglichen. Die Priorität dieser Regel ist 1000. Die Reihenfolge der Verarbeitung von Regeln richtet sich nach deren Priorität. Regeln mit niedrigeren Zahlen werden vor Regeln mit höheren Zahlen verarbeitet.

Standardmäßig lässt die NSG einer Linux-VM Netzwerkzugriff nur über Port 22 zu. Dies ermöglicht es Administratoren, auf das System zuzugreifen. Sie müssen auch eingehende Verbindungen über Port 80 zulassen, der den Zugriff über HTTP ermöglicht.

Aufgabe 3: Erstellen der Netzwerksicherheitsregel

In diesem Abschnitt erstellen Sie eine Netzwerksicherheitsregel, die eingehenden Zugriff über Port 80 (HTTP) zulässt.

  1. Führen Sie den folgenden az network nsg rule create-Befehl aus, um eine Regel namens allow-http zu erstellen, die eingehenden Zugriff über Port 80 zulässt:

    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    
    

    Zu Lernzwecken legen Sie hierbei als Priorität 100 fest. In diesem Fall spielt die Priorität keine Rolle. Sie müssen sie nur bei überlappenden Portbereichen beachten.

  2. Führen Sie az network nsg rule list aus, um die aktualisierte Liste der Regeln anzuzeigen und die Konfiguration zu überprüfen:

    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    
    

    Es wird die Regel default-allow-ssh sowie Ihre neue Regel allow-http angezeigt:

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

Aufgabe 4: Erneutes Zugreifen auf Ihren Webserver

Versuchen Sie nach dem Konfigurieren des Netzwerkzugriffs über Port 80 nun ein weiteres Mal, auf den Webserver zuzugreifen.

Hinweis

Nachdem Sie die NSG aktualisiert haben, kann es einige Zeit dauern, bevor die aktualisierten Regeln angewandt werden. Wiederholen Sie den nächsten Schritt, mit Pausen zwischen den Versuchen, bis Sie die gewünschten Ergebnisse erhalten.

  1. Führen Sie den curl-Befehl aus, den Sie zuvor bereits ausgeführt haben:

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

    Folgendes wird angezeigt:

    <html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>
    
  2. Aktualisieren Sie optional die Browserregisterkarte, die auf Ihren Webserver verweist. Folgendes wird angezeigt:

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

Gut gemacht. In der Praxis können Sie eine eigenständige Netzwerksicherheitsgruppe mit den von Ihnen benötigten Regeln für den eingehenden und ausgehenden Netzwerkzugriff erstellen. Wenn Sie über mehrere VMs verfügen, die denselben Zweck erfüllen, können Sie diese NSG bei ihrer Erstellung jeder dieser VMs zuweisen. Mit dieser Technik können Sie den Netzwerkzugriff für mehrere VMs über eine einzige zentrale Gruppe von Regeln steuern.

Bereinigung

Die Sandbox bereinigt Ihre Ressourcen automatisch, wenn Sie dieses Modul abgeschlossen haben.

Wenn Sie in Ihrem eigenen Abonnement arbeiten, sollten Sie am Ende eines Projekts prüfen, ob Sie die Ressourcen, die Sie erstellt haben, noch benötigen. Ressourcen, die Sie weiterhin ausführen, können Sie Geld kosten. Sie können entweder einzelne Ressourcen oder aber die Ressourcengruppe löschen, um den gesamten Ressourcensatz zu entfernen.