Tunneling

Tunneling

Tunnel bzw. Tunneling bezeichnet den Gebrauch des Kommunikationsprotokolls eines Netzwerkdienstes als Transportmittel für Daten, die nicht zu diesem Dienst gehören.

Die Tunnelsoftware wird sowohl auf dem Client als auch auf dem Server benötigt und dient dazu, dienstfremde Daten auf der einen Seite einzubetten und auf der anderen Seite wieder zu extrahieren. Um dabei den Standard des Protokolls nicht zu verletzen, wird im Bedarfsfall eine Konvertierung in das jeweilige Format vorgenommen. Ein Tunnel kann so die Daten eines Dienstes eingebettet im Protokoll eines anderen Dienstes übertragen. Nachdem sie auf dem Zielsystem in das ursprüngliche Format zurückgewandelt wurden, leitet die Tunnelsoftware die Daten dann an den Dienst weiter, für den sie tatsächlich bestimmt sind.

Das verwendete Kommunikationsprotokoll wird wie eine Hülle genutzt, die dabei hilft, den tatsächlichen Inhalt zu verschleiern. Auf diese Weise lassen sich unsichere Netzwerkprotokolle eingebettet in einem gesicherten und verschlüsselten Netzwerkprotokoll abhör- und manipulationssicher transportieren (z. B. SSH-Tunnel). Tunnel können auch zur Einbindung von Geräten eines benachbarten Netzes an das eigene Netz dienen, ohne dass die Netzwerke zueinander kompatibel sein müssen (z. B. VPN-Tunnel). Ferner eignen sich Tunnel dafür, das Regelwerk einer Firewall und andere Sicherheitsmaßnahmen zu umgehen (z. B. HTTP-Tunnel).

Inhaltsverzeichnis

SSH-Tunnel eines Clients durch ein benachbartes Netz hindurch (hier das Internet) zu einem Server, der in einem entfernten Netz steht; zur Nutzung verschiedener Dienste des Servers, wobei die Daten zwischen den SSH-Partnern verschlüsselt übertragen werden.

Geeignete Protokolle

Prinzipiell lassen sich alle Protokolle für einen Tunnel gebrauchen. Sie müssen sich nur durch das Netzwerk routen lassen und die Möglichkeit bieten, die zu transportierenden Daten einbetten zu können. So lassen sich z. B. auch ping-Pakete (ICMP) für den Datentransport verwenden. Es sind auch asymmetrische Tunnel möglich, in dem zwei unterschiedliche Protokolle für den Hin- und Rückweg eingesetzt werden.

Mit einem Tunnel eine Firewall umgehen

Ein Netzwerkdienst arbeitet auf einem festgelegten Port. Werden Ports mit Hilfe einer Firewall gesperrt, will man damit erreichen, dass bestimmte Dienste nicht genutzt werden können. Ist z. B. Port 80 (HTTP) erlaubt und Port 21 (FTP) gesperrt, so kann der Anwender problemlos Internetseiten aufrufen, aber keine Dateien per FTP mit einem Internetserver austauschen.

Man könnte nun das ftp-Client-Programm und den Serverdienst seines eigenen Internetservers so verändern, dass sie ebenfalls über Port 80 kommunizieren und so die Filterregel der Firewall umgehen.

Eine Firewall, welche in der Lage ist, die Pakete zu analysieren, kann zusätzlich den Aufbau der Daten untersuchen und alle Pakete blockieren, welche nicht dem Protokoll des freigegebenen Dienstes entsprechen. Hier würde der Trick also theoretisch nicht mehr funktionieren. In der Praxis ist eine solche Kontrolle jedoch nicht trivial. Schließlich soll jedes Protokoll irgendwelche Daten transportieren. So ist es möglich, z. B. die Daten eines FTP-Dienstes in dem Protokoll eines HTTP-Dienstes einzubetten, ohne dabei den Protokollstandard zu verletzen. Die Daten müssen dazu lediglich entsprechend konvertiert werden.

