Verschlüsselt surfen

OpenVPN: Sicher unterwegs in unsicheren Netzwerken

19.04.2015 von David Wolski
Die Rolle des abhörsicheren Open-VPN-Servers ist ein Heimspiel für Linux-Systeme. Aber auch mit Windows ist es möglich, mit der Open-Source-Lösung ein Virtual Private Network (VPN) für den sicheren Zugriff von außen aufzubauen.

Ein Virtual Private Network (VPN) stellt eine verschlüsselte und abhörsichere Verbindung zu einem internen Netzwerk über einen VPN-Server her. Eine bewährte Lösung dafür ist Open VPN. Die Open-Source-Software ist nicht nur für Linux geeignet, sondern liegt für Clients und Server auch in einer Windows-Version vor. Der Vorteil ist, dass Open VPN eine reine Softwarelösung ist und keine zusätzliche Hardware oder VPN-fähige Router benötigt. Die Software ist allerdings für den professionellen Einsatz geschaffen, und die erste Konfiguration eines Open-VPN-Servers und der Clients stellt auch unter Windows eine gewisse Hürde dar, denn die Einstellung führt Sie in die Kommandozeile. Mitgelieferte Batch-Dateien von Open VPN vereinfachen aber die Konfiguration. Dieser Beitrag zeigt Schritt für Schritt, wie Sie ein einfaches VPN zwischen zwei Windows-PCs mit Open VPN 2.3.x einrichten. Grundlegende Kenntnisse zur Netzwerkadministration sind dabei hilfreich.

Ubuntu - VPN-Zugang über die grafische Oberfläche einrichten -
Ubuntu 14.04 LTS
Für eine OpenVPN-Verbindung installieren Sie im Software-Center das Paket "network-manager-openvpn".
Ubuntu 14.04 LTS
Nach Eingabe Ihres Passworts wird die entsprechende Software über die Paketverwaltung heruntergeladen und eingerichtet.
Ubuntu 14.04 LTS
Hat alles geklappt, versieht Ubuntu das Programm mit einem grünen Häkchen. Sie können dann das Software-Center schließen.
Ubuntu 14.04 LTS
Nun klicken Sie auf das Icon des NetworkManagers in der obersten Zeile der Arbeitsumgebung.
Ubuntu 14.04 LTS
Im Pulldown-Menü wählen Sie die Optionen "VPN-Verbindungen" und "VPN konfigurieren".
Ubuntu 14.04 LTS
Über die Schaltfläche "Hinzufügen" rufen Sie den Einrichtungs-Assistenten auf.
Ubuntu 14.04 LTS
Als Verbindungstyp wählen Sie im Abschnitt "VPN" die Option "OpenVPN".
Ubuntu 14.04 LTS
Die notwendigen Daten für das Gateway und die Art der Anmeldung erhalten Sie vom Betreiber des VPN-Servers, mit dem Sie sich verbinden wollen.
Ubuntu 14.04 LTS
Sobald Sie den Zugang fertig konfiguriert haben, können Sie die Verbindung über den NetworkManager nutzen.

Vorbereitung: den Server erreichbar machen

Auf dem PC, der als Open-VPN-Server agieren soll, müssen Sie die Windows-Firewall abschalten, da diese mit Open VPN nicht kompatibel ist. Dies ist kein Sicherheitsproblem, wenn der Rechner sowieso hinter einem Router mit NAT steht, was in den meisten Büro- und Heimnetzwerken der Fall ist. Der Router muss außerdem wissen, welche Anfragen aus dem Internet er durchlassen soll und welcher Rechner im Netzwerk der Open-VPN-Server ist. Dazu richten Sie auf dem Router Portforwarding ein, um gezielt einen einzigen Port nach außen zu öffnen und an die passende Adresse im LAN weiterzuleiten. Ein Beispiel dazu: Der übliche Port für Open VPN ist Port 1194.

Portforwarding auf dem Router: Damit der Open-VPN-Server im LAN erreichbar ist, muss der Router den verwendeten Port 1194 für Open VPN zum richtigen PC durchreichen (hier 192.168.1.77).


Wenn der Open-VPN-Server im LAN die IP 192.168.1.77 hat, dann leiten Sie vom Router den Traffic vom Typ UDP des Ports 1194 auf die interne IP-Adresse und den dortigen Port 1194 um. Der Server, der von außen die VPN-Verbindungen akzeptieren soll, muss zudem aus dem Internet erreichbar sein, und zwar über eine feste IP-Adresse oder über einen eindeutigen DNS-Namen.

