Hallo Liste,
ich hab da mal 'ne Frage:
eine Win$Kiste hinter einer Fritzbox hinter einer weiteren NAT (Provider von virtuellen Büros) und
mehrere andere Geräte im home-office (ebenfalls hinter NAT routern)
sollen verbunden werden.
Ich dachte mir, der Win$Rechner errichtet eine Verbindung zu einem, nenne ich ihn mal Trampolin-Server. Die übrigen Maschinen melden sich dort und können über die offene Verbindung den Win$ erreichen.
Ziel ist VPN zu dieser Win$ Kiste obwohl ich für sie weder public IP noch Portforwarding habe.
Jemand eine Idee, wie ich das machen kann und ob es ein solches Trampolin schon gibt?
Grüße Peter
Hallo Peter,
On Wed, Aug 26, 2020 at 15:12:31 +0200, Peter Hochgemuth wrote:
[...]
Ich dachte mir, der Win$Rechner errichtet eine Verbindung zu einem, nenne ich ihn mal Trampolin-Server. Die übrigen Maschinen melden sich dort und können über die offene Verbindung den Win$ erreichen.
Ziel ist VPN zu dieser Win$ Kiste obwohl ich für sie weder public IP noch Portforwarding habe.
Jemand eine Idee, wie ich das machen kann und ob es ein solches Trampolin schon gibt?
Falls es Dir nur um einzelne, TCP-basierte Protokolle geht, kannst Du sowas mit ssh bauen. Als "Trampolin-Server" wuerde in dem Fall ein Rechner mit fester Adresse ausreichen, auf dem sich alle beteiligten Rechner per ssh als unprivilegierter Nutzer einloggen koennen -- am besten mit Key based authentication.
Die Idee ist, dass der Windows-Rechner bei seinem ssh-Login ein oder mehrere remote Forwardings zu sich zurueck legt (ssh-Option -R). Damit sind die entsprechenden TCP-Ports schon mal fuer lokale Prozesse auf dem Trampolin-Server zugreifbar.
Die ssh-Logins der diversen anderen Rechner legen ihrerseits local Forwardings (ssh-Option -L) zu den vorher durch obige -R Option gebundenen Ports.
Natuerlich ist das Ganze nicht so schoen wie ein richtiger Tunnel (etwa mit openvpn), aber man braucht so keine root-Rechte auf dem Trampolin-Server.
Gruss, Christian
Am Mon, 31 Aug 2020 23:02:35 +0200 schrieb Christian Perle chris@linuxinfotag.de:
Hallo Peter,
On Wed, Aug 26, 2020 at 15:12:31 +0200, Peter Hochgemuth wrote:
[...]
Ich dachte mir, der Win$Rechner errichtet eine Verbindung zu einem, nenne ich ihn mal Trampolin-Server. Die übrigen Maschinen melden sich dort und können über die offene Verbindung den Win$ erreichen.
Ziel ist VPN zu dieser Win$ Kiste obwohl ich für sie weder public IP noch Portforwarding habe.
Jemand eine Idee, wie ich das machen kann und ob es ein solches Trampolin schon gibt?
Falls es Dir nur um einzelne, TCP-basierte Protokolle geht, kannst Du sowas mit ssh bauen. Als "Trampolin-Server" wuerde in dem Fall ein Rechner mit fester Adresse ausreichen, auf dem sich alle beteiligten Rechner per ssh als unprivilegierter Nutzer einloggen koennen -- am besten mit Key based authentication.
Die Idee ist, dass der Windows-Rechner bei seinem ssh-Login ein oder mehrere remote Forwardings zu sich zurueck legt (ssh-Option -R). Damit sind die entsprechenden TCP-Ports schon mal fuer lokale Prozesse auf dem Trampolin-Server zugreifbar.
Solch ein Setup habe ich auch seit Jahre laufen.
Mann kann auch den Zugriff auf einzelne Ports (von -R) über das `command` in der authorized_keys für jeden Key steuern.
Wichtig: Um auch sicher mit Verbindungsunterbrechungen klarzukommen sollte auf dem Server in der `/etc/ssh/sshd_config` z.B.:
ClientAliveInterval 60 ClientAliveCountMax 3
stehen.
Bei den Clients die ihre Dienste anbieten hat sich z.B.:
ssh -q -o ConnectTimeout=45 -o ServerAliveInterval=30 \ -o ServerAliveCountMax=3 -N -R 5123:localhost:22 -i /path2key \ user@remotehost
bewährt.
Die ssh-Logins der diversen anderen Rechner legen ihrerseits local Forwardings (ssh-Option -L) zu den vorher durch obige -R Option gebundenen Ports.
Natuerlich ist das Ganze nicht so schoen wie ein richtiger Tunnel (etwa mit openvpn), aber man braucht so keine root-Rechte auf dem Trampolin-Server.
Gruss, Christian
Gruß, Markus
lug-dd@mailman.schlittermann.de