linux:ssh-tunnel

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
linux:ssh-tunnel [2018/08/23 13:30] – [1.) Aufbau einer neuen SSH Session auf den Jump-Hosts] michaellinux:ssh-tunnel [2018/08/23 15:15] stefgu
Line 3: Line 3:
 Wenn es Firewall-technisch nicht möglich ist, direkt auf eine bestimmte eingerichtete Applikation auf einem Applikationsservers zuzugreifen; kann versucht werden die Firewalls via SSH-Tunnel zu umgehen. Wenn es Firewall-technisch nicht möglich ist, direkt auf eine bestimmte eingerichtete Applikation auf einem Applikationsservers zuzugreifen; kann versucht werden die Firewalls via SSH-Tunnel zu umgehen.
  
-**Als Beispiel** habe ich hier den Portainer-Server, welcher in einem separaten Servernetzwerk steht und nur via SSH über den Jump-Server erreicht werden kann ausgewählt. Der Portainer-Server, respektive das Web-GUI läuft unter dem Port 9000. Gebraucht werden somit zwei Tunnel, in denen wir jeweils den Traffic des Portainer-Servers verschlüsselt durch den Jump-Host hindurch auf den localhost des Arbeitsnotebooks forwarden werden.+**Als Beispiel** habe ich hier den Portainer-Server, welcher in einem separaten Servernetzwerk steht und nur via SSH über den Jump-Server erreicht werden kann ausgewählt. Der Portainer-Server, respektive das Web-GUI läuft unter dem Port 9000. 
  
 +Gebraucht werden somit zwei Tunnel, in denen wir jeweils den Traffic des Portainer-Servers verschlüsselt durch den Jump-Host hindurch auf den localhost des Arbeitsnotebooks forwarden werden.
 +
 +----
  
 ===== Vorgehen zum erstellen der benötigten Tunnel ===== ===== Vorgehen zum erstellen der benötigten Tunnel =====
Line 13: Line 16:
 <WRAP center box 100%> <WRAP center box 100%>
 ==== 1.) Aufbau einer neuen SSH Session auf den Jump-Hosts ==== ==== 1.) Aufbau einer neuen SSH Session auf den Jump-Hosts ====
 +Als erstes brauchen wir eine neue Session, welche von unserem Arbeitsnotebook auf den Jump-Host aufbauen. ''**Wichtig:**<wrap em> Diese Session (Putty-Fenster) muss später immer geöffnet bleiben, solange wir den Tunnel verwenden möchten!</wrap>''
 +
 +<code># ssh vnix1a</code>
 </WRAP> </WRAP>
 +
  
 <WRAP center box 100%> <WRAP center box 100%>
 ==== 2.) Erstellen des ersten Tunnels vom Jump-Host auf den Portainer Server ==== ==== 2.) Erstellen des ersten Tunnels vom Jump-Host auf den Portainer Server ====
 +Im zweiten Schritt, wird nun in der soeben erstellten Session einen neuen Tunnel von Jump-Host (vnix1a) auf den Portainer-Server (vredsen2) erstellt.
 +
 +<code># ssh -L 19000:localhost:9000 vredsen2</code>
 +
 +''<wrap em>Details zum Befehl</wrap>: Es wird via **ssh** eine neue Session mit einem localport **-L 19000** auf dem Jump-Host erstellt. Der Input für diese Schnittstelle, bekommt der Server via Tunnel vom Portainer-Server (vredsen2) über den **localhost:9000**'' 
 </WRAP> </WRAP>
  
 <WRAP center box 100%> <WRAP center box 100%>
 ==== 3.) Zwischen-test des ersten Tunnels  ==== ==== 3.) Zwischen-test des ersten Tunnels  ====
-Um zu überprüfen, ob nun der erste Tunnel und die zeitgleich eingerichtete Port-Weiterleitung korrekt funktioniert, kann mithilfe eines CURLs bestummen werden.+Um zu überprüfen, ob nun der erste Tunnel und die zeitgleich eingerichtete Port-Weiterleitung korrekt funktioniert, kann mithilfe eines CURLs bestimmt werden.
  
-Dazu machen wir ein CURL auf den lokal weitergeleiteten Port und schauen, ob die Backend-Applikation auf dem Jump-Host ansprechbar ist. +Dazu eröffnen wir eine zweite Session auf den Jump-Host und machen ein CURL auf den lokal weitergeleiteten Port und schauen so, ob die Backend-Applikation auf dem Jump-Host ansprechbar ist. 
  
 <code># curl 127.0.0.1:19000 | grep portainer</code> <code># curl 127.0.0.1:19000 | grep portainer</code>
Line 41: Line 53:
  
 <WRAP center box 100%> <WRAP center box 100%>
-==== 4.) Aufbau einer neuen SSH Session auf den Jump-Hosts ====+==== 4.) Erstellen des zweiten Tunnels vom Arbeitsgerät auf den Jump-Host ==== 
 +Damit unserer Tunnel schlussendlich auch durchgehend bis auf unser Arbeitsnotebook funktionieren kann, wird noch der zweite Tunnel benötigt. 
 + 
 +Um diesen zu erstellen, muss ein weiteres Putty geöffnet werden, mit dem wir anschliessend auf den Jump-Host verbinden. Jedoch werden hier noch vor dem eigentlichen verbinden folgende Anpassungen vorgenommen.
  
 {{:linux:putty_tunnel.png?nolink&400|}} {{:linux:putty_tunnel.png?nolink&400|}}
 +
 +Nach dem Anpassen kann die Session eröffnet werden und der zweite Tunnel sollte nun stehen!
 </WRAP> </WRAP>
  
  
 <WRAP center box 100%> <WRAP center box 100%>
-==== 5.) Aufbau einer neuen SSH Session auf den Jump-Hosts ====+==== 5.) Finaler Test beider aufgebauten Tunnel ==== 
 +Im Punkt 4. haben wir auf unserem Arbeitsgerät einen neuen Listener auf Port 3000 erstellt. Die Informationen welche an diesen Listener geschickt werden, bekommen wir vom Jump-Host via Port 19000 mitgeteilt. Es solte nun also ein durchgehender Tunnel stehen, durch welchen wir auf unsere Applikation im Servernetz zugreifen könnten. 
 + 
 +**Testen**: -> Im Browser: [[http://127.0.0.1:3000]]
  
 </WRAP> </WRAP>
  • linux/ssh-tunnel.txt
  • Last modified: 2018/08/27 08:06
  • by michael