Remote-Desktop Zugriff von außerhalb in die Virtuelle Maschine über eine SSH verschlüsselung

Jawad1231

Lt. Junior Grade
Registriert
Aug. 2017
Beiträge
370
Hallo,

wie der Titel schon sagt, möchte ich eine verschlüsselte/getunnelte Verbindung zu meiner Virtuellen Maschine haben.

Es gibt einfachere Alternativen, aber es muss über Remote-Desktop laufen.

Ich habe 4 Dinge am lokalen Rechner laufen: Putty, freeSSHd, Domain Client und die Virtuelle Maschine, welche auf Hyper-V installiert ist .

1. Ich habe mir eine Kostenlose Domain zugelegt, welche ich dann im Router hinzugefügt habe, der Client läuft im Hintergrund.(Dyndns)

2. Ich habe der Virtuellen Maschine eine Statische IP-Adresse zugeordnet.

3. Ich habe mir Putty (SSH-Client)heruntergeladen und es konfiguriert

4. Ich habe mir freeSSHd(SSH-Server) heruntergeladen und es konfiguert


Das alles läuft auf einen Lokalen Rechner, auf welchen auch die Virtuelle Maschine installiert ist.

Leider schlägt jedes mal die Remote-Desktop Verbindung von Außerhalb fehl.Leider scheint irgendwo ein Fehler zu existieren, deswegen füge ich einfach mal die Bilder mit den Daten, vielleicht entdeckt ihr ja den Fehler:jumpin:
V1.png
V2.png
V3.png
V4.png
V5.png
V6.png
 
freesshd ist nicht notwendig, windows hat inzwischen einen openssh server dabei. wenn der läuft, kannst von einem anderen system aus ssh -L 1234:127.0.0.1:3389 user@windows_host verwenden, um einen tunnel aufzubauen, der dir lokal auf port 1234 den rdp-server auf dem windows-rechner bereit stellt. deinen rdp-client lässt du dann auf 127.0.0.1:1234 verbinden - ssh reicht das zum windows recher auf dessen 127.0.0.1:3389 weiter.

damit das ganze auch von ausserhalb funktioniert, musst du im router ein port-forwarding auf port 22 zum windows-rechner einrichten.

es wäre sehr zu empehlen mit keys zu arbeiten und die password-authentifizierung zu deaktivieren.
 
  • Gefällt mir
Reaktionen: Jawad1231
Das ist aber kein Leserartikel ;)

Verstehe ich das richtig:
  • Du hast einen PC zuhause
  • Auf dem läuft ein virtueller PC auf den du dich per RDP verbinden möchtest
  • Um das ganze nicht direkt nach außen zu öffnen, willst du das über SSH tunneln
Hast du denn bisher strukturiert getestet?

Welche Art virtuellen Netzwerkcontroller hast du gewählt? Lässt die Firewall auf dem Port RDP Anfragen durch? Kannst du dich vom PC normal über RDP auf den virtuellen PC verbinden?

Wenn das funktioniert, dann kümmere dich um den Tunnel und teste den erstmal aus dem internen Netzwerk (z.B. von deinem Host PC auf dem du den Tunnel aufbaust).

Erst wenn das funktioniert schaust du nach Port Forwarding um vom Internet aus zuzugreifen.
 
  • Gefällt mir
Reaktionen: Jawad1231
0x8100 schrieb:
damit das ganze auch von ausserhalb funktioniert, musst du im router ein port-forwarding auf port 22 zum windows-rechner einrichten
Damit hätte ich Bauchschmerzen.
Wäre Wireguard oder soetwas wie Tailscale nicht die bessere Wahl?
 
  • Gefällt mir
Reaktionen: Jawad1231
cloudman schrieb:
Damit hätte ich Bauchschmerzen.
Wäre Wireguard oder soetwas wie Tailscale nicht die bessere Wahl?
Wieso sollte man wireguard mehr trauen als dem battle proofed openssh mit deaktivierter passwort auth?
 
  • Gefällt mir
Reaktionen: 0x8100 und Jawad1231
foo_1337 schrieb:
Wieso sollte man wireguard mehr trauen als dem battle proofed openssh mit deaktivierter passwort auth?
Da hast du vermutlich recht.

Kommt mir nur relativ umständlich vor wenn es um RDP geht.

Für mein privates Netzwerk nutze ich jetzt Tailscale auch wenn dafür ein Handshake mit ihrem Server notwendig ist dafür kann ich auf Port forwarding verzichten
 
  • Gefällt mir
