SSH-Tunneling und Port-Forwarding-Techniken
Beherrschen Sie lokales, entferntes und dynamisches Port-Forwarding und verstehen Sie dessen legitime sowie sicherheitskritische Einsatzmöglichkeiten.
SSH-Tunneling und Port-Forwarding-Techniken ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
Konzept der lokalen Portweiterleitung
Die lokale Portweiterleitung (ssh -L local_port:destination_host:destination_port user@ssh_server) bindet einen Port auf Ihrem lokalen Rechner. An diesen lokalen Port gesendeter Datenverkehr wird über die verschlüsselte SSH-Verbindung zum SSH-Server übertragen, der anschließend eine Verbindung zum Ziel herstellt. Ihre lokale Anwendung kommuniziert mit localhost, während SSH den Datenverkehr sicher an das entfernte Ziel weiterleitet.
Anwendungsfall für lokale Weiterleitung: Datenbankzugriff
Ein häufiger Anwendungsfall für die lokale Portweiterleitung ist der Zugriff auf eine interne Datenbank hinter einer Firewall. Mit ssh -L 5432:db.internal:5432 user@bastion verbindet sich Ihr lokaler PostgreSQL-Client mit localhost:5432. Der Bastion-Host leitet diesen Datenverkehr an den internen Datenbankserver weiter, der ansonsten aus dem Internet nicht erreichbar wäre.
Konzept der Remote-Portweiterleitung
Die Remote-Portweiterleitung (ssh -R remote_port:local_host:local_port user@ssh_server) bindet einen Port auf dem entfernten SSH-Server. Wenn externe Clients eine Verbindung zu diesem entfernten Port herstellen, fließt der Datenverkehr durch den SSH-Tunnel zurück zu Ihrem lokalen Rechner. Dadurch können Sie einen lokal ausgeführten Dienst über einen Server mit Internetzugang weltweit erreichbar machen.
Anwendungsfall für Remote-Weiterleitung: hinter NAT
Die Remote-Weiterleitung ist besonders nützlich, wenn sich Ihr Rechner hinter NAT befindet und eingehende Verbindungen nicht direkt empfangen kann. Durch einen Reverse-Tunnel zu einem öffentlichen Server ermöglichen Sie externen Clients, Ihren lokalen Dienst über diesen öffentlichen Server zu erreichen. Diese Technik wird auch von einigen Tools für den Fernzugriff und Systemen zur Verwaltung von IoT-Geräten verwendet.
Dynamische Portweiterleitung: SOCKS5-Proxy
Die dynamische Portweiterleitung (ssh -D local_port user@ssh_server) erstellt einen SOCKS5-Proxy auf Ihrem lokalen Rechner. Jede SOCKS5-fähige Anwendung kann ihren Datenverkehr über diesen Proxy leiten, sodass er scheinbar vom SSH-Server ausgeht. Dadurch wird Ihr Datenverkehr beim Surfen effektiv über das entfernte Netzwerk geleitet. Das ist nützlich, um auf geografisch eingeschränkte Ressourcen zuzugreifen oder lokale Netzwerkfilter zu umgehen.
Reverse-Tunnel und Sicherheitsauswirkungen
Reverse-Tunnel sind leistungsfähig, bringen jedoch Sicherheitsrisiken mit sich. Wenn ein Server GatewayPorts zulässt, sind per Remote-Weiterleitung eingerichtete Ports für das öffentliche Internet und nicht nur für localhost zugänglich. Ein Angreifer, der einen Rechner mit einem Reverse-Tunnel kompromittiert, kann möglicherweise interne Dienste erreichen. Unternehmen sollten nicht autorisierte Reverse-Tunnel überwachen und GatewayPorts in den SSH-Konfigurationen einschränken.
Tunnelsteuerung des SSH-Servers
Die Konfiguration des SSH-Servers steuert die Tunneling-Funktionen. AllowTcpForwarding legt fest, ob die lokale und die Remote-Portweiterleitung zulässig sind. AllowStreamLocalForwarding steuert die Weiterleitung von Unix-Sockets. Wenn Sie diese Optionen auf no setzen, wird das Tunneling für alle Benutzer deaktiviert. Sie können die Optionen auch pro Benutzer oder Gruppe einschränken. Das Deaktivieren nicht benötigter Weiterleitungen verringert die Angriffsfläche.
SSH als VPN mit Tun-Geräten
SSH unterstützt das Erstellen von Tun-Netzwerkschnittstellen für vollständiges IP-Tunneling (ssh -w). Dadurch wird SSH zu einem leichtgewichtigen VPN, über das ganze IP-Pakete und nicht nur bestimmte TCP-Verbindungen getunnelt werden. PermitTunnel muss auf dem Server aktiviert sein. Dieser Ansatz ist zwar weniger effizient als dedizierte VPN-Software, erfordert jedoch keine zusätzliche Software und nutzt die vorhandene SSH-Infrastruktur.
Verbindungen multiplexen
SSH-Verbindungs-Multiplexing (die Einstellungen ControlMaster und ControlPath) verwendet eine bestehende SSH-Verbindung für neue Sitzungen wieder. Dadurch werden nachfolgende Verbindungen zum selben Host erheblich beschleunigt, was insbesondere in skriptgesteuerten Umgebungen von großem Nutzen ist. Tunnel können mithilfe der gemeinsam genutzten Verbindung auch über mehrere SSH-Sitzungen hinweg aufrechterhalten werden.
SSH-Tunnel erkennen
Netzwerkadministratoren können SSH-Tunneling anhand ungewöhnlicher Verkehrsmuster erkennen: langlebige TCP-Verbindungen auf Port 22, unerwartet hohe Datenvolumen bei Verbindungen, die eigentlich nur Terminalverkehr übertragen sollten, oder Verbindungen zu bekannten sensiblen Zielen nach deren Aufbau. Deep Packet Inspection kann SSH-Inhalte nicht einsehen, aber eine Metadatenanalyse kann verdächtiges Tunnelverhalten erkennen.
Best Practices für die Tunnelkonfiguration
Dokumentieren Sie bei autorisierter Nutzung alle Tunnel und ihre Zwecke. Verwenden Sie bei Tunneln -N (kein Befehl), um nicht unnötig eine Shell zu öffnen, und -f (Hintergrund), um sie auszuführen, ohne Ihr Terminal zu blockieren. Verwenden Sie für persistente Tunnel AutoSSH oder die Socket-Aktivierung von systemd, die den Tunnel automatisch neu startet, wenn die Verbindung abbricht.
Lokales vs. Remote-Port-Forwarding
Sie möchten Ihren lokalen Entwicklungsserver (der auf Port 3000 läuft) über einen öffentlichen SSH-Server im Internet zugänglich machen. Welchen Weiterleitungstyp sollten Sie verwenden?
Zusammenfassung zum SSH-Tunneling
Zusammenfassung zum SSH-Tunneling: Mit der lokalen Weiterleitung (-L) greifen Sie von Ihrem Rechner aus sicher auf interne Dienste zu, mit der Remote-Weiterleitung (-R) machen Sie lokale Dienste über einen öffentlichen Server zugänglich, die dynamische Weiterleitung (-D) erstellt einen SOCKS5-Proxy für das Routing von Datenverkehr auf Anwendungsebene, die tun-Weiterleitung ermöglicht ein vollständiges IP-VPN, und AllowTcpForwarding auf dem Server steuert diese Funktionen.
Lerne Cryptology Academy mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 67
- Lektionen
- 261
Häufig gestellte Fragen
Ist die Lektion „SSH-Tunneling und Port-Forwarding-Techniken“ kostenlos?
Ja — der vollständige Text von „SSH-Tunneling und Port-Forwarding-Techniken“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „SSH-Tunneling und Port-Forwarding-Techniken“?
Beherrschen Sie lokales, entferntes und dynamisches Port-Forwarding und verstehen Sie dessen legitime sowie sicherheitskritische Einsatzmöglichkeiten. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cryptology Academy zu starten?
Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „SSH-Tunneling und Port-Forwarding-Techniken“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- SSH-Handshake und Host-Key-Authentifizierung
- Authentifizierung mit öffentlichen Schlüsseln und Agent-Weiterleitung
- SSH-Tunneling und Port-Forwarding-Techniken
- SSH-Härtung und Best Practices für Audits