Kategorie:SSH/Tunnel: Unterschied zwischen den Versionen

Aus Foxwiki
Die Seite wurde neu angelegt: „'''topic''' kurze Beschreibung == Beschreibung == == Installation == == Syntax == === Parameter === === Optionen === === Umgebungsvariablen === === Exit-Status === == Konfiguration == === Dateien === == Anwendungen == == Sicherheit == == Dokumentation == === RFC === === Man-Pages === === Info-Pages === === Siehe auch === == Links == === Projekt-Homepage === === Weblinks === === Einzelnachweise === <references /> == Testfragen == <div class="toccolour…“
 
Zeile 4: Zeile 4:
== Installation ==
== Installation ==
== Syntax ==
== Syntax ==
=== Parameter ===
=== Optionen ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Konfiguration ==
=== Dateien ===
== Anwendungen ==
== Sicherheit ==
== Dokumentation ==
=== RFC ===
=== Man-Pages ===
=== Info-Pages ===
=== Siehe auch ===
== Links ==
=== Projekt-Homepage ===
=== Weblinks ===
=== Einzelnachweise ===
<references />
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
[[Kategorie:Entwurf]]
[[Kategorie:ssh]]
= TMP =
== SSH-Tunnel ==
Wenn man mit Hilfe von SSH so ein nicht ganz triviales Protokoll wie X-Window tunneln kann, dann muss das doch auch mit anderen Protokollen funktionieren, oder? - Aber sicher geht das.
* Allerdings ist die Syntax für den SSH-Tunnelbau ein wenig verwirrend:


==== Syntax ====
  ssh -L [bind_address:]port:host:port user@server
  ssh -L [bind_address:]port:host:port user@server
  ssh -R [bind_address:]port:host:port user@server  
  ssh -R [bind_address:]port:host:port user@server  
Zeile 62: Zeile 12:


Der verschlüsselte Tunnel wird dabei '''immer''' zwischen dem eigenen Rechner und ''server'' hergestellt.  
Der verschlüsselte Tunnel wird dabei '''immer''' zwischen dem eigenen Rechner und ''server'' hergestellt.  
* Die Verbindung vom ''Ende des Tunnels'' zu ''host'' läuft dagegen unverschlüsselt ab, und wird aus Sicht des betreffenden Systems angegeben, weswegen man ''host'' in den allermeisten Fällen wohl auf ''"localhost"'' setzen sollte.  
* Die Verbindung vom ''Ende des Tunnels'' zu ''host'' läuft dagegen unverschlüsselt ab, und wird aus Sicht des betreffenden Systems angegeben, weswegen man ''host'' in den allermeisten Fällen wohl auf ''"localhost"'' setzen sollte.
* Hierbei darf ''"localhost"'' nicht mit dem lokalen Rechner verwechselt werden.  
* Hierbei darf ''"localhost"'' nicht mit dem lokalen Rechner verwechselt werden.


Es handelt sich um ''"localhost"'' von ''server'' aus betrachtet, daher um den Server selbst.
Es handelt sich um ''"localhost"'' von ''server'' aus betrachtet, daher um den Server selbst.
Zeile 71: Zeile 21:


Das erste ''port''-Argument bezeichnet dabei den Einstiegsport in die Verbindung.  
Das erste ''port''-Argument bezeichnet dabei den Einstiegsport in die Verbindung.  
* Zu beachten ist hierbei, dass die Öffnung eines ''privilegierten'' Ports, also unter 1024, nur dem Superuser ''root'' gestattet ist.  
* Zu beachten ist hierbei, dass die Öffnung eines ''privilegierten'' Ports, also unter 1024, nur dem Superuser ''root'' gestattet ist.
* Man sollte also auf die höheren Ports ausweichen.
* Man sollte also auf die höheren Ports ausweichen.


Zeile 82: Zeile 32:


Ein weiteres nützliches Argument ist die Option <tt>-N</tt>, die das Erzeugen einer Terminal-Sitzung auf dem entfernten System unterbindet, wenn man nur die Port-Weiterleitung benutzen möchte.
Ein weiteres nützliches Argument ist die Option <tt>-N</tt>, die das Erzeugen einer Terminal-Sitzung auf dem entfernten System unterbindet, wenn man nur die Port-Weiterleitung benutzen möchte.
=== Parameter ===
=== Optionen ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Konfiguration ==
=== Dateien ===


=== Beispiele ===
== Anwendungen ==
Weiterleitung von Port 8000 auf dem lokalen System an den Webserver (Port 80) auf ''server'':
Weiterleitung von Port 8000 auf dem lokalen System an den Webserver (Port 80) auf ''server'':
  ssh -L 8000:localhost:80 server -N &
  ssh -L 8000:localhost:80 server -N &
  netstat -anp --inet | egrep '(^Proto|8000)'  
  netstat -anp --inet | egrep '(^Proto|8000)'  
Zeile 124: Zeile 80:


  supportpc$ ssh -L 54322:ziel:22 zwischennutzer@zwischen
  supportpc$ ssh -L 54322:ziel:22 zwischennutzer@zwischen
== Sicherheit ==
== Dokumentation ==
=== RFC ===
=== Man-Pages ===
=== Info-Pages ===
=== Siehe auch ===
== Links ==
=== Projekt-Homepage ===
=== Weblinks ===
=== Einzelnachweise ===
<references />
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
[[Kategorie:Entwurf]]
[[Kategorie:ssh]]

Version vom 15. Juli 2022, 08:55 Uhr

topic kurze Beschreibung

Beschreibung

Installation

Syntax

Syntax

ssh -L [bind_address:]port:host:port user@server
ssh -R [bind_address:]port:host:port user@server 

Hierbei richtet die Option -L laut Dokumentation eine lokale, und die Option '-R' eine entfernte (englisch remote) Port-Weiterleitung ein.

Der verschlüsselte Tunnel wird dabei immer zwischen dem eigenen Rechner und server hergestellt.

  • Die Verbindung vom Ende des Tunnels zu host läuft dagegen unverschlüsselt ab, und wird aus Sicht des betreffenden Systems angegeben, weswegen man host in den allermeisten Fällen wohl auf "localhost" setzen sollte.
  • Hierbei darf "localhost" nicht mit dem lokalen Rechner verwechselt werden.

Es handelt sich um "localhost" von server aus betrachtet, daher um den Server selbst.

Die Option -L oder -R gibt dabei die Richtung an, aus der der Tunnel benutzt werden kann.

  • Bei -L vom eigenen Rechner zum entfernten hin, bei -R in der entgegengesetzten Richtung. (Das merkt man sich am Besten als normaL und Rückwärts.)

Das erste port-Argument bezeichnet dabei den Einstiegsport in die Verbindung.

  • Zu beachten ist hierbei, dass die Öffnung eines privilegierten Ports, also unter 1024, nur dem Superuser root gestattet ist.
  • Man sollte also auf die höheren Ports ausweichen.

Mit dem optionalen Parameter bind_address kann man festlegen, auf welchen Netzwerkschnittstellen die Weiterleitung laufen soll, wobei localhost der Standard ist.

Ein * oder ein leeres bind_address-Argument vor dem Doppelpunkt bedeutet, dass die Weiterleitung an allen Schnittstellen läuft.

  • Möglicherweise funktioniert das nicht auf jedem Ubuntu-System auf Anhieb, da die IPv6-Adresse das irgendwie verhindert, weshalb man den SSH-Tunnel mit dem Argument -4 auf die IPv4-Schnittstellen beschränken muss.

Der zweite port-Parameter gibt schließlich an, auf welchen Port von host die Weiterleitung gehen soll.

Ein weiteres nützliches Argument ist die Option -N, die das Erzeugen einer Terminal-Sitzung auf dem entfernten System unterbindet, wenn man nur die Port-Weiterleitung benutzen möchte.

Parameter

Optionen

Umgebungsvariablen

Exit-Status

Konfiguration

Dateien

Anwendungen

Weiterleitung von Port 8000 auf dem lokalen System an den Webserver (Port 80) auf server:

ssh -L 8000:localhost:80 server -N &
netstat -anp --inet | egrep '(^Proto|8000)' 
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN     10843/ssh
fg 
ssh -L 8000:localhost:80 server -N
[Strg-C]
Killed by signal 2.

Dasselbe, aber es wird nicht nur vom lokalen Host weitergeleitet, sondern von allen Schnittstellen (hierzu ist die Option GatewayPorts in der Server-Konfiguration entsprechend zu setzen, genaueres zu finden in der Manpage; man wähle diese Option mit Bedacht!):

ssh -L *:8000:localhost:80 server -N -4 &
netstat -anp --inet | egrep '(^Proto|8000)' 
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN     10906/ssh

Umgekehrte Richtung.

  • Benutzern auf server wird ermöglicht, über localhost:3306 auf den MySQL-Server auf client zuzugreifen:
ssh -R 3306:localhost:3306 server 
Last login: Sat Mar 11 23:24:20 2006 from 192.168.4.56
netstat -an --inet | egrep '(^Proto|3306)'
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
exit
logout
Connection to server closed.

Zur Veranschaulichung folgt hier noch einmal eine grafische Darstellung dieser Beispiele:

Doppelter SSH-Tunnel über zwei Konsolen:

supportpc$ ssh -L 54321:localhost:54321 zwischennutzer@zwischen
zwischen$ ssh -L 54321:localhost:8080 zielnutzer@ziel 

SSH-Tunnel über Zwischenrechner mit Zielrechner verbinden:

supportpc$ ssh -L 54322:ziel:22 zwischennutzer@zwischen

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

Einzelnachweise


Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

Seiten in der Kategorie „SSH/Tunnel“

Folgende 3 Seiten sind in dieser Kategorie, von 3 insgesamt.