Ein Tunnel nimmt eine solche Konvertierung vor: Er schickt die Daten eines gesperrten Dienstes eingebettet in den Daten eines freigegebenen Dienstes durch die Firewall zu seinem Zielsystem. Dafür muss auf dem PC und dem Zielsystem jedoch eine Tunnelsoftware installiert sein, welche die Daten auf der einen Seite konvertiert und auf der anderen Seite wieder in das ursprüngliche Format zurückwandelt.

Erlaubt die Firewall verschlüsselte Verbindungen, wie z. B. zu HTTPS-Servern, lassen sich die Daten an der Firewall nicht mehr mitlesen. Somit ist eine Inhaltsprüfung nicht möglich. Diese Verbindungen eignen sich besonders gut für Tunnel.

Hole Punching ist eine Tunneling-Technik, die man anwenden kann, wenn beide Seiten einer Verbindung jeweils durch Firewalls vom Internet abgeschirmt sind.

Arbeitgeber untersagen mitunter die Nutzung anderer Dienste als HTTP und stellen dies durch eine Nutzungsbestimmung und eine Firewall sicher. Wird eine Firewall in Firmennetzwerken unter solchen Bedingungen umgangen, so ist zu beachten, dass dies als ein vorsätzlicher Verstoß gewertet werden kann, wodurch man als Arbeitnehmer eine Kündigung riskiert.

Das Tunnelprinzip für eine verschlüsselte Verbindung verwenden

Tunnel werden vornehmlich dazu verwendet, um abhörsichere Verbindungen über ungesicherte Computernetzwerke hinweg aufzubauen. Dabei sorgt die Tunnelsoftware dafür, dass die Netzwerkpakete zuvor verschlüsselt und in einem für die Übertragung verschlüsselter Daten vorgesehenen Protokoll eingebettet werden, um sie auf der Gegenseite wieder zu entschlüsseln und auszupacken. Dadurch wird eine verschlüsselte Datenübertragung auch für Dienste realisiert, die normalerweise über keine eigene Verschlüsselung verfügen. Auch ganze Netzwerke können so abhörsicher miteinander verbunden werden.

Tunnelsoftware (Konverter)

Indem sich die Tunnelsoftware des Clients in den TCP/IP-Stack hängt, könnte sie ausgehende Anfragen an Port X automatisch nach Port Y umleiten und dabei eine Konvertierung der Daten vornehmen. Dieser Automatismus ließe sich jedoch nicht einrichten, wenn die Kennung auf dem System keine administrativen Rechte besitzt. Hier sollte eine elegantere Lösung helfen, das Hindernis zu überwinden. So bindet sich die Tunnelsoftware selbst an einen festen Port des PCs, sodass der PC – wie man es normalerweise von einem Server gewohnt ist – Anfragen an diesem Port entgegennehmen kann.

Damit lediglich das lokale System diesen Port nutzen kann, bindet sich die Tunnelsoftware in der Regel nicht an die externe Adresse der Netzwerkkarte, sondern an die interne lokale Adresse des Computers (localhost, die so genannte Loopback-Schnittstelle 127.0.0.1). Dann wird das Client-Programm dahingehend konfiguriert, dass es seine Anfragen nicht mehr an das Zielsystem schickt, sondern an den eigenen Computer auf den Port der Tunnelsoftware sendet (Zielsystem = „localhost:Port X“). Je nach Einstellung reicht die Tunnelsoftware wiederum alle Pakete, welche an Port X eintreffen, automatisch an das tatsächliche Zielsystem weiter (Zielsystem = „Server:Port Y“).

Auf diese Weise können auch mehrere lokale Ports verwendet werden, die man einzeln konfigurieren und mit unterschiedlichen Zielen verbinden kann.

Auf dem Server läuft die Tunnelsoftware nach demselben Prinzip – nur genau anders herum (sie lauscht am Tunnelport, konvertiert alle dort eingehenden Pakete in das Ursprungsformat zurück und leitet sie dann zum Bestimmungs(p)ort weiter).

Alternativ zu dem vorher beschriebenen Verfahren, kann die Tunnelsoftware die begehrte Funktionalität des Client-Programms auch selbst beinhalten. Der Tunnel kann so direkt genutzt werden, ohne ein separates Konverterprogramm dazwischen schalten zu müssen.