Reaktionen: Jawad1231
Renegade334 schrieb:
Das ist aber kein Leserartikel ;)

Verstehe ich das richtig:
  • Du hast einen PC zuhause
  • Auf dem läuft ein virtueller PC auf den du dich per RDP verbinden möchtest
  • Um das ganze nicht direkt nach außen zu öffnen, willst du das über SSH tunneln
Hast du denn bisher strukturiert getestet?

Welche Art virtuellen Netzwerkcontroller hast du gewählt? Lässt die Firewall auf dem Port RDP Anfragen durch? Kannst du dich vom PC normal über RDP auf den virtuellen PC verbinden?

Wenn das funktioniert, dann kümmere dich um den Tunnel und teste den erstmal aus dem internen Netzwerk (z.B. von deinem Host PC auf dem du den Tunnel aufbaust).

Erst wenn das funktioniert schaust du nach Port Forwarding um vom Internet aus zuzugreifen.
Ich habe einen PC Zuhause auf dem habe ich Hyper-V installiert und auf Hyper-V eine Virtuelle Maschine erstellt. Genau.

Ich möchte eine Verbindung nach außen erschaffen, sagen wir z.B zu meinem Schulnetz, dass ich von der Schule aus eine Verbindung zu der Virtuellen Maschiene aufbaue, welche sich auf meinem Lokalen Rechner im Heimnetz befindet.

Ich habe keine Ahnung inwiefern ich was testen soll, sowas habe ich noch nie getan

Im Lokalen Netzwerk selbst bin ich in der Lage, mich von einem Pc auf dem anderen zu verbinden und umgekehrt, das stellt kein Problem dar.

0x8100 schrieb:
freesshd ist nicht notwendig, windows hat inzwischen einen openssh server dabei. wenn der läuft, kannst von einem anderen system aus ssh -L 1234:127.0.0.1:3389 user@windows_host verwenden, um einen tunnel aufzubauen, der dir lokal auf port 1234 den rdp-server auf dem windows-rechner bereit stellt. deinen rdp-client lässt du dann auf 127.0.0.1:1234 verbinden - ssh reicht das zum windows recher auf dessen 127.0.0.1:3389 weiter.

damit das ganze auch von ausserhalb funktioniert, musst du im router ein port-forwarding auf port 22 zum windows-rechner einrichten.

es wäre sehr zu empehlen mit keys zu arbeiten und die password-authentifizierung zu deaktivieren.

Ich dachte wenn ich freeSSHd verwende und Putty, muss ich im Router kein Port Forwarding einrichten.

Nun gut, ähm das heißt also ich deinstalliere freeSShd . Ähm das Problem ist aber, dass der Zugriff der Schulrechner beschränkt ist und darauf nur Remote-Desktop verfügbar ist. Ist deine Idee damit trotzdem Realisierbar? Ich kann auf dem Schulrechnern nichts konfigurieren im Sinne von Systemsteuerung oder Einstellungen. Also ich kann auf den Schulrechnern nur Remotedesktop öffnen und die Werte eingeben, mehr ist nicht möglich.

Ich würde das Port-Forwarding erst am Ende einrichten, weil jede Sekunde in der das Port Forwarding offen ist, kann sich jemand reinhacken, deswegen möchte ich es so schnell wie möglich sichern
 
Jawad1231 schrieb:
Ich dachte wenn ich freeSSHd verwende und Putty, muss ich im Router kein Port Forwarding einrichten.
das sind zwei verschiedene sachen, das portforwardng brauchst du praktisch immer, wenn du einen service in einem heimnetzwerk von aussen erreichen willst.

da windows inzwischen einen openssh server als auch client mitbringt, brauchst du du hier kein extra putty oder freesshd.
 
  • Gefällt mir
Reaktionen: Jawad1231
Jawad1231 schrieb:
Ich dachte wenn ich freeSSHd verwende und Putty, muss ich im Router kein Port Forwarding einrichten.

Nun gut, ähm das heißt also ich deinstalliere freeSShd . Ähm das Problem ist aber, dass der Zugriff der Schulrechner beschränkt ist und darauf nur Remote-Desktop verfügbar ist. Ist deine Idee damit trotzdem Realisierbar? Ich kann auf dem Schulrechnern nichts konfigurieren im Sinne von Systemsteuerung oder Einstellungen. Also ich kann auf den Schulrechnern nur Remotedesktop öffnen und die Werte eingeben, mehr ist nicht möglich.
Port Forwarding brauchst du immer. Sonst kommst du nicht von außen an deinem Router vorbei.
In deinem Fall würdest du am Router z.B. Port 12345 auf Port 22 deines PCs umlenken um dann von der Schule aus auf Port 12345 deines DynDNS einen Tunnel aufzubauen.

