FRITZBox Portfreigaben Was sind Portweiterleitungen? Tutorial Deutsch | iDomiX
Inhaltsverzeichnis:
- Lokale Portweiterleitung
- Remote-Port-Weiterleitung
- Dynamische Portweiterleitung
- Richten Sie SSH-Tunneling in Windows ein
- Fazit
SSH-Tunneling oder SSH-Portweiterleitung ist eine Methode zum Herstellen einer verschlüsselten SSH-Verbindung zwischen einem Client und einem Server, über die Service-Ports weitergeleitet werden können.
Die SSH-Weiterleitung ist nützlich, um Netzwerkdaten von Diensten zu transportieren, die ein unverschlüsseltes Protokoll verwenden, z. B. VNC oder FTP, auf geografisch eingeschränkte Inhalte zuzugreifen oder zwischengeschaltete Firewalls zu umgehen. Grundsätzlich können Sie jeden TCP-Port weiterleiten und den Datenverkehr über eine sichere SSH-Verbindung tunneln.
Es gibt drei Arten der SSH-Portweiterleitung:
- Lokale Portweiterleitung. - Leitet eine Verbindung vom Client-Host zum SSH-Server-Host und dann zum Ziel-Host-Port weiter. - Leitet einen Port vom Serverhost an den Clienthost und dann an den Zielhostport weiter. Dynamische Portweiterleitung. - Erstellt einen SOCKS-Proxy-Server, der die Kommunikation über eine Reihe von Ports ermöglicht.
Wir werden darüber sprechen, wie lokale, entfernte und dynamisch verschlüsselte SSH-Tunnel eingerichtet werden.
Lokale Portweiterleitung
Mit der lokalen Portweiterleitung können Sie einen Port auf dem lokalen Computer (SSH-Client) an einen Port auf dem Remote-Computer (SSH-Server) weiterleiten, der dann an einen Port auf dem Zielcomputer weitergeleitet wird.
Bei dieser Art der Weiterleitung überwacht der SSH-Client einen bestimmten Port und tunnelt jede Verbindung zu diesem Port zu dem angegebenen Port auf dem Remote-SSH-Server, der dann eine Verbindung zu einem Port auf dem Zielcomputer herstellt. Der Zielcomputer kann der Remote-SSH-Server oder ein beliebiger anderer Computer sein.
Lokale Portweiterleitung wird meistens verwendet, um eine Verbindung zu einem Remotedienst in einem internen Netzwerk wie einer Datenbank oder einem VNC-Server herzustellen.
Wenn Sie unter Linux, MacOS und anderen Unix-Systemen eine lokale Portweiterleitung erstellen, übergeben Sie die Option
-L
an den
ssh
Client:
ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Folgende Optionen werden verwendet:
-
LOCAL_PORT- Die IP-LOCAL_PORTund die Portnummer des lokalen Computers. WennLOCAL_IPweggelassen wird, bindet der ssh-Client an localhost.DESTINATION:DESTINATION_PORT- Die IP oder der Hostname und der Port desDESTINATION:DESTINATION_PORT.SERVER_IP- Die IP-Adresse des Remote-SSH-Benutzers und des Servers.
Sie können eine beliebige Portnummer größer als
1024
als
LOCAL_PORT
. Ports mit einer Nummer unter
1024
sind privilegierte Ports und können nur von root verwendet werden. Wenn Ihr SSH-Server einen anderen Port als 22
-p
(Standardeinstellung), verwenden Sie die Option
-p
.
Der Zielhostname muss vom SSH-Server auflösbar sein.
db001.host
, Sie haben einen MySQL-Datenbankserver auf der Maschine
db001.host
in einem internen (privaten) Netzwerk an Port 3306, auf den von der Maschine
pub001.host
aus
pub001.host
und Sie möchten mit Ihrem lokalen Maschinen-
mysql
Client eine Verbindung zum Datenbankserver herstellen. Dazu können Sie die Verbindung wie folgt weiterleiten:
ssh -L 3336:db001.host:3306 [email protected]
Sobald Sie den Befehl ausführen, werden Sie aufgefordert, das Remote-SSH-Benutzerkennwort einzugeben. Nach der Eingabe werden Sie am Remote-Server angemeldet und der SSH-Tunnel wird aufgebaut. Es ist eine gute Idee, eine SSH-Schlüssel-basierte Authentifizierung einzurichten und eine Verbindung zum Server herzustellen, ohne ein Kennwort einzugeben.
Wenn Sie nun Ihren lokalen Maschinendatenbank-Client auf
127.0.0.1:3336
verweisen, wird die Verbindung über die Maschine
pub001.host
, die als Zwischenserver fungiert, an den MySQL-Server
pub001.host
weitergeleitet.
Sie können mit einem einzigen ssh-Befehl mehrere Ports an mehrere Ziele weiterleiten. Sie haben beispielsweise einen anderen MySQL-Datenbankserver auf der Maschine
db002.host
und möchten von Ihrem lokalen Client aus, den Sie ausführen würden, eine Verbindung zu beiden Servern herstellen:
ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]
Um eine Verbindung zum zweiten Server herzustellen, würden Sie
127.0.0.1:3337
.
Wenn der Zielhost mit dem SSH-Server identisch ist, können Sie
localhost
verwenden, anstatt die IP-Adresse oder den Hostnamen des Zielhosts anzugeben.
Angenommen, Sie müssen über VNC eine Verbindung zu einem Remotecomputer herstellen, der auf demselben Server ausgeführt wird und von außen nicht zugänglich ist. Der Befehl, den Sie verwenden würden, lautet:
ssh -L 5901:127.0.0.1:5901 -N -f [email protected]
Die Option
-f
weist den Befehl
ssh
an, im Hintergrund ausgeführt zu werden und
-N
keinen Remote-Befehl auszuführen. Wir verwenden
localhost
weil der VNC- und der SSH-Server auf demselben Host ausgeführt werden.
Remote-Port-Weiterleitung
Remote Port Forwarding ist das Gegenteil von Local Port Forwarding. Sie können einen Port auf dem Remote-Computer (SSH-Server) an einen Port auf dem lokalen Computer (SSH-Client) weiterleiten, der dann an einen Port auf dem Zielcomputer weitergeleitet wird.
Bei dieser Art der Weiterleitung überwacht der SSH-Server einen bestimmten Port und tunnelt jede Verbindung zu diesem Port zu dem angegebenen Port auf dem lokalen SSH-Client, der dann eine Verbindung zu einem Port auf dem Zielcomputer herstellt. Der Zielrechner kann der lokale oder ein beliebiger anderer Rechner sein.
Wenn Sie unter Linux, MacOS und anderen Unix-Systemen eine Remote-Port-Weiterleitung erstellen, übergeben Sie die Option
-R
an den
ssh
Client:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Folgende Optionen werden verwendet:
-
REMOTE_PORT- Die IP und die Portnummer auf dem Remote-SSH-Server. Eine leereREMOTEbedeutet, dass der entfernte SSH-Server an alle SchnittstellenREMOTEwird.DESTINATION:DESTINATION_PORT- Die IP oder der Hostname und der Port desDESTINATION:DESTINATION_PORT.SERVER_IP- Die IP-Adresse des Remote-SSH-Benutzers und des Servers.
Lokale Portweiterleitung wird meistens verwendet, um jemandem von außerhalb Zugriff auf einen internen Dienst zu gewähren.
Angenommen, Sie entwickeln eine Webanwendung auf Ihrem lokalen Computer und möchten Ihrem Mitentwickler eine Vorschau anzeigen. Sie haben keine öffentliche IP, sodass der andere Entwickler nicht über das Internet auf die Anwendung zugreifen kann.
ssh -L 8080:127.0.0.1:3000 -N -f [email protected]
Der obige Befehl veranlasst ssh server, Port
8080
abzuhören und den gesamten Datenverkehr von diesem Port zu Ihrem lokalen Computer auf Port
3000
tunneln.
Jetzt kann Ihr Mitentwickler
the_ssh_server_ip:8080
in seinen Browser
the_ssh_server_ip:8080
und eine Vorschau Ihrer großartigen Anwendung
the_ssh_server_ip:8080
.
Dynamische Portweiterleitung
Mithilfe der dynamischen Portweiterleitung können Sie auf dem lokalen Computer (SSH-Client) einen Socket erstellen, der als SOCKS-Proxyserver fungiert. Wenn ein Client eine Verbindung zu diesem Port herstellt, wird die Verbindung an den Remote-Computer (SSH-Server) weitergeleitet, der dann an einen dynamischen Port auf dem Zielcomputer weitergeleitet wird.
Auf diese Weise stellen alle Anwendungen, die den SOCKS-Proxy verwenden, eine Verbindung zum SSH-Server her und der Server leitet den gesamten Datenverkehr an sein tatsächliches Ziel weiter.
Unter Linux, macOS und anderen Unix-Systemen, um eine dynamische Portweiterleitung (SOCKS) zu erstellen, übergeben Sie die Option
-D
an den
ssh
Client:
ssh -D LOCAL_PORT SSH_SERVER
Folgende Optionen werden verwendet:
-
LOCAL_PORT- Die IP-LOCAL_PORTund die Portnummer des lokalen Computers. WennLOCAL_IPweggelassen wird, bindet der ssh-Client an localhost.SERVER_IP- Die IP-Adresse des Remote-SSH-Benutzers und des Servers.
Ein typisches Beispiel für eine dynamische Portweiterleitung ist das Tunneln des Webbrowser-Datenverkehrs über einen SSH-Server.
Der folgende Befehl erstellt einen SOCKS-Tunnel an Port
9090
:
ssh -D 9090 -N -f [email protected]
Sobald das Tunneling eingerichtet ist, können Sie Ihre Anwendung für die Verwendung konfigurieren. In diesem Artikel wird erläutert, wie Sie Firefox und den Google Chrome-Browser für die Verwendung des SOCKS-Proxys konfigurieren.
Die Portweiterleitung muss für jede Anwendung, für die Sie den Datenverkehr tunneln möchten, separat konfiguriert werden.
Richten Sie SSH-Tunneling in Windows ein
Windows-Benutzer können mit dem PuTTY-SSH-Client SSH-Tunnel erstellen. Sie können PuTTY hier herunterladen.
-
Starten Sie Putty und geben Sie die IP-Adresse des SSH-Servers in das Feld
Host name (or IP address)ein.




