GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie SSH-Tunneling ein

Wenn Sie sich mit einem anderen Linux-Gerät in einem anderen Netzwerk verbinden, müssen Sie es dem öffentlichen Internet aussetzen, was Ihr System und Ihre Dateien gefährden kann. Daher wird SSH-Tunneling verwendet, um Daten schnell und sicher von der Quelle zum Client-Rechner und umgekehrt zu übertragen.

SSH-Tunneling ist eine Praxis zum Erstellen einer gesicherten und verschlüsselten SSH-Verbindung zwischen einem Servercomputer und einem Clientcomputer, über die Daten übertragen und Dienste weitergeleitet werden können. In unserem heutigen Artikel werden wir sehen, wie Sie SSH-Tunneling einrichten und Ihren Datenverkehr sicher über SSH-Tunnel leiten.

Was ist SSH-Tunneling?

SSH-Tunneling ist die Methode, unverschlüsselten Verkehr oder Daten über einen verschlüsselten Kanal zu übertragen. Man kann einfach sagen, dass es sich um einen Tunnel handelt, um Daten auf sichere Weise von einem Ort zum anderen zu übertragen. Neben der Dateiübertragung kann SSH-Tunneling auch verwendet werden, um über Firewalls hinweg auf Intranetdienste zuzugreifen und VPN zu implementieren.

SSH-Tunneling ist auch als SSH-Weiterleitung bekannt und stellt eine einfache und effektive Möglichkeit dar, Daten zu transportieren, die ein verschlüsseltes Protokoll (FTP) verwenden, Firewalls zu umgehen und auf geografisch eingeschränkte Inhalte zuzugreifen.

Es gibt drei Arten von SSH-Portweiterleitungen:

  1. Lokale Portweiterleitung
  2. Remote-Portweiterleitung
  3. Dynamische Portweiterleitung

Lokale Weiterleitung

Lokale Weiterleitung ist die Praxis, einen Port vom Client-Rechner (lokaler SSH-Client) an den Remote-Rechner (SSH-Server) weiterzuleiten und dann die Verbindung an einen anderen Port des Zielrechners weiterzuleiten.

Der SSH-Client prüft die Verbindung an einem bestimmten angegebenen Port und tunnelt die Verbindung zu einem bestimmten Port auf einem entfernten SSH-Server, wenn er eine Verbindungsanforderung erhält. Und dann verbindet sich der Server mit einem anderen Zielcomputer am konfigurierten Port.

Es wird hauptsächlich verwendet, um sich von außen wie eine Datenbank mit einem entfernten Dienst in einem internen Netzwerk zu verbinden. Es wird auch für die Remote-Dateifreigabe über das Internet und über Jump-Server verwendet.

Wie richte ich eine lokale Portweiterleitung ein?

Nehmen wir ein Beispiel, dass Sie durch eine Firewall eingeschränkt sind, um auf eine Anwendung zuzugreifen, die auf einem Remote-Server auf Port 3000 ausgeführt wird. Jetzt leiten wir einen lokalen Port (z. B. 8080) weiter, um lokal auf die Anwendung zuzugreifen.

Das -L wird verwendet, um die lokale Portweiterleitung zu konfigurieren

ssh [email protected] -L 8080:server1.example.com:3000 

Oder

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [LOCAL_IP:]LOCAL_PORT – Die Portnummer und IP-Adresse des lokalen Computers. Jede Portnummer größer als 1024 kann verwendet werden.
  • DESTINATION:DESTINATION_PORT – Der Port und die IP-Adresse oder der Hostname des Zielcomputers.
  • [[email protected]]SERVER_IP – Der Benutzername und die Server-IP-Adresse des Remote-SSH-Benutzers.

Das -f weist ssh an, im Hintergrund zu laufen.

ssh -f -N [email protected] -L 8080:server1.example.com:3000

Und das -N weist an, keinen Remote-Befehl auszuführen. [In diesem Fall erhalten Sie keine Shell.]

ssh -N [email protected] -L 8080:server1.example.com:3000

Öffnen Sie jetzt einen Browser auf Ihrem lokalen Computer und Sie können einfach localhost:8080 verwenden, um auf die Remote-Anwendung zuzugreifen, anstatt auf sie über die Adresse server.example.com:3000 zuzugreifen.

Fernweiterleitung

Die Remote-Port-Weiterleitung ist das Gegenteil der lokalen Port-Weiterleitung und ermöglicht es Ihnen, sich von Ihrem Remote-Rechner aus mit dem lokalen Computer zu verbinden. SSH unterstützt standardmäßig keine Remote-Portweiterleitung. Sie müssen es also in Ihrer ssh-Konfigurationsdatei aktivieren.

