SSH-Portweiterleitung zur Erzielung einer Intranet-Penetration

SSH-Portweiterleitung zur Erzielung einer Intranet-Penetration

Die Maschinen in unserem LAN können auf das externe Netzwerk zugreifen, aber das externe Netzwerk kann nicht auf das interne Netzwerk zugreifen. Da die Adresse des externen Netzwerks ermittelt werden kann, wenn das interne Netzwerk auf das Internet zugreift, kann das externe Netzwerk die spezifische Adresse innerhalb unseres lokalen Netzwerks nicht ermitteln. (IP-Adressen sind begrenzt) Wenn wir diese Verbindung beim Zugriff auf das externe Netzwerk offen halten, entspricht diese Verbindung dem Bau einer Straße, sodass interne Netzwerkdaten ausgehen und externe Netzwerkdaten eingehen können. SSH verwendet auch diese Methode.

Verwenden Sie den Befehl ssh, um eine Verbindung zum öffentlichen Netzwerkserver herzustellen

1. Bearbeiten Sie zunächst die SSHD-Konfigurationsdatei auf dem externen Server

vim /etc/ssh/sshd_config
#Schalten Sie den GatewayPorts-Schalter ein GatewayPorts yes
Starten Sie den SSHD-Dienst neu, damit die Änderungen wirksam werden (die Befehle können je nach Linux-Version unterschiedlich sein).
systemctl startet sshd neu 

2. Befehle

ssh -NTf -R <lokaler Host>:<lokaler Port>:<Remote-Host>:<Remote-Port> Benutzer@Host

local-host kann weggelassen werden. Beispiel: ssh -NTf -R 8888:127.0.0.1:8080 root@host

3. Parameterbeschreibung

-C aktiviert die Komprimierung von Daten
-f Im Hintergrund ausführen
-N bedeutet, dass nur eine Verbindung zum Remote-Host hergestellt wird und keine Remote-Shell geöffnet wird.
-R Port an Remote-Server binden, Reverse-Proxy
-L Port an lokalen Client binden, Proxy weiterleiten
-T Dieser Verbindung kein TTY zuweisen
-NT bedeutet, dass diese SSH-Verbindung nur zum Übertragen von Daten verwendet wird und keine Remote-Operationen durchführt

Halten Sie die SSH-Verbindung offen

Wenn wir zum Herstellen einer Verbindung mit dem Server SSH verwenden, wird die Verbindung normalerweise geschlossen, wenn über einen längeren Zeitraum keine Aktion ausgeführt wird.

Methode 1: Einrichten des Clients

1) Einstellungen auf Benutzerebene

vim ~/.ssh/config (wenn keine Konfiguration vorhanden ist, erstellen Sie eine)

2) Globale Einstellungen

/etc/ssh/ssh_config

Wählen Sie einfach einen davon aus und fügen Sie die folgenden Parameter hinzu

#Sende alle 60 Sekunden ein leeres Paket an den Server ServerAliveInterval 60
#Wenn mehr als zwei erfolglose Versuche unternommen werden, trennen Sie ServerAliveCountMax 2
#Beenden nach fehlgeschlagener Weiterleitung, um die Wiederherstellung der Verbindung zu ermöglichen ExitOnForwardFailure yes

Temporäres Schreibverfahren (empfohlen, hat keine Auswirkungen auf andere)

ssh -o ServerAliveInterval=30 root@host
ssh -NTf -R 8888:127.0.0.1:8080 root@host -o ServerAliveInterval=30 -o ServerAliveCountMax=2

Methode 2: Einrichten des Servers

vim /etc/ssh/sshd_config
#Alle 30 Sekunden sendet der Server einen Heartbeat an den Client ClientAliveInterval 30
#Nach 3 Heartbeats ohne Antwort gilt der Client als getrennt ClientAliveCountMax 3

Methode 3: Verwenden eines Shell-Skripts

berühren Sie myAutoSSH.sh
Da ich die SSH-Verbindung auf RSA-Passwort-freie Authentifizierung eingestellt habe, erfordert die Logik hier kein Passwort

SSH-Anmeldemethode ohne Passwort

während(1)
Tun
  ssh -NTR <lokaler Host>:<lokaler Port>:<Remote-Host>:<Remote-Port> Benutzer@Host
Erledigt

Um sicherzustellen, dass Sie nach dem Trennen sofort eine Verbindung herstellen können, entfernen Sie den Parameter -f, da es sonst zu einer Endlosschleife kommt.

Methode 4: Autossh verwenden

Sie müssen die Autossh-Software herunterladen. Der Vorgang ist fast der gleiche wie bei direkter Verwendung von SSH

-M ist der Überwachungsport, der überwacht, ob eine Antwort auf den Befehl erfolgt, und uns hilft, die Verbindung aufrechtzuerhalten

autossh -M 5678 -NTR <lokaler Host>:<lokaler Port>:<Remote-Host>:<Remote-Port> Benutzer@Host

Ich lade nicht gern Software herunter. Es ist viel chaotische Software installiert. Ich ändere die Konfiguration auch nicht gern. Ich habe Angst, dass die Änderung die Nutzung durch andere beeinträchtigt. Deshalb verwende ich gern die temporäre Client-Konfigurationsmethode.

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:
  • Drei Möglichkeiten zum Weiterleiten des Linux-SSH-Ports
  • 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?

<<:  Detaillierte Analyse des Diff-Algorithmus in React

>>:  Anleitung zum Zurücksetzen des MySQL/MariaDB-Root-Passworts

Artikel empfehlen

So stellen Sie Ihre erste Anwendung mit Docker bereit

Im vorherigen Artikel haben Sie Docker Desktop in...

Detailliertes Tutorial zur Installation von Hbase 2.3.5 auf Vmware + Ubuntu18.04

Vorwort Im vorherigen Artikel wurde Hadoop instal...

Reagieren Sie auf die Verarbeitung von Fehlergrenzkomponenten

Dies ist der Inhalt von React 16. Es ist nicht di...

CSS erreicht hochadaptiven Vollbildmodus

Beim Schreiben meiner eigenen Demo möchte ich dis...

Ursachen und Lösungen für domänenübergreifende Probleme bei Ajax-Anfragen

Inhaltsverzeichnis 1. Wie entsteht Cross-Domain? ...

Eine kurze Diskussion über HTML-Dokumenttypen und -Kodierung

DOKTYP Doctype wird verwendet, um dem Browser mit...

So verwenden Sie IDEA zum Konfigurieren von Tomcat und Erstellen von JSP-Dateien

Bevor Sie idea zum Schreiben von JSP-Dateien verw...

Analyse der Methode zum Einrichten geplanter Aufgaben in MySQL

Dieser Artikel beschreibt anhand eines Beispiels,...

Nachteile und sinnvolle Verwendung des MySQL-Datenbankindex

Inhaltsverzeichnis Richtige Verwendung von Indize...

Neunundvierzig JavaScript-Tipps und Tricks

Inhaltsverzeichnis 1. Betrieb von js Integer 2. S...

Webprojektentwicklung VUE-Mischungs- und Vererbungsprinzip

Inhaltsverzeichnis Mischen Mixin-Hinweis (doppelt...