Kategorie:SSH/Tunnel: Unterschied zwischen den Versionen
Zeile 13: | Zeile 13: | ||
== Anwendung == | == Anwendung == | ||
=== Port-Weiterleitung === | |||
Hierbei richtet die Option <tt>-L</tt> 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 <tt>-L</tt> oder <tt>-R</tt> gibt dabei die Richtung an, aus der der Tunnel benutzt werden kann. | |||
* Bei <tt>-L</tt> vom eigenen Rechner zum entfernten hin, bei <tt>-R</tt> in der entgegengesetzten Richtung. (Das merkt man sich am Besten als norma'''L''' 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 <tt>-N</tt>, die das Erzeugen einer Terminal-Sitzung auf dem entfernten System unterbindet, wenn man nur die Port-Weiterleitung benutzen möchte. | |||
=== localhost:8000 auf server:80 weiterleiten === | |||
$ 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. | |||
=== Alle Schnittstellen weiterleiten === | |||
* Option <tt>GatewayPorts</tt> in der Server-Konfiguration entsprechend setzen (siehe 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. | |||
=== 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 | |||
=== Fehlerbehebung === | === Fehlerbehebung === | ||
== Konfiguration == | == Konfiguration == | ||
=== Dateien === | === Dateien === |
Version vom 30. Dezember 2023, 03:09 Uhr
topic - Kurzbeschreibung
Beschreibung
Installation
Syntax
ssh -L [bind_address:]port:host:port user@server
ssh -R [bind_address:]port:host:port user@server
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Anwendung
Port-Weiterleitung
Hierbei richtet die Option -L 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.
localhost:8000 auf server:80 weiterleiten
$ 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.
Alle Schnittstellen weiterleiten
- Option GatewayPorts in der Server-Konfiguration entsprechend setzen (siehe 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.
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
Fehlerbehebung
Konfiguration
Dateien
Anhang
Siehe auch
Sicherheit
Dokumentation
RFC
RFC | Titel |
---|---|
6146 | Stateful NAT64 |
6147 | DNS64 |
5942 | IPv6 Subnet Model: The Relationship between Links and Subnet Prefixes |
Man-Pages
Info-Pages
Links
Projekt
Weblinks
TMP
Seiten in der Kategorie „SSH/Tunnel“
Folgende 3 Seiten sind in dieser Kategorie, von 3 insgesamt.