Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Tunnel (Rechnernetz)

Ein Tunnel in einem Rechnernetz ist ein virtueller Übertragungsweg, der durch Kapselung eines Netzwerkprotokolls in ein anderes erfolgt.

Inhalt6 Abschnitte
  1. 1. Grundidee und Zweck
  2. 2. Tunnelprotokolle
  3. 3. Firewall-Umgehung
  4. 4. Tunneling in Nutzdaten
  5. 5. VPN und Tunnelsoftware
  6. 6. Sicherheitsaspekte

Grundidee und Zweck

Ein Tunnel in einem Rechnernetz ist ein virtueller Übertragungsweg. Er entsteht dadurch, dass ein Netzwerkprotokoll in ein anderes Netzwerkprotokoll eingekapselt wird. Anders als bei der normalen Schichtenarchitektur eines Protokollstapels werden dabei entweder zwei Protokolle derselben Schicht miteinander verkapselt oder ein Protokoll einer niedrigeren Schicht wird in einem Datenpaket einer höheren Schicht transportiert.

Vor und hinter dem Tunnel wird mit dem ursprünglichen Netzwerkprotokoll kommuniziert. Zwischen den beiden Tunnelendpunkten wird dagegen ein anderes Protokoll verwendet. Dieses wird Tunnelprotokoll genannt. Die Übersetzung und Übertragung eines Datenpakets in einem Tunnel heißt Tunneln oder Tunneling. Damit ein Tunnel funktioniert, wird auf beiden Seiten Software benötigt, die den Tunnel aufbaut, Datenpakete einbettet und weiterleitet.

Tunneling wird vor allem genutzt, um ein Virtual Private Network über öffentliche Datennetze wie das Internet aufzubauen. Außerdem können dadurch unsichere Netzwerkprotokolle in ein abhör- und manipulationssicheres Verschlüsselungsprotokoll eingebettet werden. Ein weiterer Zweck ist der Aufbau eines Overlay-Netzes, also eines zusätzlichen logischen Netzes über einer vorhandenen Infrastruktur. Damit lassen sich Netzwerkprotokolle transportieren, die von der eigentlichen Netzinfrastruktur nicht unterstützt werden. Tunnel können auch dazu dienen, Regeln einer Firewall zu umgehen.

Tunnelprotokolle

Grundsätzlich lassen sich alle Netzwerkprotokolle für einen Tunnel verwenden, wenn sie die zu transportierenden Daten einbetten können. Ein Beispiel ist ein ICMP-Tunnel: Dabei werden ICMP-Echo-Pakete, wie sie etwa beim Ping verwendet werden, zweckentfremdet, um Nutzdaten zu tunneln.

Es sind auch asymmetrische Tunnel möglich. Dabei werden für Hinweg und Rückweg zwei unterschiedliche Protokolle eingesetzt.

Manche Protokolle wurden ausdrücklich für das Tunneling von Daten entwickelt. Beispiele für Tunnelprotokolle sind L2TP, IP-in-IP-Kapselung, GRE und SSH. SSH kann zum Beispiel verschlüsselte Tunnel bereitstellen, sodass Daten zwischen einem Client und einem Tunnelpartner geschützt übertragen werden.

Firewall-Umgehung

Tunnel können verwendet werden, um die Sicherheitspolice einer Firewall zu umgehen. Solche Tunnel heißen verdeckte Kanäle, auf Englisch network covert channels. Das bedeutet: Daten werden so übertragen, dass sie von den normalen Filterregeln nicht direkt erfasst werden.

Ein einfacher Fall ist eine Portsperre. Ein Netzwerkdienst arbeitet normalerweise auf einem festgelegten Port. Werden Ports mit einem Paketfilter gesperrt, soll verhindert werden, dass bestimmte Dienste genutzt werden. Ist zum Beispiel Port 80 für HTTP erlaubt, aber Port 21 für FTP gesperrt, können Internetseiten aufgerufen werden, aber kein Dateiaustausch per FTP mit einem Internetserver stattfinden. Eine mögliche Umgehung wäre, FTP-Client und FTP-Server so anzupassen, dass sie ebenfalls über Port 80 kommunizieren.