Beispiele für eine Tunnelsoftware:

  • GNU httptunnel HTTP-Tunnelinglösung.
  • HTTPTunnel – Eine plattformunabhängige (Perl/PHP) HTTP tunneling software
  • OpenSSHSSH bietet die Möglichkeit verschlüsselte TCP-Tunnel aufzubauen
  • OpenVPN – VPN-Lösung für Unix und Windows, verwendet wahlweise UDP oder TCP (ab Version 2.0)
  • corkscrew – Ein SSH-HTTP(s) Tunnel-Programm
  • PuTTY ist ein freies SSH- und Telnet-Client-Programm
  • FreeS/WAN
  • OpenS/WAN
  • iPig Hotspot VPN – TCP/UDP Tunnel-Software und Service (Eine eingeschränkte Version ist kostenlos nutzbar)
  • VTun
  • PingFu – PingFu ist ein Game Tunnel Service
  • Your Freedom – Your Freedom ist ein teilweise kostenloser HTTP Tunnel Service
  • Crypto IP Encapsulation (CIPE)
  • Tunnel – TCP-Tunnel-Software (eingeschränkt kostenlos nutzbar, Windows + linux)

Sicherheit

Getunnelte Verbindungen gelten nur so lange als sicher, wie die dabei verwendeten Verschlüsselungsverfahren als ausreichend stark angesehen werden.

Siehe auch

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Tunneling — may refer to: * tunneling, on a violin or violia * Digging of tunnels (the literal meaning) * Mining, or tunneling during a siege * Quantum tunnelling, a quantum mechanical effect of transitioning through a classically forbidden energy state *… …   Wikipedia

  • tunneling —  Tunneling  Туннелирование (Туннельный эффект)   Эффект преодоления микрочастицей потенциального барьера в случае, когда полная энергия (после преодоления барьера) меньше высоты потенциального барьера. Туннельный эффект не может быть объяснен в… …   Толковый англо-русский словарь по нанотехнологии. - М.

  • tunneling — tun·nel·ing (tŭnʹə lĭng) n. In quantum mechanics, the passing of a particle through a seemingly impenetrable barrier without a cause that is explainable by classical physics. * * * or barrier penetration In physics, the passage of a particle… …   Universalium

  • Tunneling — La técnica de tunneling consiste en encapsular un protocolo de red sobre otro (protocolo de red encapsulador) creando un túnel dentro de una red de computadoras. El establecimiento de dicho túnel se implementa incluyendo una PDU determinada… …   Wikipedia Español

  • Tunneling — An illegal business practice in which a majority shareholder or high level company insider directs company assets or future business to themselves for personal gain. Actions such as excessive executive compensation, dilutive share measures, asset …   Investment dictionary

  • tunneling —    The encapsulation of one protocol within another, often used to transport a local area network protocol across a backbone that does not support that particular protocol.    Tunneling is also used to create pseudoconnections across… …   Dictionary of networking

  • Tunneling — Tunnel Tun nel, v. t. [imp. & p. p. {Tunneled}or {Tunnelled}; p. pr. & vb. n. {Tunneling} or {Tunnelling}.] [1913 Webster] 1. To form into a tunnel, or funnel, or to form like a tunnel; as, to tunnel fibrous plants into nests. Derham. [1913… …   The Collaborative International Dictionary of English

  • tunneling — tuneliavimas statusas T sritis fizika atitikmenys: angl. tunneling; tunnelling vok. Tunneln, n rus. туннелирование, n pranc. effet tunnel, m; passage tunnel, m …   Fizikos terminų žodynas

  • tunneling — noun or tunnelling ( s) Etymology: from gerund of tunnel (II) 1. : a tunnel or series of tunnels 2. : the act or process …   Useful english dictionary

  • Tunneling — Tunnel (réseau informatique) Pour les articles homonymes, voir Tunnel (homonymie). Un tunnel, dans le contexte de réseaux informatiques, est une encapsulation de données d un protocole réseau dans un autre, situé dans la même couche du modèle en… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”