Drei Möglichkeiten zum Weiterleiten des Linux-SSH-Ports

Drei Möglichkeiten zum Weiterleiten des Linux-SSH-Ports

ssh ist eines der beiden Befehlszeilentools, die ich am häufigsten verwende (das andere ist vim). Mittels SSH kann ich diverse mögliche Probleme remote beheben, ohne persönlich vor Ort sein zu müssen.

Der Hack von TeamViewer hatte in letzter Zeit große Auswirkungen, daher dachte ich an eine Intranet-Penetration per Fernsteuerung und natürlich dachte ich, dass auch durch die SSH-Portweiterleitung eine Intranet-Penetration möglich ist. Bei genauerem Nachdenken fiel mir auf, dass der SSH-Tunnel bzw. die Portweiterleitung tatsächlich drei häufig verwendete Netzwerkfunktionen realisiert: Forward-Proxy, Reverse-Proxy und Intranet-Penetration. Noch mehr beeindruckten mich seine leistungsstarken Funktionen und die Benutzerfreundlichkeit.

ssh verfügt über drei Portweiterleitungsmodi, die in diesem Artikel kurz vorgestellt werden.

Lokale Weiterleitung

Bei der lokalen Portweiterleitung wird der Datenverkehr von einem Port auf dem lokalen Host an einen angegebenen Port auf dem Remote-Host weitergeleitet. Die Befehlszeilensyntax lautet: -L [Bindungsadresse]:lokaler Port:[Remote-Host]:Remote-Port. „-L“ ist der erste Buchstabe von „local“. Ebenso ist „-R“ für Remote-Weiterleitung der erste Buchstabe von „remote“ und „-D“ für dynamische Weiterleitung der erste Buchstabe von „dynamic“. Sie sind leicht zu merken.

Sehen wir uns ein Beispiel an, um das Anwendungsszenario der lokalen Weiterleitung zu veranschaulichen.

Der Artikel „GUI-Schnittstelle und Remote-Verbindung zur Installation von CentOS 7“ stellt die Installation des VNC-Dienstes und die Aktivierung des Portzugriffs vor. In der Praxis werden die exponierten 59xx-Ports täglich ständig von automatisierten Skripten angegriffen. Wenn Ihre VNC- und Login-Benutzer schwache Passwörter oder Wörterbuchpasswörter verwenden, ist die Sicherheit des Hosts stark gefährdet. Wie können Sie sich in dieser Situation schützen?

Eine einfache und sichere Schutzmethode besteht darin, den externen Zugriff auf den Port mithilfe von iptables/firewalld zu sperren und den Port über einen SSH-Tunnel weiterzuleiten, wenn eine Verbindung erforderlich ist:

ssh -L5901:5901 Benutzername@Host

Dieser Befehl leitet den lokalen Port 5901 über den SSH-Tunnel an den Port 5901 des Remote-Hosts weiter. Geben Sie bei einer Remote-Verbindung localhost oder 127.0.0.1 und Port 5901 ein, um eine Verbindung zum Port 5901 des Remote-Hosts herzustellen. Durch die lokale Weiterleitung von iptables und ssh kann erreicht werden, dass sich andere nicht verbinden können und nur Sie darauf zugreifen können.

Es ist zu beachten, dass sich der „Remote-Host“ in der Option „-L“ nicht speziell auf die verbundene Maschine bezieht (Standard ist die verbundene Maschine), sondern jeder beliebige Host sein kann. Sie können beispielsweise den Datenverkehr auf Port 8080 Ihres lokalen Computers an Port 80 von facebook.com weiterleiten:

ssh -L8080:facebook.com:80 Benutzername@Host

Remote-Weiterleitung

Bei der Remote-Port-Weiterleitung wird ein Port auf einem Remote-Host an einen angegebenen Port auf dem Remote-Host weitergeleitet. Die Befehlszeilensyntax lautet: -R [Bind-Adresse]:Port:[Lokaler Host]:Lokaler Port.

Die am häufigsten genutzte Funktion der Remote-Weiterleitung ist die Intranet-Penetration. Wenn ein Host mit einer öffentlichen IP vorhanden ist, ist es mit Hilfe der Remote-Weiterleitung des SSH-Tunnels möglich, in das Intranet einzudringen, um vom externen Netzwerk aus auf Intranet-Ressourcen zuzugreifen. Es ist zu beachten, dass die SSH-Remote-Weiterleitung standardmäßig nur an die lokale Adresse des Remote-Hosts, also 127.0.0.1, gebunden werden kann. Wenn Sie Verbindungen von anderen Hosts überwachen möchten, müssen Sie die SSH-Konfiguration des Remote-Hosts ändern, „GatewayPorts“ auf „Ja“ ändern und SSH neu starten, damit die Änderungen wirksam werden.

Ein Beispiel für die Weiterleitung von Datenverkehr vom Remote-Port 8080 zum lokalen Port 80web:

ssh -R0.0.0.0:8080:80 Benutzername@Host

Durch Remote-Weiterleitung entspricht der Zugriff auf Port 8080 des öffentlichen IP-Hosts dem Zugriff auf Port 80 des Intranet-Webhosts, wodurch eine Intranet-Penetration erreicht wird.

