OpenVPN unter Windows – Anleitung
Installation von OpenVPN in Windows Server oder Client (Basierend auf Server 2003 oder XP). Das HOWTO beschreibt das Setup des Servers und die Erstellung von Keys. Zudem die Integration von Clients.
Download & Installation
Download unter www.openvpn.net – Windows Installer.
Unter “Choose Components” wählen Sie sämtliche Komponenten aus. Danach kann OpenVPN installiert werden.

Zertifikate erstellen
Wir wechseln ins Verzeichnis easy-rsa (Meistens unter C:\Programme\OpenVPN\easy-rsa) und benennen folgende Files um:
vars.bat.sample in vars.bat
openssl.cnf.sample in openssl.cnf
Danach editieren wir vars.bat und passen folgende Zeilen unseren Bedürfnissen an:
set KEY_COUNTRY=CH set KEY_PROVINCE=Zuerich set KEY_CITY=Effretikon set KEY_ORG=MeineFirma AG set KEY_EMAIL=support@meinefirmag.ch
Nun setzen wir die Umgebungsvariablen mittels Ausführen des vars.bat

Danach werden alle Files resetted und die Zertifikationsinstallation vorbereitet mittels clean-all.bat

Nun beginnen wir mit der Erstellung der einzelnen Keys. Folgende Keys werden nun erstellt:
CA (build-ca.bat)
DH (build-dh.bat)
Server-Zertifikat (build-key-server.bat)
Client-Zertifikat(e) (build-key.bat)
Erstellen von CA und DH Keys via Konsole (einmalig). Vor der Erstellung eines Keys sollte immer vars.bat angewendet werden. Das Feld “Organizational Unit Name” kann leer gelassen werden, wohingegen wir beim “Common Name” den Servernamen angeben. Nun bilden wir den CA Key mittels build-ca.bat

Nun bilden wir den DH Key mittels build-dh.bat

Nun bilden wir den Private Server Key mittels build-key-server.bat. Das Feld “Organizational Unit Name” kann leer gelassen werden, hingegen wird beim “Common Name” der Servername angeben. Wir bestätigen zweimal mit Yes, damit das Zertifikat signiert und erstellt wird. Das Passwort wird leer gelassen. Mittels folgendem Command wird der Server-Key erstellt:
build-key-server.bat <Servername>
In Unserem Beispiel lautet die Erstellung: build-key-server.bat Server01
Eine komplette Erstellung sollte folgendermassen aussehen.

Nun bilden wir den Client Key mittels build-key.bat. Das Feld “Organizational Unit Name” kann leer gelassen werden, hingegen wird beim “Common Name” der Clientname angeben. Wir bestätigen zweimal mit Yes, damit das Zertifikat signiert und erstellt wird. Das Passwort kann optional erstellt werden. Somit fragt der OpenVPN Client beim Connecten zum Server nach dem angegebenen Passwort. Somit können wir sicherstellen, dass unser Zertifikat nicht missbraucht werden kann. Mittels folgendem Command wird der Client-Key erstellt:
build-key.bat <Clientname>
In Unserem Beispiel lautet die Erstellung: build-key.bat Client01
Eine komplette Erstellung sollte folgendermassen aussehen.

