Portweiterleitung über NAT-Router

In der Computernetzwerktechnik ist Portweiterleitung ( auch Portmapping genannt ) eine Anwendung der Netzwerkadressübersetzung (NAT), die Kommunikationsanfragen von einer Adress - Port- Kombination zu einer anderen umleitet, während die Pakete ein Netzwerk-Gateway wie einen Router oder eine Firewall passieren . Diese Technik wird häufig verwendet, um Dienste eines Hosts in einem geschützten oder maskierten (internen) Netzwerk für Hosts auf der anderen Seite des Gateways (externes Netzwerk) verfügbar zu machen, indem die Ziel-IP-Adresse und der Ziel-Port der Kommunikation einem internen Host zugeordnet werden. [ 1 ] [ 2 ]

Zweck

Portweiterleitung ermöglicht die Verbindung von entfernten Computern, beispielsweise Internet- Hosts, mit einem bestimmten Computer oder Dienst innerhalb eines lokalen Netzwerks (LAN). [ 3 ]

In einem typischen Heimnetzwerk erhalten die Geräte über ein DSL- oder Kabelmodem, das mit einem Router oder einem Netzwerkadressübersetzer (NAT/NAPT) verbunden ist, Internetzugang. Die Rechner im privaten Netzwerk sind über einen Ethernet-Switch verbunden oder kommunizieren über ein WLAN . Die externe Schnittstelle des NAT-Geräts ist mit einer öffentlichen IP-Adresse konfiguriert. Die Rechner hinter dem Router sind hingegen für Rechner im Internet nicht sichtbar, da jeder von ihnen nur mit einer privaten IP-Adresse kommuniziert.

Bei der Konfiguration der Portweiterleitung reserviert der Netzwerkadministrator einen Port auf dem Gateway ausschließlich für die Kommunikation mit einem Dienst im privaten Netzwerk, der sich auf einem bestimmten Host befindet. Externe Hosts benötigen diese Portnummer und die Adresse des Gateways, um mit dem netzwerkinternen Dienst zu kommunizieren. Häufig werden die Portnummern bekannter Internetdienste, wie beispielsweise Port 80 für Webdienste (HTTP), für die Portweiterleitung verwendet, um gängige Internetdienste auf Hosts in privaten Netzwerken bereitzustellen.

Typische Anwendungsgebiete sind beispielsweise folgende:

  • Betrieb eines öffentlichen HTTP- Servers innerhalb eines privaten LANs
  • Gewährung des Secure Shell- Zugriffs auf einen Host im privaten LAN aus dem Internet
  • Ermöglichung des FTP- Zugriffs auf einen Host in einem privaten LAN aus dem Internet
  • Betrieb eines öffentlich zugänglichen Spielservers innerhalb eines privaten LANs

Administratoren konfigurieren die Portweiterleitung im Betriebssystem des Gateways. Unter Linux- Kerneln erfolgt dies über Paketfilterregeln in den Kernelkomponenten iptables oder netfilter . BSD- und macOS -Betriebssysteme vor Yosemite (OS 10.10.x) implementieren dies im Modul IPfirewall (ipfw), während macOS- Betriebssysteme ab Yosemite die Portweiterleitung im Modul Paketfilter (pf) implementieren.

Bei Verwendung auf Gateway-Geräten kann eine Portweiterleitung mit einer einzigen Regel implementiert werden, die Zieladresse und -port übersetzt (unter Linux- Kerneln entspricht dies einer DNAT-Regel). Quelladresse und -port bleiben in diesem Fall unverändert. Wird die Weiterleitung auf Rechnern verwendet, die nicht das Standard-Gateway des Netzwerks sind, muss die Quelladresse auf die Adresse des übersetzenden Rechners geändert werden, da die Pakete sonst den Übersetzer umgehen und die Verbindung fehlschlägt.

Wird eine Portweiterleitung durch einen Proxy-Prozess implementiert (z. B. auf Anwendungsschicht-Firewalls, SOCKS- basierten Firewalls oder über TCP-Verbindungsproxys), werden keine Pakete übersetzt, sondern nur die Daten weitergeleitet. Dies führt üblicherweise dazu, dass die Quelladresse (und die Portnummer) auf die des Proxy-Rechners geändert wird.

Normalerweise kann jeweils nur einer der privaten Hosts einen bestimmten weitergeleiteten Port nutzen, aber es ist manchmal möglich, den Zugriff anhand der Quelladresse des Ursprungshosts zu differenzieren.

Unix-ähnliche Betriebssysteme verwenden mitunter Portweiterleitung. Portnummern unter 1024 können nur von Software mit Root-Rechten belegt werden. Die Ausführung mit Root-Rechten (um den Port zu binden) kann ein Sicherheitsrisiko für den Host darstellen. Daher wird Portweiterleitung eingesetzt, um einen Port mit niedriger Nummer auf einen Port mit hoher Nummer umzuleiten. So kann Anwendungssoftware mit eingeschränkten Rechten als normaler Betriebssystembenutzer ausgeführt werden.

