VPN
Willemers Informatik-Ecke
Ein VPN besteht aus einer Netzwerkverbindungen, die virtuell über ein reales Netzwerk transponiert wird. Für den Einsatz von VPN gibt es mehrere mögliche Motive:

Virtuelle Netzwerkschnittstelle

Für die Verwendung des VPN wird eine zusätzliche, virtuelle Netzwerkschnittstelle erzeugt. Über diese man genauso eine Verbindung aufnehmen wie über eine Ethernetschnittstelle.

Die VPN-Schnittstelle hat eine eigene IP-Adresse. Die Routing-Tabellen gesetzt sind, geht der gesamte Internetverkehr nur die Pakete über die VPN-Schnittstelle, die zum Nummernkreis der VPN-IP-Adresse gehören.

Default-Route auf VPN-Schnittstelle

Ist die Default-Route auf die VPN-Schnittstelle gerichtet, gehen alle Pakete, die nicht ins lokale Netzwerk gehen, automatisch über die VPN-Schnittstelle zum VPN-Server. Dort werden Internet-Adressen an dessen Default-Gateway weitergeleitet und gehen über dessen IP-Adresse ins Internet.

Die auf diese Weise angesprochenen Hosts sehen lediglich die IP-Adresse des Servers. Damit ist die IP-Adresse des Clients verschleiert. Steht der Server in einem anderen Teil der Welt, ist die Position des Clients verborgen. Dies kann dazu genutzt werden, eine staatliche Internet-Beschränkung einer autoritären Regierung zu unterwandern, aber auch, wenn man an Informationen gelangen möchte, die für Ausländer nicht verfügbar gemacht werden sollen.

Routen für einzelne Netzwerke gehen über die VPN-Schnittstelle

Bleibt die Default-Route auf dem eigenen Router im LAN, werden Internet-Zugriffe über diesen abgewickelt. In der Routing-Tabelle werden dann nur Netzwerke aufgeführt, die über den VPN-Server erreichbar sind.

Dieses Szenario wird beispielsweise im Home-Office verwendet, wenn auf Ressourcen wie Datenbanken oder Dateiserver zugegriffen werden muss, die man keinesfalls frei ins Internet stellen kann und will. Der Arbeitsplatz erhält so eine IP-Adresse des Firmennetzwerks, so dass die Zugriffseinschränkungen der entsprechenden Server für Firmenfremde aufgehoben sind.

Verschlüsselung

VPN-Verbindungen sind verschlüsselt. Das ermöglicht es, Netzwerkverbindungen, die von Haus aus unverschlüsselt sind, über das Internet zu transportieren, ohne dass NSA und Konsorten alles mitlesen.

Für die Verschlüsselung wird beispielsweise SSL/TSL (openvpn) oder IPsec (Cisco) verwendet. Für die Sicherheit ist es naturgegeben von Belang, dass der Anbieter vertrauenswürdig ist, also optimalerweise Open Source.

Der VPN-Server bietet üblicherweise dem Client für die Verschlüsselung ein Zertifikat an. Damit kann der Client feststellen, ob der Gegenüber es wirklich selbst ist. Außerdem bietet es gleich den öffentlichen Schlüssel, um die nachfolgende Kommunikation zu verschlüsseln.

Implementierungen

openvpn

Unter Linux wird typischerweise Open VPN eingesetzt.

Beide Partner einer VPN-Verbindung benötigen das Paket openvpn, das mit dem folgenden Befehl installiert wird:

# apt install openvpn
Für die Erstellung eines Zertifikats wird auch das Paket easy-rsa benötigt. Nach der Installation befinden sich im Verzeichnis /usr/share/doc/easy-rsa einige Skripten, mit denen sich das benötigte Zertifikat erstellen lässt.

Cisco

Einige Cisco-Geräte enthalten eine VPN, die aber leider auf einem anderen Protokoll beruht, sodass openvpn nicht kompatibel ist.

Um einen Client damit zu verbinden, muss für Linux der Cisco-Client AnyConnect heruntergeladen und installiert werden.