Nun sind die nötigen Keys erstellt. Bei einer Clientinstallation sind immer folgende Keys nötig:
ca.crt
client.crt
client.key
Die restlichen Keys sind privat und werden den Clients nicht mitgegeben.
Konfiguration Server
Wir erstellen folgende Verzeichnisse:
C:\Programme\OpenVPN\server-keys\
C:\Programme\OpenVPN\log\
C:\Programme\OpenVPN\ccd\
Unser server.ovpn für eine Roadwarrior-Konfiguration sieht in etwa folgendermassen aus:
################################################# # # OpenVPN (MvA-Networks Conf) # # VPN Server Configuration # # Copyright 2006-2007 (20.12.06) www.mva.ch # MvA Internet Services GmbH # ################################################# local 192.168.1.100 port 1194 proto udp dev tun # ---------------------------------------------- # Zertifikate # ---------------------------------------------- dh C:\\Programme\\OpenVPN\\server-keys\\dh1024.pem ca C:\\Programme\\OpenVPN\\server-keys\\ca.crt cert C:\\Programme\\OpenVPN\\server-keys\\server.crt key C:\\Programme\\OpenVPN\\server-keys\\server.key # ---------------------------------------------- # Server-Setup # ---------------------------------------------- server 10.18.14.0 255.255.255.0 ifconfig-pool-persist C:\\Programme\\OpenVPN\\ipp.txt client-to-client # ---------------------------------------------- # Client-Settings (inkl Special Dir) # ---------------------------------------------- # (if needed) client-config-dir ccd push "route 192.168.1.0 255.255.255.0" #push "redirect-gateway" push "dhcp-option DNS 192.168.1.10" #push "dhcp-option WINS 172.20.0.100" # ---------------------------------------------- # Defaults # ---------------------------------------------- keepalive 10 120 comp-lzo persist-key persist-tun # ---------------------------------------------- # Logging # ---------------------------------------------- status C:\\Programme\\OpenVPN\\log\\openvpn-status.log log C:\\Programme\\OpenVPN\\log\\openvpn.log log-append C:\\Programme\\OpenVPN\\log\\openvpn.log verb 3
Im obigen Fall gehen wir davon aus, dass der Server in einem internen Lan: 192.168.1 / 24 steht und der Client auf alle Hosts in dem Lanzugriff haben wird. Der Server selbst hat die interne IP-Adresse 192.168.1.100. Zudem weisen wir dem Client den internen DNS Server 192.168.1.10 zu. Zusammenfassung:
Netzwerk: 192.168.1.0
Server-IP: 192.168.1.100
DNS-Server: 192.168.1.10
Nach der erfolgreichen Erstellung der Verzeichnisse und Implementation der Konfiguration kann OpenVPN via Services in der Windows-Systemumgebung gestartet werden. Dazu geben wir in der Konsole folgendes ein:
net start OpenVPN
Somit sollte (sofern auf der Firewall auch die richtigen Ports geöffnet sind, in unserem Falle UDP Port 1194) ein Client eine VPN Verbindung zum Server aufnehmen können.
Konfiguration Clients
Client-GUI Download auf openvpn.se – Letzte Version. Für Installationen unter Windows Vista (32 und 64 bit) ist jeweils die letzte Beta-Version (aktuell 2.1_rc3a, 19.02.08) unter www.openvpn.net zu empfehlen. Das GUI ist Vista kompatibel, nur der aktuelle Treiber, welcher in der 2.0 Version des GUI von openvpn.se vorhanden ist, nicht.

Wählen Sie die Standartinstallation. Die Auswahl der Komponenten müssen nicht angepasst werden. Nach erfolgreicher Installation kopieren wir die oben vorbereiteten Client Keys:
ca.crt
client.crt
client.key
ins dafür vorgesehene Verzeichnis, beispielsweise C:\Programme\OpenVPN\config\ (Oder unter Vista 64: C:\Program Files (x86)\OpenVPN\config\). Danach erstellen wir eine Config in demselben Verzeichnis (bsp. client.ovpn), wobei x.x.x.x der externen IP (des Routers, wenn Portforwarding vorhanden) des VPN Servers entspricht. Das Verbose tag (verb) kann nach erfolgreichen Tests auf 1 oder 0 gesetzt werden, damit nicht sämtliche Informationen den Benutzer verwirren, wenn das VPN startet.
############################################## # MvA-Networks Connect. OpenVPN ClientScript # ############################################## client dev tun proto udp remote x.x.x.x 1194 resolv-retry infinite nobind persist-key persist-tun ca "C:\\Program Files (x86)\\OpenVPN\\config\\ca.crt" cert "C:\\Program Files (x86)\\OpenVPN\\config\\client1.crt" key "C:\\Program Files (x86)\\OpenVPN\\config\\client1.key" comp-lzo verb 3
Nun kann in der Taskliste das VPN via Icon gestartet werden. Nach erfolgreicher Verbindung sollte der Clientcomputer ins Remotenetzwerk integriert worden sein.
Geschrieben in Tech-Blog