Dynamische Weiterleitung

Unabhängig davon, ob es sich um eine lokale oder Remote-Weiterleitung handelt, müssen Sie die Ports der lokalen und Remote-Hosts angeben. Die dynamische Portweiterleitung hebt diese Einschränkung auf und bindet nur den lokalen Port. Der Remote-Host und -Port werden durch die initiierte Anfrage bestimmt. Die Syntax für die dynamische Weiterleitung lautet: „-D bind_address:port“, ein Weiterleitungsbeispiel:

ssh -D 8080 Benutzername@Host

Dieser Befehl ermöglicht es SSH, den lokalen Port 8080 abzuhören. Der gesamte über Port 8080 fließende Datenverkehr wird vom Remote-Server über den SSH-Tunnel angefordert, wodurch der Zweck erreicht wird, blockierte Ressourcen abzurufen und die wahre Identität zu verbergen.

Die dynamische Weiterleitung realisiert tatsächlich die Weiterleitungsproxyfunktion und kann daher für den wissenschaftlichen Zugriff auf das Internet verwendet werden. Die lokale Weiterleitung kann auch als Weiterleitungsproxy verwendet werden, da das Weiterleiten von Host und Port jeder Anforderung jedoch umständlich ist, wird sie in der Praxis nicht verwendet.

andere

  1. Aus der Sicht des Benutzers ist die lokale Weiterleitung ein Forward-Proxy. Aus der Sicht des Ressourcenanbieters ist die lokale Weiterleitung ein Reverse-Proxy.
  2. Wenn die SSH-Verbindung getrennt wird, ist die Remote-Weiterleitung/Intranet-Penetration ungültig. Wenn Sie möchten, dass die Remote-Weiterleitung immer wirksam ist, benötigen Sie die SSH-Keep-Alive-Technologie. Es wird empfohlen, Lösungen wie FRP zu verwenden, die sich auf die Intranet-Penetration konzentrieren.
  3. Obwohl der Datenverkehr im SSH-Tunnel verschlüsselt ist, kann die Firewall den im SSH-Tunnel übertragenen Datenverkehr intelligent identifizieren, sodass dieser bei der Verwendung für den wissenschaftlichen Internetzugriff leicht gestört werden kann.
  4. Wenn lediglich eine Portweiterleitung durchgeführt werden soll, wird der obige Befehl in der Praxis häufig in Verbindung mit der Option „-NT -f“ verwendet. Die Option „-f“ stellt den Befehl zur Ausführung in den Hintergrund und zum Trennen der Verbindung ist der Kill-Befehl erforderlich.
  5. Aus Proxy-Sicht ist SSH-Tunneling ineffizient und es wird dedizierte Software empfohlen.
  6. Der Datenverkehr des SSH-Tunnels ist verschlüsselt und aus Sicherheitssicht sehr zuverlässig.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • SSH-Portweiterleitung zur Erzielung einer Intranet-Penetration
  • SSH-Portweiterleitung, lokale Portweiterleitung, Remote-Portweiterleitung, dynamische Portweiterleitungsdetails
  • Detaillierte Erklärung zur SSH-Remote-Anmeldung und Portweiterleitung
  • Was ist SSH-Portweiterleitung? Was nützt das?

<<:  JavaScript-Canvas zum Erzielen eines Regentropfeneffekts

>>:  Zusammenfassung der Wissenspunkte zum MySQL ALTER-Befehl

Artikel empfehlen

Verwenden Sie in JS nicht mehr überall Operatoren für absolute Gleichheit.

Inhaltsverzeichnis Überblick 1. Test auf Nullwert...

Verstehen Sie die Prinzipien und Anwendungen von JSONP in einem Artikel

Inhaltsverzeichnis Was ist JSONP JSONP-Prinzip JS...

XHTML-Erste-Schritte-Tutorial: XHTML-Tags

Einführung in XHTML-Tags <br />Vielleicht is...

7 coole dynamische Website-Designs zur Inspiration

Im Bereich Design gibt es jedes Jahr unterschiedl...

So zeigen Sie Linux-SSH-Dienstinformationen und den Ausführungsstatus an

Es gibt viele Artikel zur SSH-Serverkonfiguration...

Detaillierte Erklärung der Verwendung des MySQL-Paradigmas

1. Paradigma Der englische Name des Paradigmas la...

MySQL verwendet Variablen, um verschiedene Sortierungen zu implementieren

Kerncode -- Im Folgenden werde ich die Implementi...

Natives JS zum Erzielen eines nahtlosen Karusselleffekts

Native js realisiert den Karusselleffekt (nahtlos...

Tabelle td Bild horizontal und vertikal zentriert Code

HTML Code: Code kopieren Der Code lautet wie folgt...

Implementierung von MySQL-indexbasierten Stresstests

1. Datenbankdaten simulieren 1-1 Datenbank- und T...

Tutorial zur Installation von RabbitMQ mit Yum auf CentOS8

Geben Sie den Ordner /etc/yum.repos.d/ ein Erstel...