SSH-Tunnel

Für die Durch- oder Umleitung von SSH-Verbindungen stehen uns diverse Umsetzungen zur Verfügung.

Eine Suche im Netz ergibt diverse Anleitungen und Erläuterungen zum Thema.

Beispiellink zum Thema SSH-Tunnel: Linuxize - How to Setup SSH Tunneling

Techniken:

  • Local Port Forwarding

  • Remote Port Forwarding

  • Dynamic Port Forwarding

Für eine Anwendung von Local Port Technik folgt hier eine beispielhafte Übung aus meinen Seminaren.

Beispielszenario Seminarumgebung:

Auf einem Rechner mit Virtualisierungstechnik (VirtualBox/Oracle, Hyper-V/Microsoft, …) läuft eine komplette Virtuelle Firmen-/Rechnerumgebung, die über einen (virtuellen) Router angebunden ist.

  • Eigener Rechner im Netz 192.168.2.0/24

  • Router mit NIC1 mit 192.168.2.254/24 und NIC2 mit 172.16.100.1/24

  • SSH-Server 172.167.100.10 (User: joebserver)

Frage: Wie kommen wir jetzt an Dienst von Maschinen innerhalb des internen (virtuellen) Netzes?

Lösung: Local Port Forwarding

Auf eigenem Rechner:

ssh -L 22222:172.16.100.10:22 joeb@192.168.2.254

Der Rechner (hier für die SSH-Verbindung) wird auch als Jump Server bezeichnet. Er ermöglicht uns quasi den Sprung zum Zielrechner.

Der ssh -L Befehl öffnet lokal den Port 22222.

Hinweis

Die Local-Portnummern sollten oberhalb 1023 liegen, da die meisten Betriebssysteme die Ports 0…1023 als Systemports nutzen/schützen.

Die Verbindung zum entfernten Rechner im anderen Teilnetz stellen wir jetzt über den lokalen Port her:

ssh joebserver@localhost -p 22222

Diese Umsetzung ist nur für eine kurze manuelle Inbetriebnahme des Dienstezugriffs auf den internen Dienst geeignet, da der lokal geöffnete Port nicht dauerhaft aufrecht erhalten wird.

Das Aufrechterhalten des geöffneten Ports unterscheidet sich des Weiteren auch in den verschiedenen Betriebssystemen.

Für eine dauerhafte Verbindung eignet sich eher ein Port-Forwarding im Jump Server. Das führt aber früher oder später zu einer Verkomplizierung der Firewall-Einstellungen. Außerdem wollen wir im Idealfall auf einem Rand-Rechner eines Netzwerks nur die Ports 80, 443 und 22 offen haben! Lösungen: Reverse-Proxy / Edge-Router wie z.B. Nginx Proxy oder Traefik.

Erläuterungen siehe Traefik - Edge Router Doku

… tbc …