Mit RDP und SSH über öffentliche IPs zu Azure-VMs verbinden

    Remotedesktop-VerbindungZu Test­zwecken ist manch­mal nötig, auf eine Azure-VM über das Inter­net zuzu­greifen. Zu diesem Zweck kann man ihnen öffent­liche IP-Adressen zu­weisen. RDP erlaubt dann die Fern­steuerung von Windows-Maschinen, SSH von Linux-VMs. Fol­gende An­leitung zeigt, wie man das Netz­werk und die Clients dafür kon­figuriert.

    Die Testumgebung zur Demon­stration des Remote-Zugriffs benötigt zwei virtuelle Maschinen auf Azure, eine mit Windows, die andere mit Linux. Als lokale Workstation dient ein Windows-PC.

    Windows-VM mit Nutzername und Passwort

    Zum Erstellen der ersten Maschine legen wir unter dem Reiter Basic eine beliebige Ressource Group, die Location und einen VM-Name fest. Als Image dient ein Windows Server 2019 Datacenter. Nach Eingabe der Zugangs­daten folgt im Networking-Bereich das Bereit­stellen eines neuen Interfaces mit dem virtuellen Netz und Subnetz.

    Da die Verbindung später von außerhalb des virtuellen Netzwerks kommt, braucht man zusätzlich eine öffentliche IP-Adresse.

    Die Network Security Group (NSG) wirkt als externe Firewall für die VM. In der standard­mäßigen Konfiguration blockiert sie alle Verbindungen, die nicht ihre Quelle in demselben virtuellen Netzwerk oder im Load Balancer haben.

    Konfiguration des Network-Interface für die Windows-VM, um RDP zu erlauben.

    Für eine RDP-Verbindung muss jedoch dessen Standard-Port freigelegt sein. Die benötigte Regel fügt man durch Auswahl der entsprechenden Option unter Allow Selected Ports hinzu.

    Linux-VM mit Public SSH-Key

    Der zweite Rechner verwendet ein Linux wie etwa Red Hat Enterprise Linux 7.6 und den Authentifi­kationstyp SSH Public Key. Es besteht auch die Möglichkeit, ein normales Konto mit Name und Passwort zu erstellen, die Public-Key-Variante ist jedoch sicherer.

    Hierfür ist ein Nutzername sowie ein Private- und Public-Key-Paar vonnöten. Kurzgefasst ist der Public Key ein öffentlich zugäng­licher Schlüssel zur Chiffrierung von Daten. Die Generierung der Keys erfolgt unter Windows über ein Tool wie PuttyGen.

    Für den späteren Verbindungs­aufbau wird ein SSH-Client wie Putty benötigt. Aktuelle Versionen von Windows 10 sind jedoch auch mit einem integrierten Client ausgestattet. Das Starten von PuttyGen und ein anschließendes Betätigen des Generate-Knopfes erzeugt das benötigte Schlüsselpaar. Der öffentliche Schlüssel im oberen Feld wird direkt in das Portal kopiert.

    Der mit PuttyGen erzeugte öffentliche Schlüssel wird in die Konfiguration der Azure-VM übernommen.

    Für eine erweiterte Sicherheit kann man eine Passphrase angeben. Für die Verwendung mit Putty sichert man den privaten Schlüssel über den Save-Button in einer PPK-Datei.

    Der in Windows integrierte Client benötigt den Schlüssel dagegen im PEM-Format. Dieser lässt sich im oberen Reiter Conversion als OpenSSH Key exportieren und mit der Endung .pem abspeichern. Vor der Bereit­stellung ist schließlich noch der Standard-SSH-Port im Networking-Abschnitt freizugeben.

    RDP Verbindung erstellen

    Die für eine Remotedesktop-Verbindung  erforderlichen Dateien sind auf der Übersichts­seite über den Button Connect verfügbar. Sie existieren in den drei Varianten private IP, öffentliche IP und DNS Label. Die zwei Letzteren sind nur nach Erstellung einer öffentlichen Adresse und, wie weiter unten angeführt, eines DNS-Eintrags vorhanden.

    Die Möglichkeit zur Kommunikation mit dem virtuellen Netzwerk und dem Internet stellt das Netzwerk-Interface bereit. Dieses und weitere Informationen wie die NSG kann man im Networking Tab einsehen.

    Bei den ein­kommenden Regeln ist schließlich auch jene für RDP ersichtlich. Verbindungen über TCP aus allen Quellen werden auf dem Standard-RDP-Port zugelassen. Der PowerShell-Befehl Test-NetConnection kann dies prüfen, indem man als Computername die öffentliche IP-Adresse spezifiziert und als Port 3389 auswählt.

    Test-NetConnection -ComputerName <IP oder DNS Label> -Port 3389

    Ein Klick auf die öffentliche Adresse führt zur entsprechenden PIP-Ressource, die im Tab Configuration weitere Einstellungen zeigt. Standard­mäßig ist die IP-Adresse dynamisch eingestellt.

    Konfiguration einer festen IP-Adresse für die Azure-VM

    Dies hat zur Folge, dass bei jedem Stoppen und Starten der VM eine neue zufällige IP vergeben wird. Entsprechend müsste man nach einem Neustart ein neues RDP-File mit aktueller Adresse herunter­laden.

    Abhilfe schafft das Umstellen auf eine statische IP oder auch das Einstellen eines DNS-Labels. Letzteres ergänzt den von Azure bereit­gestellten DNS-Server um einen Eintrag, der immer auf die aktuelle Adresse auflöst.

    Um dies zu testen, füge man den Eintrag an und lade anschließend die IP- und DNS-Variante herunter, mit sprechenden Dateinamen zur Unterscheidung der beiden. Das Ausführen sollte nach Eingabe der Zugangs­daten bei jeder der zwei Varianten in einer erfolgreichen Verbindung resultieren.

    Stoppt man die Maschine, dann geht die Adresse verloren, was eine entsprechende Warnung auch ankündigt. Zudem ist in der PIP das Adressfeld leer und nach dem Neustart mit einem anderen Wert besetzt. Das Herstellen einer Verbindung schlägt nun über die IP fehl, die DNS-Variante hingegen funktioniert noch einwandfrei.

    Alternativ zum Portal erhält man die RDP-Datei mit dem Befehl Get-AzRemoteDesktopFile im AzModul über die PowerShell. Das Pendant im AzureRm-Modul heißt Get-AzureRmRemoteDesktopFile.

    Get-AzRemoteDesktopFile -ResourceGroupName <RGroup> -Name <VM> -LocalPath <Pfad>\<DateiName>.rdp

    Eine weitere Alternative wäre, mstc.exe direkt aufzurufen, und die Adresse oder den DNS-Namen der Maschine einzutragen.

    SSH Verbindung erstellen

    Nach dem Start von Putty trägt man als Host den DNS-Namen oder die öffentliche IP der Maschine ein, welche auf gewohntem Weg in der Übersicht der VM abzulesen sind. Die private Schlüssel­datei wird in der Konfiguration unter dem Zweig SSH => Auth angegeben.

    Private Key mittels PPK-Datei an die Konfiguration der SSH-Sitzung zuweisen

    Ein Klick auf Open öffnet anschließend die Verbindung und fragt bei angegebener Passphrase nach derselben.

    Unter Windows 10 kann man alternativ den eingebauten SSH-Client über die Eingabe­auf­forderung starten. Nach dem SSH-Befehl folgt die Eingabe des Admins und die IP bzw. das DNS-Labels der Maschine, voneinander getrennt durch ein @-Zeichen. Der Pfad zum PEM-Zertifikat mit enthaltenem Schlüssel wird über den Parameter -i hinzugefügt.

    ssh <Admin>@<IP oder DNS-Name>  -i <Pfad zum PEM-Zertifikat>

    Integrierten SSH-Client von Windows 10 mit Angabe eines Zertifikats starten.

    Erstellt man eine Linux-VM mit einfachen Zugangsdaten und Passwort, dann kann man sich über die gleichen Schritte verbinden. Lediglich das Erstellen und die Angabe der Schlüsselpaare entfallen.

    Keine Kommentare