So erstellen Sie SSH-Tunneling oder Portweiterleitung unter Linux

SSH-Tunneling (auch als SSH-Portweiterleitung bezeichnet) leitet einfach den lokalen Netzwerkverkehr über SSH an Remote-Hosts weiter. Dies bedeutet, dass alle Ihre Verbindungen durch Verschlüsselung gesichert sind. Es bietet eine einfache Möglichkeit, ein Basic einzurichten VPN ((Virtuelles privates Netzwerk), nützlich für die Verbindung zu privaten Netzwerken über unsichere öffentliche Netzwerke wie das Internet.

Sie können auch verwendet werden, um lokale Server hinter NATs und Firewalls über sichere Tunnel, wie in ngrok implementiert, dem Internet zugänglich zu machen.

SSH Sitzungen ermöglichen standardmäßig das Tunneln von Netzwerkverbindungen, und es gibt drei Arten der SSH-Portweiterleitung: lokal, Fernbedienung und dynamisch Port-Weiterleitung.

In diesem Artikel wird gezeigt, wie Sie schnell und einfach ein SSH-Tunneling oder die verschiedenen Arten der Portweiterleitung unter Linux einrichten.

Testumgebung:

Für den Zweck dieses Artikels verwenden wir das folgende Setup:

  1. Lokaler Host: 192.168.43.31
  2. Remote-Host:: Linode CentOS 7 VPS mit Hostname server1.example.com.


Normalerweise können Sie mit SSH wie folgt eine sichere Verbindung zu einem Remote-Server herstellen. In diesem Beispiel habe ich die kennwortlose SSH-Anmeldung zwischen meinem lokalen und dem Remote-Host konfiguriert, sodass nicht nach dem Kennwort des Benutzeradministrators gefragt wurde.

$ ssh [email protected]  
Remote-SSH ohne Passwort verbinden
Remote-SSH ohne Passwort verbinden

Lokale SSH-Portweiterleitung

Mit dieser Art der Portweiterleitung können Sie eine Verbindung von Ihrem lokalen Computer zu einem Remote-Server herstellen. Angenommen, Sie befinden sich hinter einer restriktiven Firewall oder werden von einer ausgehenden Firewall daran gehindert, auf eine am Port ausgeführte Anwendung zuzugreifen 3000 auf Ihrem Remote-Server.

Sie können einen lokalen Port weiterleiten (z 8080), mit denen Sie dann wie folgt lokal auf die Anwendung zugreifen können. Das -L Das Flag definiert den an den Remote-Host und den Remote-Port weitergeleiteten Port.

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

Hinzufügen der -N Flag bedeutet, dass Sie keinen Remote-Befehl ausführen. In diesem Fall erhalten Sie keine Shell.

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

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

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

Öffnen Sie jetzt auf Ihrem lokalen Computer einen Browser, anstatt über die Adresse auf die Remote-Anwendung zuzugreifen server1.example.com:3000können Sie einfach verwenden localhost:8080 oder 192.168.43.31:8080, wie im folgenden Screenshot gezeigt.

Greifen Sie über die lokale SSH-Portweiterleitung auf eine Remote-App zu
Greifen Sie über die lokale SSH-Portweiterleitung auf eine Remote-App zu

Remote-SSH-Portweiterleitung

Mit der Remote-Port-Weiterleitung können Sie eine Verbindung von Ihrem Remote-Computer zum lokalen Computer herstellen. Standardmäßig erlaubt SSH keine Remote-Port-Weiterleitung. Sie können dies mit dem aktivieren GatewayPorts Direktive in Ihrer SSHD-Hauptkonfigurationsdatei / etc / ssh / sshd_config auf dem Remote-Host.

Öffnen Sie die Datei zur Bearbeitung mit Ihrem bevorzugten Befehlszeileneditor.

$ sudo vim /etc/ssh/sshd_config 

Suchen Sie nach der erforderlichen Direktive, kommentieren Sie sie aus und setzen Sie ihren Wert auf yes, wie im Screenshot gezeigt.

GatewayPorts yes
Aktivieren Sie die Remote-SSH-Portweiterleitung
Aktivieren Sie die Remote-SSH-Portweiterleitung

Speichern Sie die Änderungen und beenden Sie sie. Als Nächstes müssen Sie sshd neu starten, um die zuletzt vorgenommenen Änderungen zu übernehmen.

$ sudo systemctl restart sshd
OR
$ sudo service sshd restart 

Führen Sie als Nächstes den folgenden Befehl aus, um den Port weiterzuleiten 5000 auf dem Remote-Computer zu portieren 3000 auf dem lokalen Computer.

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

Sobald Sie diese Tunnelmethode verstanden haben, können Sie einen lokalen Entwicklungsserver, insbesondere hinter NATs und Firewalls, einfach und sicher über sichere Tunnel für das Internet verfügbar machen. Tunnel wie Ngrok, Pagekite, localtunnel und viele andere arbeiten auf ähnliche Weise.

Dynamische SSH-Portweiterleitung

Dies ist die dritte Art der Portweiterleitung. nicht wie lokal und Fernbedienung Portweiterleitung, die die Kommunikation mit einem einzelnen Port ermöglicht, ermöglicht eine vollständige Palette von TCP-Kommunikationen über eine Reihe von Ports. Die dynamische Portweiterleitung richtet Ihren Computer als ein SOCKS-Proxyserver die auf Port hört 1080, standardmäßig.

Für Starter, Socken ist ein Internetprotokoll, das definiert, wie ein Client über einen Proxyserver (in diesem Fall SSH) eine Verbindung zu einem Server herstellen kann. Sie können die dynamische Portweiterleitung mit aktivieren -D Möglichkeit.

Der folgende Befehl startet einen SOCKS-Proxy am Port 1080 So können Sie eine Verbindung zum Remote-Host herstellen.

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

Von nun an können Sie Anwendungen auf Ihrem Computer dazu bringen, diesen SSH-Proxyserver zu verwenden, indem Sie ihre Einstellungen bearbeiten und für die Verwendung konfigurieren, um eine Verbindung zu Ihrem Remote-Server herzustellen. Notiere dass der Socken Der Proxy funktioniert nicht mehr, nachdem Sie Ihre SSH-Sitzung geschlossen haben.

Lesen Sie auch: 5 Möglichkeiten, um Remote-SSH-Sitzungen nach dem Schließen von SSH am Laufen zu halten

Zusammenfassung

In diesem Artikel haben wir die verschiedenen Arten der Portweiterleitung von einem Computer zu einem anderen erläutert, um den Datenverkehr über die sichere SSH-Verbindung zu tunneln. Dies ist eine der sehr vielen Anwendungen von SSH. Sie können Ihre Stimme zu diesem Handbuch über das unten stehende Feedback-Formular hinzufügen.

Beachtung: Die Weiterleitung von SSH-Ports hat einige erhebliche Nachteile. Sie kann missbraucht werden: Sie kann zur Umgehung von Netzwerküberwachungs- und Verkehrsfilterprogrammen (oder Firewalls) verwendet werden. Angreifer können es für böswillige Aktivitäten verwenden. In unserem nächsten Artikel zeigen wir, wie Sie die lokale SSH-Portweiterleitung deaktivieren. In Verbindung bleiben!

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *