Virtual Private Network (dt. virtuelles privates Netz; kurz VPN) dient der Einbindung von Geräten eines benachbarten Netzes an das eigene Netz, ohne dass die Netzwerke zueinander kompatibel sein müssen.
Das Netz, in das diese Geräte eingebunden werden, wird im Folgenden zugeordnetes Netz genannt. Das kann ein physisches Netz sein, an das sich dafür berechtigte externe Geräte (VPN-Partner) über ein spezielles Gateway (VPN-Einwahlknoten) binden können (Site-to-End-VPN). Die VPN-Partner werden dadurch zum Bestandteil des zugeordneten Netzes und sind nun von dort aus direkt adressierbar – praktisch so, als befänden sie sich mittendrin (dank dieser Illusion spricht man bezüglich der VPN-Partner von einem virtuellen Netz). Der Einwahlknoten kann auch auf ein rein virtuelles Netz zeigen, welches lediglich aus weiteren VPN-Partnern besteht (End-to-End-VPN). Daneben besteht die Möglichkeit, zwei zueinander kompatible Netzwerke, die an dem benachbarten Netz angrenzen, miteinander zu verbinden (Site-to-Site-VPN), wobei auch hier das dazwischen liegende benachbarte Netz von einer vollkommen anderen Art sein kann.
VPN bildet dabei ein logisches Teilnetz, welches über das benachbarte Netz gelegt wird und die dort üblichen Adressierungsmechanismen nutzt, datentechnisch aber eigene Netzwerkpakete transportiert und so vom Rest dieses Netzes abgekapselt arbeitet. Es ermöglicht die Kommunikation der darin befindlichen VPN-Partner mit dem zugeordneten Netz, basiert auf einer Tunneltechnik, ist individuell konfigurierbar, kundenspezifisch und in sich geschlossen (daher „privat“).
Eine Schnittstelle vorausgesetzt, die eine Kommunikation der VPN-Partner mit dem jeweils angrenzenden Netz bis hin zum VPN-Einwahlknoten erlaubt, funktioniert VPN auch über mehr als zwei Netzwerke hinweg.
Inhaltsverzeichnis |
Ihrem Ursprung nach bilden VPNs innerhalb eines öffentlichen Wählnetzes virtuelle Teilnetze, wie Netze der Sprachkommunikation, X.25, Frame Relay oder ISDN. Heute wird VPN alltagssprachlich gebraucht, um ein (meist verschlüsseltes) virtuelles Netz zu bezeichnen, welches über ein TCP/IP-Netz gelegt wird, oft mit Bezug auf das öffentliche Internet als benachbartes Netz. Im Folgenden wird von diesem sprachgebräuchlichen (IP-)VPN ausgegangen.
Sobald wenigstens zwei separate Netzwerke über ein spezielles Gerät miteinander verbunden sind, handelt es sich um benachbarte Netze. Das Verbindungsgerät könnte z. B. ein (NAT-)Router oder ein Gateway sein. Es sorgt dafür, dass eine Kommunikation zwischen den Teilnehmern des einen Netzes zu Teilnehmern des anderen Netzes möglich wird.
Die benachbarten Netze bilden zusammen die Hardware (die Geräte selbst, zuzüglich Kabel etc.) und Software (die wiederum von den Geräten benötigt wird, um ihnen „zu sagen“, was sie überhaupt machen sollen).
Um ein Gerät aus dem benachbarten Netz an das eigene Netz zu binden, wird zusätzlich zu der oben beschriebenen Verbindung eine VPN-Software benötigt. In der klassischen Konfiguration wird sie zum einen auf dem Gerät installiert, das die Netzwerke miteinander verbindet, und zum anderen auf das einzubindende externe Gerät gebracht. VPN funktioniert ohne dass dafür ein zusätzliches Kabel verlegt oder sonst irgendetwas an Hardware hinzugefügt werden muss. Es ist daher ein reines Softwareprodukt.
Das verbindende Gerät wird durch die Softwareinstallation – zusätzlich zu seiner bisherigen Funktion – zu einem VPN-Gateway (auch VPN-Einwahlknoten).
Für die Kommunikation des zugeordneten Netzes mit einem seiner VPN-Partner werden am VPN-Gateway die ursprünglichen Netzwerkpakete in ein VPN-Protokoll gepackt. Daher spricht man bei VPN vom Tunnel.
Dann gilt es, die verfügbaren Wege des benachbarten Netzes, in dem sich der VPN-Partner befindet, zu nutzen, um die Pakete zum Kommunikationspartner zu übertragen. Der Trick besteht darin, dass sich die VPN-Pakete unabhängig von ihrem Inhalt separat adressieren lassen. Dank dieser sekundären Adressierung lässt sich das Paket in einer zum Fremdnetz kompatiblen Form auf den Weg bringen.
Auf dem VPN-Partner läuft eine VPN-Client-Software, die dort die Beschaffenheit des zugeordneten Netzes virtuell nachbildet (siehe VPN-Adapter). Sie nimmt die Pakete in Empfang und packt sie aus. Dadurch kommen wieder die ursprünglichen Pakete aus dem zugeordneten Netz samt primärer Adressierung zum Vorschein und können entsprechend behandelt werden.
Die Kommunikation des VPN-Partners mit dem zugeordneten Netz funktioniert genau anders herum: Die VPN-Client-Software packt die Pakete in ein VPN-Protokoll und schickt diese zum VPN-Gateway, welches die Pakete auspackt und in das zugeordnete Netz zum tatsächlichen Kommunikationspartner leitet.
VPN funktioniert deshalb weitgehend unabhängig von der physikalischen Topologie und den verwendeten Netzwerkprotokollen auch zwischen zwei vollkommen unterschiedlichen Netzwerken. Denn das benachbarte Netz dient lediglich als Transportmittel bei der Kommunikation mit den eingebundenen Geräten. Da die tatsächlichen Netzwerkpakete in dem VPN-Protokoll verpackt sind, müssen sie nur von den VPN-Partnern, nicht aber von den Netzwerkkomponenten des benachbarten Netzes verstanden werden.
Gegenüber anderen Tunnelarten eines TCP/IP-Netzes zeichnet sich der VPN-Tunnel dadurch aus, dass er unabhängig von höheren Protokollen (HTTP, FTP etc.) sämtliche Netzwerkpakete weiterleitet. Auf diese Weise ist es möglich, den Datenverkehr zweier Netzkomponenten praktisch uneingeschränkt durch ein anderes Netz zu transportieren, weshalb sogar komplette Netzwerke über VPN miteinander verbunden werden können.
Abhängig vom verwendeten VPN-Protokoll lassen sich die Netzwerkpakete zudem verschlüsseln. Da die Verbindung dadurch abhör- und manipulationssicher wird, kann eine Verbindung zum VPN-Partner durch ein unsicheres Netz hindurch aufgebaut werden, ohne dabei ein erhöhtes Sicherheitsrisiko einzugehen. Alternativ dazu lassen sich über VPN auch ungesicherte Klartextverbindungen aufbauen.
Durch die Verwendung von Passwörtern, öffentlichen Schlüsseln oder durch ein digitales Zertifikat kann die Authentifizierung der VPN-Endpunkte gewährleistet werden.
VPNs setzen auf folgenden zugrunde liegenden Protokollen auf:
Viele moderne Betriebssysteme enthalten Komponenten, mit deren Hilfe ein VPN aufgebaut werden kann. Linux enthält seit Kernel 2.6 eine IPSec-Implementierung, ältere Kernel benötigen das KLIPS-IPSec-Kernelmodul, das von Openswan und strongSwan zur Verfügung gestellt wird. Auch BSD, Cisco IOS, Mac OS X und Windows sind IPSec-fähig.
Siehe auch: SSL VPN, OpenVPN, CIPE
Die Tunnelsoftware des Clients sorgt in der Regel dafür, dass der Client nur noch die Kommunikationspartner des VPN-Netzes, nicht aber die übrigen Computer seines ursprünglichen Netzes erreicht. In diesem Modus können die Computer aus dem ursprünglichen Netz des Clients auch keine Verbindung mehr zu einem seiner (möglichen) Netzwerkdienste aufbauen. Das wird mithilfe einer systeminternen virtuellen Netzwerkkarte erreicht. Sie wird von der VPN-Client-Software bei der Erstellung einer Sitzung angelegt und im Folgenden VPN-Adapter genannt.
Der VPN-Adapter ist lokal adressierbar, kann aber nicht vom Netz aus angesprochen werden. In dem beschriebenen Modus können sämtliche Programme dieses Computers per Systemroute ihre Netzwerkpakete nur noch an den VPN-Adapter schicken. Alle dort eingehenden Pakete werden nun automatisch von der Tunnelsoftware in Empfang genommen.
Der VPN-Adapter erhält dieselbe IP-Adresse, welche der Sitzung auf dem VPN-Gateway zugewiesen wurde. Zum einen wird dadurch dem Client die Möglichkeit gegeben, über Standardmethoden die gerade aktuelle eigene IP-Adresse innerhalb des VPN-Netzes zu erfragen. Zum anderen erhalten auch alle darüber verschickten Netzwerkpakete bereits hier eine für das VPN-Netz gültige Absenderadresse.
Die an den VPN-Adapter eingehenden Pakete werden von der Tunnelsoftware nun ggf. verschlüsselt und in das separat adressierbare VPN-Protokoll verpackt (innerhalb eines TCP/IP-Netzes ist es genau genommen das IP-Protokoll, welches dem VPN-Protokoll als Transportmittel dient und die Adressierung realisiert). Der Original-Header wird in der Regel durch einen „Encryption Protocol Header“ ersetzt, wodurch man selbst aus dem Header nun keinerlei Informationen der Originalpakete mehr erhält.
Die Pakete werden nun über die real vorhandene Netzwerkkarte des Clients zum Tunnelpartner ins Netz geschickt. Auf diese Weise erhalten sie die Absenderadresse der Netzwerkkarte und nicht die des VPN-Adapters. Nur so können die Antwortpakete adressierungstechnisch auch wieder zum Client gelangen.
Erst wenn das VPN-Gateway auf der Gegenseite die ursprünglichen Pakete aus dem VPN-Protokoll extrahiert hat, kommen auch wieder ihre ursprünglichen (VPN-) Adressen zum Vorschein (Zielsystem=Computer aus dem Netz hinter dem VPN-Gateway und Absender=Adresse des VPN-Adapters). Es liegt nun an dem VPN-Gateway die an den VPN-Adapter adressierten Antwortpakete des Zielsystems abzufangen, in das VPN-Protokoll zu packen und die VPN-Pakete wieder an die wahre Netzwerkadresse (auf dem Port der Tunnelsoftware) zurückzuschicken, damit sie den Client erreichen können.
Stellt der Client einen Netzwerkdienst innerhalb des VPNs bereit, so muss sich der Dienst an den virtuellen VPN-Adapter binden.