SDB:OpenSSH-Tunnel

Wechseln zu: Navigation, Suche


Getestet mit openSUSE Empfohlene Artikel Verwandte Artikel
Icon-checked.png

Icon-manual.png Icon-help.png

Allgemein

Die meisten Programme verwenden TCP-Verbindungen, die über einen sicheren Tunnel mit Hilfe von OpenSSH aufgebaut werden können. Das wird verwendet, um zusätzliche TCP-Verbindungen über eine einzige SSH-Verbindung gleichzeitig zu senden. Es ist nützlich um Verbindungen zu verbergen und Protokolle zu verschlüsseln, die auf eine andere Art unsicher sind, und um Firewalls zu umgehen. UDP-Verbindungen können manchmal mit Hilfe von Programmen wie netcat getunnelt werden. Beispiele von einfach getunnelten Programmen beinhalten das X Window System, HTTP, der einen Proxy verwendet, und VNC.Ein Tunnel mit X Window System wird oft automatisch zwischen zwei Unix-Rechnern aufgebaut, so dass GUI-Programme von Remote-Rechnern einfach laufen können, indem ihre Namen eingegeben werden.

Voraussetzungen

Sie brauchen einen installierten und laufenden SSHD und SSH. Außerdem müssen Sie mit der Konfiguration von ihnen vertraut sein. Wenn nicht, beziehen Sie sich auf OpenSSH und OpenSSH konfigurieren.


Portweiterleitung

Einer der gebrächlichsten Wege zu Tunnel-Anwendungen ist per Portweiterleitung (Port Forwarding). Sie könnten z.B. Port 139 weiterleiten, um SMB-Verbindungen zu tunneln, oder Port 80 um einen Web-Server (HTTP) zu tunneln. Beide Localhost-Ports und Ports der entfernten Adresse können weitergeleitet werden. Das kann praktisch sein, wenn Sie die Webseite Ihres Routers weiterleiten wollen, die sich in Ihrem SSHD-Server-Netzwerk befindet. Um Portweiterleitung zu erlauben, bearbeiten Sie die Datei /etc/ssh/ssh_config mit Ihrem Lieblingseditor und setzen, wenn es nicht bereits schon ist:

AllowTcpForwarding yes

Die Einstellung, welche Ports und wie die Ports weitergeleitet werden müssen, wird in einer der SSH-Konfigurationsdateien oder auf der Kommandozeile gemacht. In diesem Beispiel werden wir die persönliche Konfigurationsdatei ~/.ssh/config verwenden. Das Setzen der Optionen in der /etc/ssh/sshd_config wird genauso arbeiten, aber wird für alle Benutzer anwendbar sein.

Local Forward

Auf einem *NIX-System ist die Weiterleitung zu einem Port niedriger als 1024 eine priviligierte Aktion und kann oft nur von Root durchgeführt werden. Als normaler Benutzer können Sie auch niedrigere Ports weiter leiten, aber Sie müssen diese an einen höheren Port auf dem Host "binden", wo der Port hin geleitet wird.

Local Forward bedeutet: Weiterleitung eines Ports vom Server und "Bindung" davon an einen Port vom Client. Ports werden standardmäßig an die Adresse "localhost:port" gebunden. Wenn Sie eine Schnittstellen-Adresse auflisten (Diese muss eine existierende Adresse einer der Netzwerk-Schnittstellen an Ihrem Computer sein), wird es an diese Adresse gebunden und es kann von anderen Rechnern aus darauf zugegriffen werden, wo Ihre Firewall es erlaubt. Das wird eine typische Einstellung einer definierten hostbasierten Portweiterleitung sein. Als normaler Benutzer editieren Sie ~/.ssh/config mit Ihrem Lieblingseditor:

## These are just settings to define a host. Use "Host *" if you want to configure it for all hosts. You can define as must host as you like.
Host ssh-server
   Hostname 72.91.12.103
   Port 2222
## Here we will define the Local Forwards ##
# This forwards a POP3 server that is active on "ssh-server"
   LocalForward 1110 ssh-server:110
# This forwards a web server (eg your router) which is not active on "ssh-server"
   LocalForward 8080 192.168.1.1:80
# This forwards a squid proxy server that is active on "ssh-server" and binds it to an interface adress.
   LocalForward 192.168.1.103:3128 ssh-server:3128

Remote Forward

Remote Forward bedeutet: Weiterleitung eines Ports vom Client und "Bindung" davon an einen Port auf dem Server. Das Port-Bindungs-Verhalten ist identisch zum Local Forward. Diese Option wird praktisch sein, wenn Sie einen Dienst für Ihren SSHD-Server verfügbar machen wollen, der nur in Ihrem lokalen Netzwerk verfügbar ist.

Zusätzlich zu den Beispielen oben:

# This forwards a local NFS server to "ssh-server".
   RemoteForward 1025 localhost:1025
# This forwards a local SSHD server to "ssh-server" and binds it to an interface address on "ssh-server"
   RemoteForward 172.20.20.1:5041 localhost:22

Dynamic Forward / Erstellung von SOCKS

Dynamic Forward (Dynamisches Forward) ermöglicht Ihnen einen "Ad-hoc" Proxy-Server einzurichten. Das unterstützt eine flexiblere Vertretung (proxying) als es mit der normalen Portweiterleitung möglich wäre. Mit dieser Option werden nur die "Bindungs"-Adresse und der Port auf dem Client festgelegt. Alle Verbindungs-Anfragen an diese Adresse werden automatisch an die entsprechende Adresse und den Port auf der Server-Seite weitergeleitet. Wenn keine "Bindungs"-Adresse bestimmt wurde, wird es standardmäßig an den Localhost "gebunden".

Zusätzlich zu den Beispielen oben:

# This establishes a SOCKS server that listens on "localhost:1080".
   DynamicForward 1080
# This establishes a SOCKS server that listens on "192.168.1.103:5555", where your Firewall allows.
   DynamicForward 192.168.1.103:5555

Option GatewayPorts

Um jemand anderen an der Verwendung Ihrer lokalen weitergeleiteten Ports zu verhindern, sind die Ports gewöhnlich an die Localhost-Adresse "gebunden". Die Option GatewayPorts gibt Ihnen die Möglichkeit das zu ändern. Das Ändern dieser Option zu yes wird die "Standard-Bindung" zur Wildcard-Adresse ändern, was alle Ihre konfigurierten Adressen betrifft (lokale und externe Schnittstellen). Sie können diese Zeile in eine Ihrer Konfigurationsdateien hinzufügen um es zu erlauben.:

GatewayPorts yes


Siehe auch


Externe Links