Eine weitere Technik ist Hole Punching. Sie dient dazu, eine Kommunikation zwischen zwei Teilnehmern zu ermöglichen, die sich beide hinter einem Paketfilter befinden.

Tunneling in Nutzdaten

Eine einfache Portänderung reicht nicht immer aus. Ein Application Layer Gateway oder eine Firewall mit Deep Packet Inspection kann die Anwendungsdaten eines Pakets analysieren. Deep Packet Inspection bedeutet, dass nicht nur Port und Adresse geprüft werden, sondern auch der Inhalt der übertragenen Daten. Pakete, die nicht dem Protokoll des freigegebenen Dienstes entsprechen, können blockiert werden.

Um auch diese Prüfung zu umgehen, können die zu tunnelnden Daten in die Nutzdaten des Tunnelprotokolls eingebettet werden. HTTP erlaubt zum Beispiel beliebige Nutzdaten im Nachrichtenrumpf einer HTTP-Anfrage oder HTTP-Antwort. Die Daten müssen dafür so umgewandelt werden, dass sie dem HTTP-Protokollstandard entsprechen. Eine Tunnelsoftware übernimmt diese Konvertierung: Sie nimmt Daten in einem Format entgegen, kapselt sie zum Versand in einem anderen Netzwerkprotokoll und sendet sie weiter. Auf der Gegenseite nimmt eine passende Software das Tunnelprotokoll entgegen, packt die Daten aus und wandelt sie in das ursprüngliche Format zurück.

Wenn eine Firewall verschlüsselte Verbindungen erlaubt, etwa zu HTTPS-Servern, kann sie die Daten nicht mitlesen. Eine Inhaltsprüfung ist dann nicht möglich. Solche Verbindungen eignen sich deshalb besonders gut für Tunnel. Im Artikel wird OpenVPN mit dem Protokoll TCP genannt, weil der Aufbau der Verbindung nahezu identisch mit dem einer Webseite über HTTPS ist.

VPN und Tunnelsoftware

Tunnel werden genutzt, um abhörsichere Verbindungen über ungesicherte Computernetzwerke aufzubauen. Bei einem Virtual Private Network sorgt die Tunnelsoftware dafür, dass Netzwerkpakete in ein Verschlüsselungsprotokoll eingebettet werden. Auf der Gegenseite werden sie wieder entschlüsselt und ausgepackt. Dadurch erhalten auch Dienste eine verschlüsselte Übertragung, die selbst keine eigene Verschlüsselung besitzen. Auch ganze Netzwerke können auf diese Weise abhörsicher miteinander verbunden werden. Beispiele für VPN-Protokolle sind IPsec, OpenVPN und WireGuard.

Eine Tunnelsoftware kann einen lokalen Port als Tunneleingang öffnen. Dieser kann an die Loopback-Adresse gebunden werden, also 127.0.0.1 bei IPv4 oder ::1 bei IPv6. Dann steht der Tunnel nur auf dem Hostrechner zur Verfügung. Der Port kann aber auch an eine Netzwerkadresse gebunden werden, sodass er zum Beispiel im lokalen Netzwerk erreichbar ist. Das Client-Programm wird so konfiguriert, dass es nicht direkt den Zielserver kontaktiert, sondern den Tunneleingang. Die Tunnelsoftware baut dann die Verbindung zum Tunnelserver auf und übernimmt die Kommunikation.

Auf dem Tunnelserver läuft ebenfalls Tunnelsoftware. Sie nimmt das Tunnelprotokoll entgegen, packt die Nutzdaten aus und leitet sie im ursprünglichen Format zum Ziel weiter. Es können auch mehrere lokale Ports verwendet werden, die einzeln konfiguriert und mit unterschiedlichen Zielen verbunden werden. Alternativ gibt es Anwendungsprogramme, bei denen die Tunnelfunktion bereits integriert ist, sodass keine separate Tunnelsoftware nötig ist.

Als Beispiele für Tunnelsoftware nennt der Artikel unter anderem GNU httptunnel, HTTPTunnel, OpenSSH, OpenVPN, corkscrew, PuTTY, FreeS/WAN, OpenS/WAN, VTun, LogMeIn Hamachi, Your Freedom, Crypto IP Encapsulation (CIPE), Tunnel, Token2Shell und XLink Kai.

