Aktivieren der SSH-Portweiterleitung unter Linux
Die meisten Linux-Benutzer sind mit dem SSH-Protokoll vertraut, da es die Fernverwaltung jedes Linux-Systems ermöglicht. Es wird auch häufig für SFTP verwendet, um Dateien herunterzuladen oder hochzuladen. SSH ist als sehr sicheres Protokoll bekannt, da es den Datenverkehr von Ende zu Ende verschlüsselt. Aber die verschlüsselten Tunnel, die es erstellt, sind tatsächlich sehr vielseitig und können für mehr als nur die Remote-Serververwaltung oder Dateiübertragung verwendet werden.
SSH-Portweiterleitung kann verwendet werden, um den Datenverkehr zwischen zwei Systemen für so ziemlich jedes Protokoll zu verschlüsseln. Dies wird erreicht, indem ein sicherer Tunnel erstellt und dann der Datenverkehr eines anderen Protokolls durch diesen Tunnel geleitet wird. Prinzipiell funktioniert es sehr ähnlich wie ein VPN.
In dieser Anleitung gehen wir die Schritt-für-Schritt-Anleitung durch, um Ihnen zu zeigen, wie Sie die SSH-Portweiterleitung verwenden, um einen sicheren Tunnel für eine andere Anwendung zu erstellen. Als Beispiel erstellen wir eine Portweiterleitung für das Telnet-Protokoll, die normalerweise vermieden wird, da sie Daten im Klartext überträgt. Dadurch wird das Protokoll gesichert und die Verwendung ist sicher.
In diesem Tutorial lernen Sie:
- So verwenden Sie die SSH-Portweiterleitung
- So erstellen Sie einen persistenten SSH-Tunnel
Erstellen eines SSH-Tunnels über Portweiterleitung unter Linux
So verwenden Sie die SSH-Portweiterleitung
Bei der SSH-Portweiterleitung wird der Datenverkehr von einem bestimmten Port auf Ihrem lokalen System an einen Port auf dem Remote-System weitergeleitet. Die beiden Ports müssen nicht identisch sein. Als Beispiel leiten wir Port 4500 auf unserem lokalen System an Port 23 (Telnet) auf einem Remote-System weiter.
Sie müssen dies nicht als Root tun. Da wir einen Port höher als 1024 verwenden, kann ein normaler Benutzer diese Portweiterleitungsverbindung erstellen. Beachten Sie, dass ein Tunnel nur dann eingerichtet wird, wenn die SSH-Verbindung ausgeführt wird.
ssh -L 4500:127.0.0.1:23 user@linuxconfig.org
Schauen wir uns an, was in diesem Befehl vor sich geht.
-L– Diese Option teilt SSH mit, dass wir einen Tunnel über die Portweiterleitung erstellen möchten.4500– Der Port auf unserem lokalen System, über den wir Datenverkehr senden.127.0.0.1– Dies ist die Loopback-Adresse unseres lokalen Systems.23– Der Remote-Port, mit dem wir eine Verbindung herstellen möchten.user– Der Benutzername für die Anmeldung bei SSH auf dem Remote-Server.linuxconfig.org– Die IP-Adresse oder der Domainname des Remote-Servers.
Zu diesem Zeitpunkt wird jede Verbindung, die Port 4500 auf dem localhost verwendet, auf den Remote-Port 23 umgeleitet.
Erstellen des SSH-Tunnels vom lokalen Port 4500 zum Remote-Port 23
Im obigen Screenshot haben wir erfolgreich einen Tunnel zum Remote-Server erstellt. Wie Sie sehen können, sieht es aus wie ein typischer SSH-Login. Aber jetzt können wir auf unserem lokalen System auf den Telnet-Dienst des Remote-Systems zugreifen, indem wir den Datenverkehr über Port 4500 leiten.
telnet 127.0.0.1 4500
Wir werden ein neues Terminal öffnen und dies auf unserem Testsystem ausprobieren, während wir das andere Terminal offen lassen, damit es unseren SSH-Tunnel beibehält.
Verwenden von Telnet zum Herstellen einer Verbindung mit einem Remote-Server und Weiterleiten des Datenverkehrs über SSH aus Sicherheitsgründen
Wie Sie sehen können, haben wir jetzt eine Telnet-Sitzung mit dem Remote-Server geöffnet, aber es handelt sich um eine gesicherte Verbindung, da sie über den vorhandenen SSH-Tunnel gesendet wird, den wir im anderen Terminal eingerichtet haben.
Das ist alles, was dazu gehört. Sie können SSH-Tunnel für jede Art von Datenverkehr verwenden. Beachten Sie, dass Sie Ihre Anwendung auf Ihre localhost-Adresse (127.0.0.1) und die Portnummer verweisen sollten, die Sie für den SSH-Tunnel konfigurieren.
So erstellen Sie persistente SSH-Tunnel
Sie haben vielleicht bemerkt, dass es für langfristige SSH-Tunnel ziemlich unpraktisch ist, dass sie sich auf unsere geöffnete SSH-Verbindung verlassen. Wenn es eine vorübergehende Latenz gibt oder das SSH-Terminal einfach seine Zeitüberschreitung erreicht, wird der Tunnel zusammen mit der SSH-Sitzung heruntergefahren.
Sie können das Dienstprogramm autossh mit dem Paketmanager Ihres Systems installieren, wenn Sie einen Tunnel erstellen möchten, der sich automatisch wieder hochfährt, wenn er ausfällt. Sie müssen RSA-Schlüssel für passwortloses SSH konfiguriert haben, damit diese Methode funktioniert.
Die Syntax zum Erstellen eines persistenten Tunnels ist im Grunde identisch mit der normalen SSH-Methode.
autossh -L 4500:127.0.0.1:23 user@linuxconfig.org
Abschließende Gedanken
In dieser Anleitung haben wir gesehen, wie man die SSH-Portweiterleitung unter Linux verwendet. Auf diese Weise kann ein Benutzer einen sicheren SSH-Tunnel erstellen, der von anderen Anwendungen und Protokollen für verschlüsselte Verbindungen zu Remote-Servern verwendet werden kann. Als Beispiel haben wir gesehen, wie das Telnet-Protokoll durch SSH-Portweiterleitung gesichert werden kann. Wir haben auch gelernt, wie man SSH-Tunnel mit dem Dienstprogramm autossh persistent hält.

