SSH Forwarding (Portweiterleitung via SSH): Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
(Generell SSH Server @ Windows/Linux/Mac) | (Generell SSH Server @ Windows/Linux/Mac) | ||
Oft ist man gezwungen, z. B. auf [[Proxmox]] zuzugreifen aber aus Sicherheitsgründen wird von einer öffentlichen Portfreigabe abgesehen. Demnach wäre eine Portweiterleitung nur über SSH interessant. Voraussetzung ist hier natürlich, dass SSH öffentlich freigegeben wurde. Dabei muss es nicht einmal direkt der [[Proxmox]]-Server, sondern es kann auch ein Zwischenserver, wie hier in diesem Beispiel erklärt wird, sein. | |||
Ein SSH Forwarding von Client zu Server funktioniert hier im Beispiel wie folgt. | Ein SSH Forwarding von Client zu Server funktioniert hier im Beispiel wie folgt. | ||
Der Client (localhost) möchte einen Port auf dem Server (lokal) öffnen. Hier wird zunächst ein SSH-Tunnel aufgebaut, der den Verkehr entsprechend portiert. | Der Client (localhost) möchte einen Port auf dem Server (lokal) öffnen. Hier wird zunächst ein SSH-Tunnel aufgebaut, der den Verkehr entsprechend portiert. | ||
ssh -N -L 443:localhost:8006 | ssh -N -L 443:localhost:8006 user@beispielserver.de -p 2222 | ||
Hier wird der lokale Port 443 (HTTPS) auf dem am SERVER.DE befindlichen Port 8006 über SSH Port 2222 weitergeleitet. In diesem konkreten Beispiel lässt sich auf den Proxmox-Server zugreifen, ohne den Port nach außen hin öffnen zu müssen. | Hier wird der lokale Port 443 (HTTPS) auf dem am SERVER.DE befindlichen Port 8006 über SSH Port 2222 weitergeleitet. In diesem konkreten Beispiel lässt sich auf den Proxmox-Server zugreifen, ohne den Port nach außen hin öffnen zu müssen. | ||
Sollte ein Zwischenserver vorhanden sein, der vor Proxmox agiert, sodass Proxmox keinen SSH-Port öffentlich geöffnet haben muss, muss zudem sichergestellt sein, dass der Zwischenserver mit dem gleichen SSH Forwarding versehen ist, sodass am Zwischenserver der Port 8006 auch zum Proxmox-Server auf Port 8006 führt. Dieser ist mit | Sollte ein Zwischenserver vorhanden sein, der vor Proxmox agiert, sodass Proxmox keinen SSH-Port öffentlich geöffnet haben muss, muss zudem sichergestellt sein, dass der Zwischenserver mit dem gleichen SSH Forwarding versehen ist, sodass am Zwischenserver der Port 8006 auch zum Proxmox-Server auf Port 8006 führt. Dieser ist mit | ||
ssh -N -L 8006:localhost:8006 | ssh -N -L 8006:localhost:8006 sshuser@172.16.99.10 -p 22 | ||
einzureichen. In diesem konkreten Beispiel wird eben der Port 8006 auf dem Zwischenserver auf die IP und ebenfalls Port 8006 weitergeleitet. | einzureichen. In diesem konkreten Beispiel wird eben der Port 8006 auf dem Zwischenserver auf die IP und ebenfalls Port 8006 weitergeleitet. | ||
Um diesen SSH Forwarding am Zwischenserver nicht immer aufmachen zu müssen, kann alternativ eine screen-Session mit genau dieser Portweiterleitung geschaffen werden oder idealer, die SSH-Verbindung im Hintergrund auszuführen mit | Um diesen SSH Forwarding am Zwischenserver nicht immer aufmachen zu müssen, kann alternativ eine [[screen]]-Session mit genau dieser Portweiterleitung geschaffen werden oder idealer, die SSH-Verbindung im Hintergrund auszuführen mit | ||
ssh -f -N -L 8006:localhost:8006 | ssh '''-f''' -N -L 8006:localhost:8006 sshuser@172.16.99.10 -p 22 | ||
Auf dem Client kann auf die gleiche Weise agiert werden. | |||
Hinweis: Beim Standard-Port 22 kann diese Port-Angabe auch weggelassen werden. | Hinweis: Beim Standard-Port 22 kann diese Port-Angabe auch weggelassen werden. | ||
Zeile 20: | Zeile 24: | ||
-N: kein einloggen erforderlich. | -N: kein einloggen erforderlich. | ||
Demzufolge kann auf dem Client mit folgender Adresse nun entfernt der Port 8006 aufgerufen werden: | Demzufolge kann auf dem Client mit folgender Adresse nun entfernt der Port 8006 aufgerufen werden: |
Aktuelle Version vom 17. Mai 2023, 16:30 Uhr
(Generell SSH Server @ Windows/Linux/Mac)
Oft ist man gezwungen, z. B. auf Proxmox zuzugreifen aber aus Sicherheitsgründen wird von einer öffentlichen Portfreigabe abgesehen. Demnach wäre eine Portweiterleitung nur über SSH interessant. Voraussetzung ist hier natürlich, dass SSH öffentlich freigegeben wurde. Dabei muss es nicht einmal direkt der Proxmox-Server, sondern es kann auch ein Zwischenserver, wie hier in diesem Beispiel erklärt wird, sein.
Ein SSH Forwarding von Client zu Server funktioniert hier im Beispiel wie folgt.
Der Client (localhost) möchte einen Port auf dem Server (lokal) öffnen. Hier wird zunächst ein SSH-Tunnel aufgebaut, der den Verkehr entsprechend portiert.
ssh -N -L 443:localhost:8006 user@beispielserver.de -p 2222
Hier wird der lokale Port 443 (HTTPS) auf dem am SERVER.DE befindlichen Port 8006 über SSH Port 2222 weitergeleitet. In diesem konkreten Beispiel lässt sich auf den Proxmox-Server zugreifen, ohne den Port nach außen hin öffnen zu müssen.
Sollte ein Zwischenserver vorhanden sein, der vor Proxmox agiert, sodass Proxmox keinen SSH-Port öffentlich geöffnet haben muss, muss zudem sichergestellt sein, dass der Zwischenserver mit dem gleichen SSH Forwarding versehen ist, sodass am Zwischenserver der Port 8006 auch zum Proxmox-Server auf Port 8006 führt. Dieser ist mit
ssh -N -L 8006:localhost:8006 sshuser@172.16.99.10 -p 22
einzureichen. In diesem konkreten Beispiel wird eben der Port 8006 auf dem Zwischenserver auf die IP und ebenfalls Port 8006 weitergeleitet.
Um diesen SSH Forwarding am Zwischenserver nicht immer aufmachen zu müssen, kann alternativ eine screen-Session mit genau dieser Portweiterleitung geschaffen werden oder idealer, die SSH-Verbindung im Hintergrund auszuführen mit
ssh -f -N -L 8006:localhost:8006 sshuser@172.16.99.10 -p 22
Auf dem Client kann auf die gleiche Weise agiert werden.
Hinweis: Beim Standard-Port 22 kann diese Port-Angabe auch weggelassen werden.
-L: local port forwarding
-f: Hintergrund
-N: kein einloggen erforderlich.
Demzufolge kann auf dem Client mit folgender Adresse nun entfernt der Port 8006 aufgerufen werden:
https://localhost
https://127.0.0.1
Den HTTPS-Standardport :443 schenken wir uns in diesem Fall.