Das Universal Plug and Play- Protokoll (UPnP) ermöglicht die automatische Einrichtung von Portweiterleitungen in Heimnetzwerk-Gateways. UPnP definiert das Internet Gateway Device Protocol (IGD), einen Netzwerkdienst , mit dem ein Internet-Gateway seine Präsenz in einem privaten Netzwerk über das Simple Service Discovery Protocol (SSDP) bekannt gibt. Anwendungen, die internetbasierte Dienste bereitstellen, können solche Gateways erkennen und mithilfe des UPnP-IGD-Protokolls eine Portnummer auf dem Gateway reservieren, um Pakete an dessen Listening Socket weiterzuleiten .

Typen

Portweiterleitung kann anhand der folgenden spezifischen Typen unterschieden werden: lokale, entfernte und dynamische Portweiterleitung. [ 4 ]

Lokale Portweiterleitung

Lokale Portweiterleitung ist die gebräuchlichste Art der Portweiterleitung. Sie ermöglicht es einem Benutzer, sich von seinem lokalen Computer aus mit einem anderen Server zu verbinden, d. h. Daten sicher von einer anderen Client-Anwendung, die auf demselben Computer wie ein Secure Shell (SSH)-Client ausgeführt wird, weiterzuleiten. Durch die Verwendung lokaler Portweiterleitung können Firewalls, die bestimmte Webseiten blockieren, umgangen werden. [ 5 ]

Verbindungen von einem SSH-Client werden über einen SSH-Server an den gewünschten Zielserver weitergeleitet. Der SSH-Server ist so konfiguriert, dass er Daten von einem bestimmten Port (lokal auf dem Host, auf dem der SSH-Client läuft) über einen sicheren Tunnel an einen bestimmten Zielhost und -port weiterleitet. Dieser lokale Port befindet sich auf demselben Computer wie der SSH-Client und wird als „weitergeleiteter Port“ bezeichnet. Auf demselben Computer kann jeder Client, der eine Verbindung zum selben Zielhost und -port herstellen möchte, so konfiguriert werden, dass er sich mit dem weitergeleiteten Port verbindet (anstatt direkt mit dem Zielhost und -port). Nach dem Verbindungsaufbau lauscht der SSH-Client am weitergeleiteten Port und leitet alle von Anwendungen an diesen Port gesendeten Daten über einen sicheren Tunnel an den SSH-Server weiter. Der Server entschlüsselt die Daten und leitet sie anschließend an den Zielhost und -port weiter. [ 6 ]

Einige Anwendungsbeispiele für lokale Portweiterleitung:

  • Verwendung der lokalen Portweiterleitung zum Empfangen von E-Mails [ 7 ]
  • Stellen Sie von einem Laptop aus über einen SSH-Tunnel eine Verbindung zu einer Website her.

Remote-Portweiterleitung

Diese Form der Portweiterleitung ermöglicht es Anwendungen auf dem Server einer Secure Shell (SSH)-Verbindung, auf Dienste auf dem Client der SSH-Verbindung zuzugreifen. [ 8 ] Neben SSH gibt es proprietäre Tunneling-Verfahren, die Remote-Portweiterleitung für denselben Zweck nutzen. [ 9 ] Mit anderen Worten: Remote-Portweiterleitung ermöglicht es Benutzern, sich vom Server eines Tunnels (SSH oder ein anderes Verfahren) aus mit einem entfernten Netzwerkdienst auf dem Client des Tunnels zu verbinden.

Für die Nutzung der Portweiterleitung über einen entfernten Server müssen die Adresse des Zielservers (auf der Clientseite des Tunnels) und zwei Portnummern bekannt sein. Die Wahl der Portnummern hängt von der verwendeten Anwendung ab.

Die Portweiterleitung ermöglicht es anderen Computern, auf Anwendungen zuzugreifen, die auf entfernten Servern gehostet werden. Zwei Beispiele:

  • Ein Mitarbeiter eines Unternehmens betreibt einen FTP-Server in seinem Privathaushalt und möchte Mitarbeitern, die Computer im Unternehmen nutzen, Zugriff auf diesen FTP-Dienst gewähren. Dazu kann er die Portweiterleitung per SSH auf den internen Firmenrechnern einrichten, indem er die Adresse seines FTP-Servers angibt und die korrekten Portnummern für FTP verwendet (der Standard-FTP-Port ist TCP/21) [ 10 ].
  • Das Öffnen von Remote-Desktop-Sitzungen ist eine gängige Anwendung der Portweiterleitung. Über SSH kann dies durch Öffnen des virtuellen Netzwerkports (5900) und Hinzufügen der Adresse des Zielrechners erreicht werden. [ 6 ]

Umgekehrte Portweiterleitung

