Sicherheit

So erstellen Sie einen SSH-Tunnel unter Linux mit Mole

So erstellen Sie einen SSH-Tunnel unter Linux mit Mole

In diesem Blogbeitrag zeige ich Ihnen, wie Sie mit einem netten Tool namens Mole ganz einfach einen SSH-Tunnel zu einem Remote-Linux-Server erstellen. Ich habe gelernt, dass einer der großen Nachteile von SSH-Tunneln die Komplexität ihrer Erstellung, die damit verbundenen Befehle und weniger Dokumentation zu diesem Thema ist. Für Endnutzer kann es schwierig sein, SSH-Befehle zu beherrschen, aber das Cheatsheet "Meine SSH-Befehle" kann Ihnen dabei helfen, mit SSH schneller zu werden.

Wahrnehmung von Open Source

Die Open-Source-Community war sehr hilfreich, um die Wahrnehmung von Linux und seinen unzähligen Tools zu ändern. Bei fairer Kritik wird Linux für Geeks nicht mehr als "das Ding" angesehen. Heutzutage können Benutzer mit wenig technischer Erfahrung es verwenden und lernen, während sie die Dinge ein wenig kaputt machen, lol!

Einführung in Maulwurf

Das Tool, das wir zum Erstellen eines SSH-Tunnels unter Linux verwenden, ist Mole. Mole ist eine CLI-Anwendung zum Erstellen von SSH-Tunneln, die einen lokalen Port über einen SSH-Server an einen Remote-Endpunkt weiterleitet.

Mole hilft Ihnen beim Zugriff auf Computer und Dienste, die von einer Firewall blockiert werden, solange der Benutzer SSH-Zugriff auf einen Computer mit Zugriff auf den Zielcomputer oder Dienst hat.

+----------+ +----------+ +----------+ | | | | | | | | | Firewall | | | | | | | | | | Lokal | Tunnel +----------+ Tunnel | | | Computer |--------------------------------| Server | | | +------------+ | | | | | | | | | | | Firewall | | | | | | | | | +----------+ +----------+ +----------+ | | | Tunnel | | +------------+ | | | | | | | | | Fernbedienung | | Computer | | | | | | | +----------+

Mit Mole können Sie mit Hilfe der Portweiterleitung auch auf einen Dienst zugreifen, der nur auf einer lokalen Adresse lauscht. Weitere Informationen zum Erstellen einer Portweiterleitung auf CentOS 7 mit Firewalld.

Beachten Sie auch, dass Server und Remote Computer könnte möglicherweise dieselbe Maschine sein.

+-------------------+ +--------------------+ | Lokaler Computer | | Remote / Server | | | | | | | | | | (172.17.0.10: | Tunnel | | | 50001) |-------------| (172.17.0.100:22) | | Tunnel-Client | | Tunnelserver | | | | | | | | | Hafen | | | Hafen | | | vorwärts | | | vorwärts | | | | | | | | (127.0.0.1:3306) | | (127.0.0.1:50000) | | lokale Adresse | | | | | | | | lokal | | | | | conn. | | | | | | | | | (127.0.0.1:3306) | | | | entfernte Adresse | | | | +----+ | | | | | DB | | | | | +----+ | +-------------------+ +--------------------+

Hervorgehobene Eigenschaften von Maulwurf

So installieren Sie Mole unter Linux / macOS

Die Installation von Mole unter Linux erfolgt über ein Installationsskript, das mit heruntergeladen werden kann Locken

curl -O https://raw.githubusercontent.com/davrodpin/mole/master/tools/install.Sch

Sobald das Skript heruntergeladen wurde, machen Sie es ausführbar und installieren Sie es

chmod +x installieren.sh sudo ./Installieren.Sch

Dieses Skript installiert Maulwurf unter,/usr/local/bin aber es benötigt Administratorrechte, um die Datei bereitzustellen. Möglicherweise müssen Sie Ihr Sudo-Passwort eingeben.

Sie können den Speicherort und die Version der Datei mit den folgenden Befehlen bestätigen:

$ welcher Maulwurf /usr/local/bin/mole $ Maulwurf --version Maulwurf 0.2.0

Um die Hilfeseite anzuzeigen, verwenden Sie die --Hilfe Möglichkeit

$ mole --help Verwendung: mole [-v] [-local []:] -Fernbedienung []: -Server [@][:] [-Schlüssel ] Maulwurf -alias  [-v] [-lokal []:] -Fernbedienung []: -Server [@][:] [-Schlüssel ] Maulwurf -alias  -Maulwurf löschen -start  mole -help mole -version -alias string Tunnelalias erstellen -delete Tunnelalias löschen (muss mit -alias verwendet werden) -help Alle verfügbaren Optionen auflisten -key string (optional) Serverauthentifizierungsschlüsseldateipfad festlegen -lokaler Wert (optional .) ) Lokale Endpunktadresse festlegen: []: -Remote-Wert Set-Remote-Endpunkt-Adresse: []: -Serverwert setzen Serveradresse: [@][:] -start string Starte einen Tunnel mit einem gegebenen Alias ​​-v (optional) Erhöhe die Ausführlichkeit des Logs -version Zeigt die Version des Maulwurfs an

So verwenden Sie Mole, um einen SSH-Tunnel zu erstellen

Sehen wir uns einige Beispiele an, wie Sie mit Mole einen SSH-Tunnel erstellen

Beispiel 1: Alle unterstützten Optionen angeben

Erstellen Sie einen Tunnel mit den folgenden Details:

Sie müssen Ihren öffentlichen SSH-Schlüssel auf den Remote-SSH-Server kopiert haben, der zum Tunneln verwendet wird

$ ssh-copy-id -i ~/.ssh/test_rsa.Kneipe [E-Mail geschützt]

