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
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:
|
<<: JavaScript-Canvas zum Erzielen eines Regentropfeneffekts
>>: Zusammenfassung der Wissenspunkte zum MySQL ALTER-Befehl
Inhaltsverzeichnis Überblick 1. Test auf Nullwert...
Inhaltsverzeichnis Was ist JSONP JSONP-Prinzip JS...
Einführung in XHTML-Tags <br />Vielleicht is...
1. [admin@JD ~]$ cd opt #Geben Sie opt im Stammve...
Im Bereich Design gibt es jedes Jahr unterschiedl...
Es gibt viele Artikel zur SSH-Serverkonfiguration...
1. Paradigma Der englische Name des Paradigmas la...
In diesem Artikel finden Sie das grafische Tutori...
Das Dokument ist schon seit einiger Zeit geschrie...
Szenario: Beim Starten von Tomcat in Docker (Vers...
Kerncode -- Im Folgenden werde ich die Implementi...
Native js realisiert den Karusselleffekt (nahtlos...
HTML Code: Code kopieren Der Code lautet wie folgt...
1. Datenbankdaten simulieren 1-1 Datenbank- und T...
Geben Sie den Ordner /etc/yum.repos.d/ ein Erstel...