Eine andere Bezeichnung ist Reverse-SSH-Tunnel. Vereinfacht gesagt, verbindet sich Ihr Laptop auf diese Weise mit einem entfernten Rechner, sodass eingehende Anfragen an die IP-Adresse dieses entfernten Rechners an Ihren Laptop weitergeleitet und beantwortet werden. [ 11 ]

Dynamische Portweiterleitung

Dynamische Portweiterleitung (DPF) ist eine Methode, die bei Bedarf eine Firewall oder ein NAT-Netzwerk durch die Nutzung von Firewall-Öffnungen umgeht. Ziel ist es, Clients eine sichere Verbindung zu einem vertrauenswürdigen Server zu ermöglichen, der als Vermittler für das Senden und Empfangen von Daten an einen oder mehrere Zielserver fungiert. [ 12 ]

DPF lässt sich implementieren, indem eine lokale Anwendung wie SSH als SOCKS -Proxy-Server eingerichtet wird . Dieser dient zur Verarbeitung von Datenübertragungen über das Netzwerk oder das Internet. Programme wie Webbrowser müssen einzeln konfiguriert werden, um den Datenverkehr über den Proxy zu leiten, der als sicherer Tunnel zu einem anderen Server fungiert. Sobald der Proxy nicht mehr benötigt wird, müssen die Programme auf ihre ursprünglichen Einstellungen zurückgesetzt werden. Aufgrund des manuellen Aufwands wird DPF selten eingesetzt. [ 6 ]

Sobald die Verbindung hergestellt ist, kann DPF verwendet werden, um einem Benutzer, der mit einem nicht vertrauenswürdigen Netzwerk verbunden ist, zusätzliche Sicherheit zu bieten. Da die Daten den sicheren Tunnel zu einem anderen Server durchlaufen müssen, bevor sie an ihr ursprüngliches Ziel weitergeleitet werden, ist der Benutzer vor dem Abfangen von Datenpaketen im LAN geschützt. [ 13 ]

DPF ist ein leistungsstarkes Tool mit vielfältigen Einsatzmöglichkeiten. Beispielsweise kann ein Nutzer, der über ein Café, ein Hotel oder ein anderes nur unzureichend gesichertes Netzwerk mit dem Internet verbunden ist, DPF zum Schutz seiner Daten verwenden. DPF kann auch dazu genutzt werden, Firewalls zu umgehen, die den Zugriff auf externe Websites, etwa in Unternehmensnetzwerken, einschränken.

Siehe auch

Referenzen

  1. ^ „Definition von: Portweiterleitung“ . PC Magazine . Archiviert vom Original am 03.06.2012 . Abgerufen am 11.10.2008 .
  2. ^ Rory Krause. „Using ssh Port Forwarding to Print at Remote Locations“ . Linux Journal . Abgerufen am 11.10.2008 .
  3. ^ Jeff „Crash“ Goldin. „So richten Sie einen Heimwebserver ein“ . Red Hat . Archiviert vom Original am 04.10.2008 . Abgerufen am 11.10.2008 .
  4. ^ OpenSSH-Portweiterleitung
  5. ^ „Lokale und Remote-Portweiterleitung und die Reflection-Funktion für Secure IT Client 7.1 oder höher – Technischer Hinweis 2433“ . Support.attachmate.com. 09.11.2012 . Abgerufen am 30.01.2014 .
  6. ^ a b c „SSH/OpenSSH/Portweiterleitung – Community Ubuntu-Dokumentation“ . Help.ubuntu.com. 13.12.2013 . Abgerufen am 30.01.2014 .
  7. ^ „Beispiel – Verwendung der lokalen Portweiterleitung zum Empfangen von E-Mails (Systemadministrationshandbuch: Sicherheitsdienste)“ . Docs.oracle.com . Abgerufen am 30.01.2014 .
  8. ^ „Tunneling mit Secure Shell – Anhang A: Remote-Portweiterleitung“ . Vandyke.com. 12.06.2005 . Abgerufen am 30.01.2014 .
  9. ^ „Lokale versus Remote-Portweiterleitung“ . NetworkActiv . Archiviert vom Original am 4. November 2016. Abgerufen am 8. Juni 2014 .
  10. ^ „FTP-Portnummer 21 – Port 21 TCP“ . Compnetworking.about.com. 19.12.2013. Archiviert vom Original am 03.02.2014 . Abgerufen am 30.01.2014 .
  11. ^ „Reverse SSH Tunneling – Von Anfang bis Ende“ . JFrog . 15.08.2021 . Abgerufen am 15.10.2024 .
  12. ^ „DPF-Mechanismus“ . Pages.cs.wisc.edu . Abgerufen am 30.01.2014 .
  13. ^ „SSH Dynamic Port Forwarding (Hacking Illustrated Series InfoSec Tutorial Videos)“ . Irongeek.com . Abgerufen am 30.01.2014 .