Kategorien
Linux Uncategorized

Port-Weiterleitung mittels SSH

Ich hat­te soeben das Pro­blem, dass ich gern auf einen Dienst zuge­grif­fen hät­te, der auf einer ent­fern­ten Maschi­ne auf Port 443 läuft. Außer­halb des eige­nen Net­zes, also für IP-Adres­sen, die nicht im glei­chen Netzs­seg­ment lie­gen, wur­de der Zugr…

Ich hat­te soeben das Pro­blem, dass ich gern auf einen Dienst zuge­grif­fen hät­te, der auf einer ent­fern­ten Maschi­ne auf Port 443 läuft. Außer­halb des eige­nen Net­zes, also für IP-Adres­sen, die nicht im glei­chen Netzs­seg­ment lie­gen, wur­de der Zugriff auf Port 443 aber gesperrt. Über eine SSH-Ver­bin­dung am Ter­mi­nal mit Lynx zu arbei­ten fiel auch aus, da der Web­ser­vice mas­si­ven Ein­satz von Java­Script macht und ohne die­ses qua­si nicht benutz­bar ist.

Also muss­te eine Mög­lich­keit her, trotz der Ein­schrän­kung auf die­sen Ser­vice zuzu­grei­fen. Eine loka­le Port­wei­ter­lei­tung mit­tels SSH erbrach­te den gewünsch­ten Effekt. Hier­für wird eine Art Daten­um­lei­tung ein­ge­rich­tet, mit deren Hil­fe man die Anfra­ge- und Ant­wort­pa­ke­te an den jeweils zustän­di­gen Port umleitet.

https://gist.github.com/481534

Der Befehl ssh soll­te bekannt sein. Die Opti­on -L bin­det einen loka­len Port an einen Remo­te-Port, wie auch im Bei­spiel zu sehen ist. Über [email protected] mel­det man sich dann mit gül­ti­gen Zugangs­da­ten an der Maschi­ne an, auf der der Ser­vice läuft.

Kon­kret habe ich in mei­nem Fal­le den loka­len Port durch 14500 ersetzt, den Remo­te-Port durch 443. SSH baut die Ver­bin­dung und damit auch den Tun­nel auf, et voi­là, schon kann man über den Brow­ser mittels

http(s)://localhost:14500

auf den Web­ser­vice zugrei­fen. Die Ein­schrän­kung im Ziel­netz, dass Port 443 nach außen nicht erreich­bar sein darf ist somit umgangen.