Das wird aber vermutlich daran scheitern, dass du vom Schulrechner aus keinen Tunnel erstellen kannst.

Den RDP Port direkt freizugeben würde ich übrigens nicht empfehlen. Einmal aus Sicherheitsgründen und zweitens, weil die Schule vermutlich alle Zugriffe über einen Proxy laufen lässt und das RDP Protokoll nicht zulassen wird.

Eine alternative wäre ein RDP Gatewayserver, aber für eine Bastelei so einen ohne Windows Domain einzurichten (was nicht offiziell supported ist) muss man wirklich sehr viel basteln.
 
Renegade334 schrieb:
Port Forwarding brauchst du immer. Sonst kommst du nicht von außen an deinem Router vorbei.
In deinem Fall würdest du am Router z.B. Port 12345 auf Port 22 deines PCs umlenken um dann von der Schule aus auf Port 12345 deines DynDNS einen Tunnel aufzubauen.

Das wird aber vermutlich daran scheitern, dass du vom Schulrechner aus keinen Tunnel erstellen kannst.

Den RDP Port direkt freizugeben würde ich übrigens nicht empfehlen. Einmal aus Sicherheitsgründen und zweitens, weil die Schule vermutlich alle Zugriffe über einen Proxy laufen lässt und das RDP Protokoll nicht zulassen wird.

Eine alternative wäre ein RDP Gatewayserver, aber für eine Bastelei so einen ohne Windows Domain einzurichten (was nicht offiziell supported ist) muss man wirklich sehr viel basteln.
Also ist eine Verschlüsselung nicht realisierbar, aufgrund der Limitationen der Schulrechner und das einzige, was möglich wäre, ist eine unverschlüsselten Remote-Desktop Port zu öffnen, damit man Zugang von Außerhalb hätte?😭
 
Jawad1231 schrieb:
auf dem client musst du eigentlich nichts installieren (man kann sonst auch putty portable verwenden), ich glaube der ssh-client ist inzwischen standardmässig drauf. wenn das aber nicht dein client ist und der vor allem in der schule steht, dann hol dir die erlaubnis der verantwortlichen ein.
 
0x8100 schrieb:
auf dem client musst du eigentlich nichts installieren (man kann sonst auch putty portable verwenden), ich glaube der ssh-client ist inzwischen standardmässig drauf. wenn das aber nicht dein client ist und der vor allem in der schule steht, dann hol dir die erlaubnis der verantwortlichen ein.
Hab schon eine Absage erhalten, als ich angesprochen habe, warum die Computer so extrem limitiert sind und ich mehr Zugriffsrechte brauche, um es besser umzusetzen. Der Lehrer meinte:"Du machst das schon auch so".

Der Arbeitsauftrag lautet:"die daheim betriebene VM muss erreichbar sein von außen über die öffentliche IPv4 Adresse bzw. Dnydns-Domain".

und da ich nicht wirklich Technisch visiert bin, habe ich Mittlerweile über 40 Stunden verbracht um mich in dem Thema einzulesen Dinge auszuprobieren, Theoretisches Wissen mitzunehmen und jetzt merke ich selber gerade, wie blöd ich doch war, soviel Energie reingesteckt zu haben. Am Ende scheitert es wegen den Schulrechner. Mir kam es schon komisch vor, dass in der Aufgabenstellung nichts zur Sicherung bzw Verschlüsselung der Verbindunge genannt wurde
 
Jawad1231 schrieb:
Der Lehrer meinte:"Du machst das schon auch so"
wenn du die rdp-geschichte generell machen, aber nichts installieren darfst und der openssh-client von windows nicht verfügbar ist, dann kannst du auch putty verwenden:
 

Anhänge

  • putty.png
    putty.png
    61,2 KB · Aufrufe: 228
  • Gefällt mir
Reaktionen: Jawad1231
0x8100 schrieb:
wenn du die rdp-geschichte generell machen, aber nichts installieren darfst und der openssh-client von windows nicht verfügbar ist, dann kannst du auch putty verwenden:
Dann brauche ich wohl doch den freeSSHd:evillol:
 