Bei DSL-Anbindung gibt es keine feste IP, da bei jedem Verbindungsaufbau der Provider neue IP-Adressen vergibt. Für diesen Fall leistet ein dynamischer DNS-Dienst wie beispielsweise das kostenlose No-IP Hilfestellung, das einer sich ändernden IP-Adresse nach Rückmeldung durch den Router einen festen Host-Namen im DNS zuteilt. Die meisten DSL-Router unterstützen No-IP und teilen dem Dienst automatisch die neue, zugeteilte IP mit.

Open VPN installieren und Schlüssel erzeugen

Auf dem als Server ausgewählten Windows-System installieren Sie Open VPN, das in seinem Installationspaket sowohl die Serversoftware als auch die Programme für den Client bietet.

Installieren Sie Open VPN mit allen Komponenten, und markieren Sie dazu unbedingt bei der Installation die optionalen Komponenten "OpenSSL Utilities" und "OpenVPN RSA Certificate Management Scripts".

Letztere werden zur Erstellung der eigenen Schlüsselpaare benötigt. Open VPN richtet den neuen, virtuellen Netzwerkadapter "TAPWin32 Adapter V9" ein, der dann in der Systemsteuerung unter den Netzwerkverbindungen auftaucht. Der Installation des dafür mitgebrachten Treibers müssen Sie in einem angezeigten Dialogfenster wie bei anderen Gerätetreibern manuell zustimmen. Wichtig: Damit der Server später Open-VPN-Verbindungen akzeptieren kann, müssen Sie die Windows-Firewall in der Systemsteuerung deaktivieren, da diese nicht mit Open-VPN-Verbindungen umgehen kann.

Schritt 1: Bevor Sie den Open-VPN-Server starten können, müssen Sie die Schlüsseldateien mithilfe einiger Batch-Dateien erzeugen und die Netzwerkeinstellungen vornehmen. Gehen Sie mit dem Windows Explorer ins Programmverzeichnis von Open VPN. Dieses finden Sie üblicherweise unter "C:\Program Files\Open-VPN". Gehen Sie dort ins Unterverzeichnis "easy-rsa": Benennen Sie die Batch-Datei vars. bat.sample nach vars.bat um, und überschreiben Sie damit die bereits vorhandene vars.bat. Öffnen Sie dann eine Eingabeaufforderung mit Administratorrechten, was durch einen Rechtsklick auf die entsprechende Verknüpfung im Startmenü und dem Kontextmenüpunkt "Als Administrator" gelingt. Gehen Sie dann mit "pushd" in das genannte Verzeichnis, und führen Sie diese beiden Batch-Dateien aus:

pushd "C:\Program Files\OpenVPN\ easy-rsa"
vars.bat
clean-all.bat

Diese beiden Batch-Dateien geben zunächst die nötigen Umgebungsvariablen vor und erstellen im Programmordner von Open VPN das neue Unterverzeichnis "keys". Bei einer Standardinstallation von Open VPN auf Windows 7 und 8 liegt dieses beispielsweise unter C:\Program Files\OpenVPN\easy-rsa\keys.

Schritt 2: Für die verwendete Verschlüsselung von Open VPN brauchen Sie auf Ihrem künftigen VPN-Server ein Zertifikat für Ihre eigene Certificate Authority (CA). Dazu führen Sie die Batch-Datei

build-ca.bat

aus und geben in der Eingabeaufforderung die benötigten Eigenschaften ein. Die abgefragten Eingaben erscheinen umfangreich, sind aber weitgehend beliebig. Die folgende Übersicht erklärt alle Parameter und die erwarteten Eingaben:

Country Name: Landeskürzel, etwa "DE" für Deutschland
State or Province Name: Bundesland, beliebig
Locality Name: Ortsangabe, beliebig
Organization Name: beliebig
Organizational Unit Name: beliebig und optional
Common Name: Name des VPN-Servers, etwa "MeinServer"
Name: Name der VPN-Verbindung, identisch mit "Common Name", etwa "MeinServer"
Email Address: Ihre E-Mail-Adresse

Serverzertifikate erstellen: Open VPN bringt für die Erzeugung aller benötigten Schlüssel und Zertifikate einige Batch-Dateien mit, die dann jeweils in der Eingabeaufforderung Ihre Eingaben erwarten.