Ein neues Fenster, in dem Sie nach Ihrem Benutzernamen und Passwort gefragt werden, wird angezeigt. Sobald Sie Ihren Benutzernamen und Ihr Passwort eingegeben haben, werden Sie an Ihrem Server angemeldet und der SSH-Tunnel wird gestartet.
Wenn Sie die Authentifizierung mit öffentlichem Schlüssel einrichten, können Sie eine Verbindung zu Ihrem Server herstellen, ohne ein Kennwort eingeben zu müssen.
Fazit
Wir haben Ihnen gezeigt, wie Sie SSH-Tunnel einrichten und den Datenverkehr über eine sichere SSH-Verbindung weiterleiten. Zur Vereinfachung der Verwendung können Sie den SSH-Tunnel in Ihrer SSH-Konfigurationsdatei definieren oder einen Bash-Alias erstellen, mit dem der SSH-Tunnel eingerichtet wird.
SSH-SicherheitVerwenden Sie die App School-PCs einrichten zum Einrichten von Windows-PCs in Schulen
Download Einrichten der School-PCs-App im Windows Store & Verwenden Sie es, um Ihre Windows 10-Computer für bessere Lernoptionen für Schüler schnell einzurichten.
So richten Sie SSH-Tunneling ein, um eine Firewall zu umgehen
Eine Firewall ist eine gute Sache, aber wenn sie Sie davon abhält, etwas zu tun, ist SSH-Tunneling eine gute Option, die Sie erkunden können.
So ändern Sie den SSH-Port unter Linux
Standardmäßig überwacht SSH Port 22. Durch Ändern des Standard-SSH-Ports wird Ihrem Server eine zusätzliche Sicherheitsebene hinzugefügt, indem das Risiko automatisierter Angriffe verringert wird. In diesem Tutorial wird erklärt, wie Sie den Standard-SSH-Port unter Linux ändern.












