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

Detaillierte Erklärung von react setState

Inhaltsverzeichnis Ist setState synchron oder asy...

Detaillierte Erklärung der HTML-Formularelemente (Teil 1)

HTML-Formulare werden verwendet, um verschiedene ...

Designtheorie: Menschenorientiertes Designkonzept

<br />Als sich das Denken in Ost und West sp...

Detaillierte Erklärung der Verwendung und Funktion des MySQL-Cursors

[Verwendung und Funktion des MySQL-Cursors] Beisp...

So stellen Sie Go-Webanwendungen mit Docker bereit

Inhaltsverzeichnis Warum brauchen wir Docker? Bei...

Eine kurze Einführung in MySQL-Funktionen

Inhaltsverzeichnis 1. Mathematische Funktionen 2....

Verwendung der Linux Dynamic Link Library

Im Vergleich zu gewöhnlichen Programmen haben dyn...

In wenigen Schritten zum einfachen Aufbau eines Windows-SSH-Servers

Das hier erwähnte SSH heißt Security Shell. Ich g...

Abfrageprozess und Optimierungsmethode der (JOIN/ORDER BY)-Anweisung in MySQL

Die EXPLAIN-Anweisung wird im MySQL-Abfrageanweis...

Linux: Kein Speicherplatz mehr auf Gerät 500 – Fehler aufgrund voller Inodes

Was ist ein Inode? Um Inode zu verstehen, müssen ...

Beheben Sie den Nginx-Fehler „504 Gateway Time-out“

Studenten, die Websites erstellen, stellen häufig...

Erstellen eines FastDFS-Dateisystems in Docker (Tutorial mit mehreren Images)

Inhaltsverzeichnis Über FastDFS 1. Suche nach Bil...

MySQL 8.0.20 Installations-Tutorial mit Bildern und Text (Windows 64-Bit)

1: Download von der offiziellen MySQL-Website htt...