Schritt 3: Open VPN benötigt für den Verbindungsaufbau einige kryptografische Parameter (Diffie-Hellman-Parameter), die Sie einmalig bei der Installation des Servers erzeugen müssen. Die dafür benötigte Konfigurationsdatei für den Verschlüsselungsalgorithmus erzeugen Sie ganz einfach mit dem Aufruf dieser Batch-Datei:

build-dh.bat

Hier ist keine Angabe von Parametern erforderlich.

Schritt 4: Als Nächstes erstellen Sie das eigentliche Schlüsselpaar für Ihren neuen VPN-Server. Dies gelingt mit der Batch-Datei build-keyserver.bat, der Sie den zuvor eingegeben Namen der VPN-Verbindung aus Schritt 2 als Parameter mitgeben. In unserem Beispiel wäre dies die folgende Eingabe:

build-key-server.bat MeinServer

Diese Batch-Datei verlangt wiederum die Eingabe der Schlüsselinformationen wie in Schritt 2. Die Angaben sind die gleichen wie beim vorangegangenen Aufruf der Datei build-ca.bat. Nur haben Sie hier die Wahl, zum Abschluss noch ein Passwort zu definieren, mit dem der Schlüssel zusätzlich chiffriert wird. Das Passwort ist optional, und Sie sollten es in dieser Anleitung leer lassen, um die Konfiguration vorerst nicht komplizierter als nötig zu machen. Ebenfalls leer lassen Sie die Eingabe von "An optional company name", da diese nicht wirklich notwendig ist. Am Ende bestätigen Sie noch die beiden Rückfragen "Sign the certificate" jeweils mit "y".

Das VPN als Heimnetzwerk: Nach der Verbindungsaufnahme des Clients mit dem Open- VPN-Server fragt Windows nach, um welchen Typ es sich handelt. Wählen Sie das "Heimnetzwerk".

Schritt 5: Der Server hat nun alle benötigten Schlüssel und Zertifikate. Damit Sie sich aber mit einem VPN-Client später verbinden können, braucht der Client seinen eigenen Schlüsselbund. Diesen erzeugen Sie in diesem Schritt mit dem Aufruf der Batch-Datei build-key.bat, die Sie jetzt mit dem gewünschten Client-Namen als Parameter aufrufen. In diesem Beispiel soll der Client einfach "MeinClient" heißen:

build-key.bat MeinClient

Es erfolgen wieder die Rückfragen zu den bereits bekannten Feldern wie in Schritt 2, allerdings mit einem wichtigen Unterschied: Bei den Fragen nach "Common Name" und "Name" geben Sie jetzt den gewünschten Client-Namen an, beispielsweise "MeinClient" - nicht den Servernamen. Nach dem Signieren erhalten Sie ein Unterverzeichnis "keys" mit den neuen Schlüsseldateien. Für die Einrichtung des Open-VPN-Clients auf einem anderen Windows-PC benötigen Sie dort später nur diese drei Dateien: MeinClient.crt, MeinClient.key, ca.crt. Kopieren Sie diese Dateien auf einen USB-Stick oder auf eine Netzwerkfreigabe, um sie später auf dem Client einzurichten.

Open VPN für den ersten Start konfigurieren

Nach der Erzeugung aller Schlüssel kommt nun die eigentliche Serverkonfiguration für Open VPN. Die Konfiguration erfolgt hier nach Linux-Tradition in einer Textdatei, was Maus-verwöhnte Windows-Anwender erst mal abschrecken wird. Textdateien haben allerdings den Vorteil, dass alle Einstellungen und Optionen übersichtlich an einem Ort untergebracht sind. Für den Server begnügen wir uns mit einer möglichst einfachen Konfiguration für die Verbindung eines Clients, ohne Routing. Erstellen Sie eine neue Textdatei mit dem Namen server. ovpn im Verzeichnis "C:\Program Files\Open-VPN\config".

Hinweis: Für die Bearbeitung der Konfigurationsdateien empfiehlt sich ein fähiger Text-Editor wie etwa das Freeware-Programm Notepad++. Das traditionelle Notepad von Windows ist wenig hilfreich, da es die UNIX-Zeilenumbrüche in den Konfigurationsdateien nicht richtig erkennt.