Sicherheitsaspekte

Getunnelte Verbindungen gelten nur so lange als sicher, wie die verwendeten Verschlüsselungsverfahren als ausreichend stark angesehen werden. Sicherheit hängt also nicht allein davon ab, dass ein Tunnel verwendet wird, sondern auch von der Qualität der Verschlüsselung.

Außerdem können Daten, die über einen öffentlichen Anbieter geleitet werden, von diesem Anbieter und den dahinterliegenden Knotenpunkten, zum Beispiel dem Provider, lesbar sein. Das gilt besonders dann, wenn nicht höhere Protokolle wie TLS im HTTPS-Protokoll die Verschlüsselung bis zum Ziel sicherstellen. Vertrauenswürdigere Anbieter sind daher sicherer, etwa ein eigener Server, ein Zugangspunkt der Arbeitsstelle oder ein Zugangspunkt eines Freundes.

Auch die verwendete Software kann Sicherheitslücken enthalten. Angreifer könnten solche Lücken ausnutzen. Deshalb sollten die Endpunkte, also Server und Client, aktuell gehalten werden. Ein weiteres Risiko ist der Schlüssel des Tunnels: Wenn er in falsche Hände fällt, ist die Sicherheit gefährdet. Deshalb muss sichergestellt werden, dass der Schlüssel nicht kompromittiert ist.

Wichtige Sicherheitsaspekte sind daher die verwendeten Verschlüsselungsverfahren des Tunnels, einschließlich Asymmetrie und Art des Schlüsselaustauschs, die Aktualität der Software, die Vertrauenswürdigkeit des Anbieters und die Integrität des Schlüssels.

Lernvideos zu Tunnel (Rechnernetz)

Weiterlesen

Rechnernetz Ein Rechnernetz, Computernetz oder Computernetzwerk ist ein Zusammenschluss verschiedener technischer, primär selbstständiger elektronischer Systeme … Netzwerkprotokoll Ein Netzwerkprotokoll (auch Netzprotokoll) ist ein Kommunikationsprotokoll für den Austausch von Daten zwischen Computern bzw. Prozessen, die in einem … Schichtenarchitektur Ein Beispiel für eine Architektur mit sieben Schichten bietet das ISO/OSI-Modell, das in der Abbildung rechts dargestellt ist. Das OSI-Modell beschreibt … Englische Sprache Die englische Sprache (Eigenbezeichnung: [ˈɪŋɡlɪʃ]) ist eine ursprünglich in England beheimatete germanische Sprache, die zum westgermanischen Zweig gehört. Duden Der Duden ist ein Rechtschreibwörterbuch der deutschen Sprache. Das Werk war erstmals am 7. Juli 1880 von Konrad Duden als Vollständiges Orthographisches … Virtual Private Network Virtual Private Network (deutsch „virtuelles privates Netzwerk“; kurz: VPN) bezeichnet eine Netzwerkverbindung, die von Unbeteiligten nicht einsehbar ist, … Internet Mit Social-Media-Plattformen wie Facebook, Twitter oder YouTube trat das bidirektionale Austauschen von Inhalten unter den Nutzern (sogenanntem user … Firewall Eine Firewall (von englisch firewall [ˈfaɪəwɔːl] ‚Brandwand' oder ‚Brandmauer') ist ein Sicherungssystem, das ein Rechnernetz oder einen einzelnen Computer vor … Secure Shell Secure Shell oder SSH bezeichnet ein kryptographisches Netzwerkprotokoll für den sicheren Betrieb von Netzwerkdiensten über ungesicherte Netzwerke. Client Man nennt auch ein Endgerät selbst, das Dienste von einem Server abruft, Client. Das Gegenstück zum Client ist das jeweilige Serverprogramm bzw. der Server … Server Ein Server als Software ist ein Programm, das im Client-Server-Modell mit einem anderen Programm, dem Client (englisch für Kunde), kommuniziert. · Ein Hardware- … Ping (Datenübertragung) Ping ist ein Diagnose-Werkzeug, mit dem überprüft werden kann, ob ein bestimmter Host in einem IP-Netzwerk erreichbar ist. Daneben geben die meisten …