Importieren Sie den Fingerabdruck des entfernten SSH-Servers, indem Sie eine SSH-Verbindung zum Server ausführen

$ ssh-i ~/.ssh/test_rsa.Kneipe [E-Mail geschützt]

Erstellen Sie nun einen Tunnel:

$ Maulwurf -alias tunnel1 -v -local 127.0.0.1:8080 \ -Fernbedienung 192.168.18.50:80 \ -server [email protected] \ -key ~/.ssh/test_rsa

Um den Tunnel zu starten, verwenden Sie

$ Maulwurf -Tunnel starten1

Beispielausgabe

$ Maulwurf -start tunnel1 DEBU[0000] cli options options="[local=127.0.0.1:8080, Fernbedienung=192.168.18.50:80, [email protected], key=/home/jmutai/.ssh/test_rsa, verbose=true, help=false, version=false]" DEBU[0000] Server: [name=192.168.18.51, Adresse=192.168.18.51:22, Benutzer=Landstreicher, Schlüssel=/home/jmutai/.ssh/test_rsa] DEBU[0000] Tunnel: [local:127.0.0.1:8080, Server:192.168.18.51:22, Fernbedienung:192.168.18.50:80] INFO[0000] Abhören der lokalen Adresse local_address="127.0.0.1:8080" DEBU[0017] neue Verbindungsadresse="127.0.0.1:36908" DEBU[0017] bekannte_hosts-Datei verwendet: /root/.ssh/known_hosts DEBU[0019] neue Verbindung zum Server aufgebaut server="[name=192 .".168.18.51, Adresse=192.168.18.51:22, Benutzer=Landstreicher, Schlüssel=/home/jmutai/.ssh/test_rsa]" DEBU[0024] neue Verbindung zur entfernten Fernbedienung hergestellt="192.168.18.50:80" server="[name=192.168.18.51, Adresse=192.168.18.51:22, Benutzer=Landstreicher, Schlüssel=/home/jmutai/.ssh/test_rsa]" DEBU[0024] neue Verbindungsadresse="127.0.0.1:36910" DEBU[0024] bekannte_hosts-Datei verwendet: /root/.ssh/known_hosts DEBU[0026] neue Verbindung zum Server aufgebaut server="[name=192 .".168.18.51, Adresse=192.168.18.51:22, Benutzer=Landstreicher, Schlüssel=/home/jmutai/.ssh/test_rsa]" DEBU[0029] neue Verbindung zur entfernten Fernbedienung hergestellt="192.168.18.50:80" server="[name=192.168.18.51, Adresse=192.168.18.51:22, Benutzer=Landstreicher, Schlüssel=/home/jmutai/.ssh/test_rsa]"

Beispiel 2: Verwenden Sie die ssh-Konfigurationsdatei, um einen bestimmten Serverhost zu suchen

Sie können die SSH-Konfiguration für den Remote-SSH-Server hinzufügen zu ~/.ssh/config, dann ruf seinen Namen, während du Maulwurf läufst.

$ vim ~/.ssh/config Host rserver1 Hostname 192.168.18.51 Benutzer Vagabund Port 22 IdentityFile ~/.ssh/test_rsa

Dann baue einen Tunnel

$ Maulwurf -alias tunnel1 -v -local 127.0.0.1:8080 \ -Fernbedienung 192.168.18.50:80 \ -server rserver1

Sie können auch verwenden :8080 Anstatt von 127.0.0.1:8080

$ mole -alias tunnel1 -v -local :8080 \ -remote 192.168.18.50:80 \ -server rserver1 $ mole -start tunnel1

Gleiches für Remote-Server-Port

$ Maulwurf -alias tunnel1 -v -local 127.0.0.1:8080 \ -remote :80 \ -server rserver1

Beispiel 3: Maulwurf willkürlich den lokalen Endpunkt auswählen

Sie sollten bemerkt haben, dass wir den lokalen Hafen angegeben haben 8080 für Tunnelverkehr mit Option zu verwenden -lokal 127.0.0.1:8080. Mole kann ungenutzte TCP-Ports zufällig für Sie auswählen.

Dazu Beispiel wird sich ändern zu

$ Maulwurf -alias Tunnel1 -Remote 192.168.18.50:80 -server rserver1 $ mole -start tunnel1

Eine lokale Adresse für den Zugriff wird ausgedruckt

INFO Abhören der lokalen Adresse local_address="127.0.0.1:36683"

Bestätigen Sie, dass Sie über den Tunnel auf einen Webserver auf einem Remote-Server zugreifen können.

Um den SSH-Tunnel zu löschen, führen Sie Folgendes aus:

$ Maulwurf -delete -alias tunnel1

Ich hoffe, diese wenigen Beispiele waren hilfreich, um Ihnen beim Erstellen eines SSH-Tunnels zu einem Remote-Server zu helfen, der sich hinter einer Firewall befinden könnte. Du kannst auf Github zu diesem Projekt beitragen.

So spielen Sie Windows-Spiele auf Ubuntu
In diesem Blogbeitrag behandeln wir das Spielen von Windows-Spielen auf Ubuntu.Linux gewinnt an Bedeutung, wenn es um die Kompatibilität mit Software ...
Die fantastischen Fortschritte im Gaming
Gaming hat in den letzten Jahrzehnten sicherlich einen langen Weg zurückgelegt, und wahrscheinlich mehr denn je in den letzten fünf Jahren. Die Techno...
Erstaunliche Technologie, die die 100-Milliarden-Dollar-iGaming-Industrie der Welt antreibt
iGaming ist auf dem Vormarsch, eine globale 100-Milliarden-Dollar-Industrie, die immer größer wird. Technologie wird für alle Casinos exponentiell wic...