Für das folgende Konfigurationsbeispiel gehen wir von diesen Netzwerkadressen aus: Die Adresse des Open-VPN-Servers im internen LAN ist 192.168.1.77. Das VPN wird im Subnetz 192.168.10.0 aufgebaut. Ausgehend von diesen Beispieladressen bekommt die Konfigurationsdatei server.ovpn die Zeilen aus dem Kasten "Open VPN: Server-Konfiguration" als Inhalt.

Im ersten Abschnitt dieser Konfigurationsdatei sind die Pfade der benötigten Zertifikate definiert. Beachten Sie hier, dass die Pfadangaben von Anführungszeichen eingefasst sind und dass Sie jeweils einen doppelten Backslash angeben müssen. Im Abschnitt "# Server und Netzwerk" erscheint zunächst die Angabe der lokalen IP-Adresse des Servers im LAN, in diesem Beispiel 192.168.1.77. Passen Sie diese Adresse so an, dass hier die tatsächliche interne IP Ihres Open-VPN-Server steht.

Darunter folgt die Angabe des Ports, hier 1194. Welches Subnetz für das VPN verwendet wird, gibt die Zeile "server 192.168.10.0 255. 255.255.0 #Subnetz" an. Der Open-VPN-Server bekommt so auf seiner VPN-Schnittstelle automatisch die Adresse 192.168.10.1 zugeteilt und der Client die Adresse 192.168.10.x. Im Abschnitt "# Log" definieren Sie die Pfade zu Log-Dateien im Programmordner von Open VPN. Diese Dateien müssen noch nicht existieren, da sie der Server beim ersten Start selbstständig anlegt.

Open-VPN-Server-Konfiguration

# Zertifikateca "C:\\\\Program Files\\\\OpenVPN\\\\easy-rsa\\\\keys\\\\ca.crt"cert "C:\\\\Program Files\\\\OpenVPN\\\\easy-rsa\\\\keys\\\\MeinServer.crt"key "C:\\\\Program Files\\\\OpenVPN\\\\easy-rsa\\\\keys\\\\MeinServer.key"dh "C:\\\\Program Files\\\\OpenVPN\\\\easy-rsa\\\\keys\\\\dh1024.pem"# Server und Netzwerklocal 192.168.1.77 #LAN-Adresse des Serversport 1194proto udpdev tapserver 192.168.10.0 255.255.255.0 #Subnetzifconfig-pool-persist ipp.txtcomp-lzopersist-keypersist-tunkeepalive 10 120# Logstatus "C:\\\\Program Files\\\\Open-VPN\\\\log\\\\openvpn-status.log"log "C:\\\\Program Files\\\\OpenVPN\\\\log\\\\openvpn.log"log-append "C:\\\\Program Files\\\\OpenVPN\\\\log\\\\openvpn.log"verb 3

Wenn die Konfiguration fertig ist, starten Sie auf dem Server den Open-VPN-Dienst. Dies geht am schnellsten in der Eingabeaufforderung (mit Administratorrechten), in der Sie mit

net start OpenVPNService

Auf Freigaben über VPN zugreifen: Der verbundene Client kann auf den Server zugreifen und beispielsweise dessen Windows-Freigaben anhand der IP-Adresse über das verschlüsselte VPN nutzen.

den Dienst starten. Es empfiehlt sich, gleich einen Blick auf die Logdateien im Verzeichnis "C:\Program Files\OpenVPN\log" zu werfen. Sollte die Konfiguration nämlich Fehler enthalten, beschwert sich Open VPN sofort und gibt ausführliche Fehlermeldungen in den Logdateien aus. Einen automatischen Start des Open-VPN-Dienstes können Sie in der Diensteverwaltung (services.msc) oder in der Eingabeaufforderung festlegen:

sc config OpenVPNService start= auto

Hinter dem Gleichheitszeichen vor "auto" ist ein Leerzeichen erforderlich.

Den Client für Open VPN konfigurieren

Die Konfiguration des Clients fällt deutlich knapper aus. Um den Client fit zu machen, installieren Sie dort wie auf dem Server Open VPN mit allen Komponenten. Die Windows-Firewall brauchen Sie hier nicht abzuschalten. Um den Aufbau einfach zu halten, kann hier die gesamte Konfiguration von Open VPN in einem Verzeichnis liegen. Kopieren Sie deshalb kurzerhand die Client-Schlüssel Mein-Client.crt, MeinClient.key und das allgemeine Zertifikat ca.crt nach "C:\Program Files\Open-VPN\config". Anschließend legen Sie in diesem Verzeichnis die neue Textdatei mit dem Namen client.ovpn an, der Sie die Zeilen aus dem Kasten "Open VPN: Client-Konfiguration" als Inhalt geben:

Der erste Abschnitt bindet auch hier die Zertifikate ein, nur dieses Mal jene des Clients. Anzupassen ist bei dieser Beispielkonfiguration ansonsten lediglich die Zeile "remote hostname. myip.org 1194 #Hostname anpassen". Hier muss anstatt "hostname.myip.org" der tatsächliche Host-Name des Routers stehen, so wie er über den dynamischen DNS-Dienst erreichbar ist. Bei den Angaben "route-metric 512" und "route 0.0.0.0 0.0.0.0" handelt es sich um einen Trick, um die virtuelle Netzwerkschnittstelle von Open VPN unter Windows zu initialisieren.

Windows fügt auf dem Client diese virtuelle Netzwerkschnittstelle von Open VPN als "LAN-Verbindung 2" hinzu, und das System behandelt die Schnittstelle als "Nicht identifiziertes Netzwerk". Netzwerkschnittstellen dieser Art bekommen immer den Typ "Öffentliches Netzwerk" zugeteilt, in dem nicht alle Netzwerkprotokolle zur Verfügung stehen. Zwar können Sie Netzwerkdienste wie Windows-Freigaben vom Open-VPN-Server nutzen, der Client antwortet jedoch nicht auf Ping-Anfragen und kann auch keine Freigaben über das VPN anbieten. Um dies zu umgehen, trickst unsere Client-Konfiguration Windows mit einer neuen Standard- Route aus, die jedoch leer ist. Auf diese Weise können Sie der VPN-Verbindung nach deren Aufbau auch die Kategorie "Arbeitsplatznetzwerk" zuweisen, um auch vom Server aus Ping-Anfragen an den Client senden zu können und auf Freigaben in umgekehrter Richtung zuzugreifen.

Open-VPN-Client-Konfiguration

# Zertifikateca "C:\\\\Program Files\\\\OpenVPN\\\\config\\\\ca.crt"cert "C:\\\\Program Files\\\\OpenVPN\\\\config\\\\MeinClient.crt"key "C:\\\\Program Files\\\\OpenVPN\\\\config\\\\MeinClient.key"# Client-Setupclientdev tapproto udpremote hostname.myip.org 1194 #Hostname anpassen!resolv-retry infinitenobindpersist-keypersist-tunroute-metric 512route 0.0.0.0 0.0.0.0comp-lzoverb 3

Den Open-VPN-Client starten

Nachdem der Open-VPN-Dienst auf dem Server bereits läuft, ist es nun an der Zeit, den Client zu starten. Dazu bringt Open VPN ein Werkzeug für den unkomplizierten Start mit: Open VPN GUI ist ein Tool, das bei der Installation von Open VPN mit Standardeinstellungen gleich mit installiert wird. Sie finden es im Startmenü im Ordner Open VPN. Es ist wichtig, dieses Tool stets als Administrator auszuführen, da der Aufbau einer VPN-Verbindung auch neue Routen in den Netzwerkeinstellungen setzt - dafür sind immer Admin-Rechte nötig. Um nicht jedes Mal Open VPN GUI per Rechtsklick und "Als Administrator" starten zu müssen, sollten Sie in den "Eigenschaften" der Verknüpfung unter "Kompatibilität" die Option "Programm als Administrator ausführen" als Standard festlegen.

Nach dem Aufruf von Open VPN GUI präsentiert sich im Info-Bereich neben der Zeitanzeige ein neues Netzwerksymbol, das ohne VPN-Verbindung rot eingefärbt ist. Mit einem Rechtsklick auf das Symbol wählen Sie im Menü den Punkt "Connect" aus. Es öffnet sich ein Programmfenster, das Sie mit detaillierten Meldungen über den Verbindungsaufbau informiert. Nachdem die VPN-Verbindung steht, schließt sich das Fenster, und das Symbol im Info-Bereich zeigt sich in Grün. In diesem Beispiel bekommt der Client nun die zusätzliche Adresse 192.168.10.2 zugewiesen und kann mit dem Server auf 192.168.10.1 kommunizieren und dessen Netzwerkfreigaben nutzen. (PC-Welt/hal)