Wie ich es auch drehe und wende… ich stehe dabei
C:\Programme\OpenVPN\easy-rsa>build-ca.bat
error on line 117 of openssl.cnf
4996:error:0E065068:configuration file routines:STR_COPY:variable has no value:.
\crypto\conf\conf_def.c:629:line 117
Hallo,
Danke für das gut strukturierte Howto. Funktioniert soweit gut. Ich kriege vom Client (Tunnelblick) die Verbindung hin -> Initialization Sequenze Completed. Allerdings fahre ich ich TCP und 443.
Der Server hat eine lokale 192.168.1.x Adresse, virtuell gemäss Config 10.18.14.1. Der Client bekommt dann auf tap0 auch die virtuelle 10.18.14.6. Aber ich kann die gegenseitig nicht anpingen, und kann auch keinen der lokalen Hosts im 192.168.1.0 auf irgend eine Art ansprechen. Firewalls sind disabled oder entsprechend konfiguriert. Stimmt irgendwas mit der Route nicht? Bin via anderen Anleitungen darauf gestossen, aber ich verstehe das nicht so richtig.
Ich habe obige Config adaptiert, unterscheidet sich nur in ein paar Pfaden, Proto und den lokalen IP’s, aber eben eine Verbindung kriege ich ja hin…
Für einen Hinweis wäre ich natürlich dankbar
Gruss
kleine Korrektur, gegenseitiger Ping geht jetzt, musste auf dem Client anstatt auf tap auf tun umstellen.
Aber auf das lokale 192.168.1.0 komme ich immer noch nicht.
Hallo!
Obige Anleitung ist etwas fehlerhaft! es fehlt zb der Hinweis, das die Konsole mit cmd, nicht mit command geöffnet werden sollte. Bei command erscheint schon bei clean-all zweimal ein syntaxerror.
Weiter fehlt die Pfadangabe für openvpn.conf gespeichert werden soll.
Dann fehlt n och die Datei ipp.txt vollständig.
Das starten des Servers funktioniert nicht, es scheint noch etwas wichtiges in der Serverkonfiguation zu fehlen.
Unter Linux war die Konfiguration komplizierter, aber es funktionierte sofort!
Vielen Dank für die Inputs. Wir werden den Artikel so bald als möglich überarbeiten, damit die “Fehler”, welche aufgrund der sich geänderten OpenVPN-Version ergeben haben, verschwinden.
hay;
echt mal eine seite, auf der höchst unkompliziert eine installationsaleitung zur verfügung steht.
jetzt hab ich abba noch zwie kleine probleme:
ich hab mal versucht mit der OpenVPM_2_0_9 auf einem W2k-PC einen server einzurichten, da die 2.1.4 leider unter W2k nicht funzt (TAP-Installer bringt fehlermeldung von wegen ungültiger 32bit anwendung)
angeschlossen soll ein XP-Pc werden, so als wäre er genauso im netzwerk wie lokal.
-dev tap
tut auch, aber nur 12-14h lang, dann meldet sich der W2k-server komplett aus dem lokalen netzwerk ab. fehlermeldung server hat nicht genug speicher um die serveranfrage zu bearbeiten.
server-netzwerk hat die IP’s xxx.xxx.0.x 255.255.255.0
- router xxx.xxx.0.1
- server xxx.xxx.0.250
- 4 arbeitsplätze xxx.xxx.0.101…104
- 2 IP-Cams 191, 192
heimnetzwerk xxx.xxx.1.x 255.255.255.0
- router xxx.xxx.1.1
-server xxx.xxx.1.220
-2-3 arbeitsplätze xxx.xxx.1.120…123
- IP-Camera xxx.xxx.1.193
wie bekomme ich alle PC’s dazu sich auch untereinander zu sehen ?
[...] VPN-verbindung Firewall tunneln Hi. ich versuche gerade mittels DIESER ANLEITUNG eine VPN-Verbindung zu erstellen, um unsere Firmen Firewall zu umgehen. Bevor die ersten schreien: [...]