Ein Virtual Private Network (VPN) (deutsch: Virtuelles Privates Netzwerk) ist ein Computernetz, das zum Transport privater Daten ein öffentliches Netz (zum Beispiel das Internet) nutzt. Teilnehmer eines VPN können Daten wie in einem internen LAN austauschen. Die einzelnen Teilnehmer selbst müssen hierzu nicht direkt verbunden sein. Die Verbindung über das öffentliche Netz wird üblicherweise verschlüsselt. Der Begriff „Private“ impliziert jedoch nicht, wie vielfach angenommen, dass es sich um eine verschlüsselte Übertragung handelt. Eine Verbindung der Netze wird über einen Tunnel zwischen VPN-Client und VPN-Server ermöglicht. Meist wird der Tunnel dabei gesichert, aber auch ein ungesicherter Klartexttunnel ist ein VPN.
IP-VPNs nutzen das Internet zum Transport von IP-Paketen unabhängig vom Übertragungsnetz, was im Gegensatz zum direkten Remote-Zugriff auf ein internes Netz (direkte Einwahl beispielsweise über ISDN, GSM...) wesentlich flexibler und kostengünstiger ist.
Anwendungen
VPNs werden oft verwendet, um Mitarbeitern außerhalb einer Organisation oder Firma Zugriff auf das interne Netz zu geben. Dabei baut der Computer des Mitarbeiters eine VPN-Verbindung zu dem ihm bekannten VPN-Gateway der Firma auf. Über diese Verbindung ist es dem Mitarbeiter nun möglich, so zu arbeiten, als ob er im lokalen Netz der Firma wäre (Remote-Access VPN). Dieses Verfahren wird auch verwendet, um WLANs und andere Funkstrecken zu sichern (End-to-Site VPN).
Sollen zwei lokale Netze verbunden werden, wird auf beiden Seiten ein VPN-Gateway verwendet. Diese bauen dann untereinander eine VPN-Verbindung auf. Andere Rechner in einem lokalen Netz verwenden nun den Gateway auf ihrer Seite, um Daten in das andere Netz zu senden. So lassen sich zum Beispiel zwei weit entfernte Standorte einer Firma verbinden (Site-to-Site VPN).
Es ist auch möglich, dass ein Tunnel zwischen zwei einzelnen Computern aufgebaut wird. Dies wird praktisch aber kaum gemacht. Nur Organisationen mit einem extrem hohen Sicherheitsbedürfnis verschlüsseln so die gesamte Kommunikation in ihren Netzen. FreeS/WAN, sowie dessen Nachfolger Openswan und strongSwan, bietet noch die Möglichkeit der so genannten opportunistic encryption: Es wird zu jedem Rechner, mit dem der eigene Computer Daten austauscht, ein Tunnel aufgebaut, wenn dieser einen Schlüssel per DNS bereitstellt.
Sicherheit
Durch Verwendung geheimer Passwörter, öffentlicher Schlüssel oder Zertifikate kann die Authentifizierung der VPN-Endpunkte gewährleistet werden.
Es ist sinnvoll, auf den VPN-Gateways den Datenverkehr zu filtern. Sonst ist es zum Beispiel Computerwürmern möglich, sich im gesamten Netz zu verbreiten.
Gute VPN-Software verwendet Authentizität und Prüfsummen, um sich vor Manipulation der Daten zu schützen. Ebenso werden Sequenznummern benutzt, um Replay-Attacken zu verhindern.
Implementierungen
Gängige Techniken zum Aufbau von VPNs sind PPTP, IPsec, SSL, OpenVPN, CIPE und PPP über SSH.
VPNs setzen auf folgenden zugrundeliegenden Protokollen auf:
-
IPsec eignet sich sowohl für Site-to-Site VPNs als auch für End-to-Site VPNs.
-
TLS/SSL werden hauptsächlich für End-to-Site VPNs eingesetzt.
-
PPTP und L2TP ohne IPsec sollten nicht verwendet werden, da sie als unsicher gelten.
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 und Windows sind IPsec-fähig.