0x8100 schrieb:
auf dem client musst du eigentlich nichts installieren (man kann sonst auch putty portable verwenden), ich glaube der ssh-client ist inzwischen standardmässig drauf. wenn das aber nicht dein client ist und der vor allem in der schule steht, dann hol dir die erlaubnis der verantwortlichen ein.
Theoretisch reicht sogar die plink.exe als Standalone Tool.

Aber das setzt voraus, dass man das Tool vom Schulrechner aus starten kann und der Proxy einen nicht daran hindert sich per SSH zu verbinden.

FALLS das doch geht, dann kannst du folgendes machen:
  1. Am Router Port Forwarding auf SSH Server
  2. Am Schulrechner SSH Verbindung nach Hause aufbauen und Tunnel für lokalen Port X weiterleiten auf virtueller Server Port 3389
  3. Am Schulrechner per RDP verbinden auf localhost:X
//edit:
Dann brauche ich wohl doch den freeSSHd:evillol:
Den SSH Service musst du entweder auf dem virtuellen Server oder dem physischem einrichten. Aber da reicht das in Windows integrierte OpenSSH.
 
  • Gefällt mir
Reaktionen: Jawad1231 und 0x8100
0x8100 schrieb:
wenn du die rdp-geschichte generell machen, aber nichts installieren darfst und der openssh-client von windows nicht verfügbar ist, dann kannst du auch putty verwenden:
Dann kann ich auch über Puttygen einen Privaten Key generieren und diesen hier einfügen:
v55.png


Das heißt, wenn ich mich dann mit Remote-Desktop von außerhalb verbinde, muss ich zur Authentifizierung diesen riesigen Privaten Key als Passwort angeben oder?
 
als datei, ja. also nicht den schlüssel selbst dort eingeben. bedenke, dass putty sein eigenes format für die schlüsseldateien hat (*.ppk) und die meisten anderen tools die im openssh-format haben wollen. ob freesshd auch das putty-format kann, weiss ich jetzt nicht. man kann aber beide formate ineinander umwandeln. puttygen hat eine export-funktion.
 
Wie wäre es denn mit ApacheGuacamole? Damit könntest du deine VM praktisch von jeden browser aus Steuern. Falls das mit Hyper V überhaupt möglich ist.
 
niteaholic schrieb:
Wie wäre es denn mit ApacheGuacamole? Damit könntest du deine VM praktisch von jeden browser aus Steuern. Falls das mit Hyper V überhaupt möglich ist.
Danke für den Vorschlag, aber es muss Remote Desktop sein.:)

I
0x8100 schrieb:
als datei, ja. also nicht den schlüssel selbst dort eingeben. bedenke, dass putty sein eigenes format für die schlüsseldateien hat (*.ppk) und die meisten anderen tools die im openssh-format haben wollen. ob freesshd auch das putty-format kann, weiss ich jetzt nicht. man kann aber beide formate ineinander umwandeln. puttygen hat eine export-funktion.
Okey danke. Aber so wirklich habe jetzt nicht verstanden, was genau ich auf dem openSSH einrichten soll. Im Putty war es ja nur die Lokale IP und der Remotedesktop Port:3389. Wenn ich es richtig verstanden habe, soll ich lade mir openssh herunterladen, dort (lokal)Port-Forwarding auf 22 einstellen und im Router selbst auch auf 22 und das wars dann?
 
  • private/public keyfiles erstellen mit puttygen, ppk-dateien ins openssh-format exportieren
  • auf dem windows-pc, auf den zugegriffen werden soll, freesshd oder openssh installieren, diese so konfigurieren, dass sie nur logins mit den eben erzeugten key akzeptieren. der public-key muss als authorized-key konfiguriert werden
  • sicherstellen, dass port 22 auf diesem pc offen ist, stichwort firewall
  • auf dem router port-forwarding für port 22 auf den windows-pc einrichten

  • auf dem client ssh -i /pfad/zu/private_key -L 1234:127.0.0.1:3389 user@foo.dyndns.net oder putty verwenden, um einen tunnel zu erstellen, der port 3389 auf dem windows-pc auf der lokalen maschine 1234 verfügbar macht - dabei den private key vom anfang verwenden (putty -> ppk, openssh -> exportierter key)
  • rdp auf dem client starten und auf 127.0.0.1:1234 verbinden, ssh leitet das zum windows-pc weiter.
 
  • Gefällt mir
Reaktionen: Jawad1231
Zurück
Oben