Heim

Virtual Private Network

Virtual Private Network (dt. virtuelles privates Netz; kurz VPN) ist ein reines Softwareprodukt und dient der Einbindung von Geräten eines benachbarten Netzes an das eigene Netz, ohne dass die Netzwerke zueinander kompatibel sein müssen.

Das dem Gerät derart zugeordnete Netz kann ein physikalisches Netz sein, an das sich 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 virtuelles 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

Ursprung

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.

Funktionsweise

Um ein entfernt liegendes Gerät durch ein benachbartes Netz hindurch an das neu zugeordnete Netz zu binden, bildet eine VPN-Client-Software die Beschaffenheit dieses Netzes auf dem einzubindenden Gerät, dem VPN-Partner, virtuell nach. Für die Kommunikation mit den VPN-Partnern werden nun die ursprünglichen Netzpakete des zugeordneten Netzes in ein VPN-Protokoll gepackt. Daher spricht man bei VPN vom Tunnel. Dann gilt es, die physikalisch 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. Empfängt der Kommunikationspartner das VPN-Paket, wird es ausgepackt. Dadurch kommen wieder die ursprünglichen Pakete aus dem zugeordneten Netz samt primärer Adressierung zum Vorschein und können entsprechend behandelt werden.

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 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.

Anwendungsmöglichkeiten

Sicherheit

Durch die Verwendung von Passwörtern, öffentlichen Schlüsseln oder durch ein Digitales Zertifikat kann die Authentifizierung der VPN-Endpunkte gewährleistet werden.

Implementierungen

VPNs setzen auf folgenden zugrunde liegenden Protokollen auf:

Siehe auch: SSL VPN, OpenVPN, CIPE

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.

Die virtuelle Netzwerkkarte einer VPN-Sitzung

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 (genau genommen ist es 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 den physikalischen Adapter des Clients zum Tunnelpartner ins Netz geschickt. Auf diese Weise erhalten sie die reale Absenderadresse der Netzwerkkarte des Clients 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 physikalisch vorhandene 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.

Literatur

Siehe auch