Übung: Konfigurieren des Netzwerkzugriffs
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.
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)"
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.
Versuchen Sie optional, über einen Browser auf den Webserver zuzugreifen:
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.
Kopieren Sie die angezeigte IP-Adresse in die Zwischenablage.
Ö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:
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.
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.
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.
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.
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.
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.
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>
Aktualisieren Sie optional die Browserregisterkarte, die auf Ihren Webserver verweist. Folgendes wird angezeigt:
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.