Öffnen Sie die ssh-Konfigurationsdatei im Bearbeitungsmodus

sudo vim /etc/ssh/sshd_config 

Suchen Sie nach GatewayPorts und setzen Sie es auf yes.

GatewayPorts yes

Speichern Sie die Änderungen, beenden Sie den Bearbeitungsmodus und starten Sie Ihren Server neu.

sudo systemctl restart sshd

Jetzt haben Sie die Remote-Portweiterleitung aktiviert. In offenem SSH verwenden wir den Befehl -R, um die Remote-Portweiterleitung einzurichten.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [REMOTE:]REMOTE_PORT – Die IP-Adresse und die Portnummer des entfernten SSH-Servers.
  • DESTINATION:DESTINATION_PORT – Der Hostname und die IP-Adresse des Zielcomputers.
  • [[email protected]]SERVER_IP – Der entfernte SSH-Benutzername und die IP-Adresse.

Zum Beispiel:

ssh -R 8080:127.0.0.1:3000 -N -f [email protected]ote.host 

Der SSH-Server überwacht Port 8080 und tunnelt den gesamten Datenverkehr von 8080 zu Port 3000 auf Ihrem lokalen Computer

Oder Sie können den folgenden Befehl verwenden, um Port 5000 auf dem Remote-Computer an Port 3000 auf dem lokalen Computer weiterzuleiten.

ssh -f -N [email protected] -R 5000:localhost:3000 

Remote Port Forwarding wird hauptsächlich verwendet, um jemandem von außen Zugriff auf einen internen Dienst zu gewähren.

Dynamische Portweiterleitung

Die dritte und letzte Art der Portweiterleitung ist die dynamische Portweiterleitung. Die lokale und Remote-Port-Weiterleitung ermöglicht Ihnen das Tunneln und die Kommunikation mit einem einzelnen Port, aber bei der dynamischen Port-Weiterleitung können Sie mit einer Reihe von Ports laufen und kommunizieren.

Es erstellt einen Socket auf dem lokalen Computer, der als SOCKS-Proxyserver fungiert, oder Sie können sagen, es richtet Ihren lokalen Computer als SOCKS-Proxyserver ein und überwacht standardmäßig Port 1080. Wenn ein Server eine Verbindung zu diesem Port herstellt, ist dies der Fall an den Remote-Rechner weitergeleitet, dann wird es über einen dynamischen Port an den dynamischen Rechner weitergeleitet.

Was ist SOCKS?

Es ist ein Internetprotokoll, das definiert, wie sich ein Client-Rechner über einen Proxy mit einem Server verbinden kann.

Wir können die dynamische Portweiterleitung mit der Option -D aktivieren. Lassen Sie uns die Portweiterleitung anhand eines Beispiels verstehen-

ssh -D [LOCAL_IP:]LOCAL_PORT [[email protected]]SSH_SERVER
  • [LOCAL_IP:]LOCAL_PORT – Die IP-Adresse und Portnummer des lokalen Rechners.
  • [[email protected]]SERVER_IP – IP-Adresse und Benutzername des Remote-Servers.

Oder dieser Befehl startet einen SOCKS-Proxy und ermöglicht Ihnen, sich mit dem Remote-Host zu verbinden.

ssh -f -N -D 1080 [email protected] 

Schlussfolgerung

SSH-Tunneling ist eine nützliche Methode, um unverschlüsselte Daten durch einen verschlüsselten Tunnel zu übertragen. Es stehen drei Optionen zur Verfügung, die Sie nach Ihren Bedürfnissen auswählen können.


Linux
  1. SSH zu einem anderen Port als 22:So geht's (mit Beispielen)

  2. So ändern Sie den SSH-Port unter Linux

  3. So richten Sie SSH-Schlüssel ein

  4. So richten Sie SSH-Schlüssel unter Ubuntu 18.04 ein

  5. Wie richte ich einen SSH-Tunnel ein, um SSH weiterzuleiten?

So richten Sie die dynamische SSH-Portweiterleitung unter Linux ein

So ändern Sie den SSH-Port in Ubuntu

So richten Sie SSH unter CentOS und RHEL ein

So ändern Sie den SSH-Port in CentOS

Wie ändere ich den SSH-Port auf Centos 7.x?

Wie ändere ich den SSH-Port auf Ubuntu?