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
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)
9:08
VPNs Explained | Site-to-Site + Remote Access
CertBros · 953.180 Aufrufe
6:46
Was ist ein VPN und wie funktioniert ein VPN? | Einfach erklärt!
VPNpro Deutsch 🇩🇪 · 2.247 Aufrufe
5:50
What Is VPN & How Does It Work? | VPN Explained In 5 Minutes | Virtual Private Network | Simplilearn
Simplilearn · 250.812 Aufrufe
1:39
Kann man mehrere VPNs hintereinander verschachteln ? #informatik #vpn #code #erklärt
Hood Informatik · 56.982 Aufrufe