Installation von OpenVPN in Windows Server oder Client (Basierend auf Server 2003 oder XP). Das HOWTO beschreibt das Setup des Servers, die Erstellung von Keys und die Integration von Clients.
Die Überarbeitete Version mit Windows 2012 R2, sowie Windows 10 finden Sie hier.
Download & Installation
Download unter openvpn.net – Windows Installer.
Unter Choose Components wählen Sie sämtliche Komponenten aus. Danach kann OpenVPN installiert werden.
Vorbereitungen
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 set KEY_CN=MeinServerHostname set KEY_NAME=MeinServername set KEY_OU=IT set PKCS11_MODULE_PATH=changeme set PKCS11_PIN=1234
Umgebung setzen
Nun setzen wir die Umgebungsvariablen mittels Ausführen des vars.bat
Danach werden alle Files resetted und die Zertifikationsinstallation vorbereitet mittels clean-all.bat
Zertifikate erstellen
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)
Vorbereitend empfehlen wir den Pfad zur openssl.cnf in der geöffneten Konsole bekannt zu geben. Andernfalls könnten sie folgende Warnmeldung erhalten:
WARNING: can't open config file: /etc/ssl/openssl.cnf
Hierzu passen sie ihren Pfad zu ihrer openssl.cnf an und führen vorgängig den Befehl aus:
set OPENSSL_CONF=C:\Programme\OpenVPN\easy-rsa\openssl-1.0.0.cfg
CA & DH
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
Als nächstes erstellen wir den DH Key mittels build-dh.bat
Server-Zertifikat
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
Zusammengefasst die komplette Erstellung des Server Keys.
Client-Zertifikat(e)
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
Zusammengefasst die komplette Erstellung des Client Keys.
Zusammenfassung Zertifikate
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 (ein Backslash muss jeweils mit einem weiterem Backslash escaped werden)
################################################# # # 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.0/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 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 Standardinstallation. Die Auswahl der Komponenten muss nicht angepasst werden.
Keys verteilen
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
Starten / Verbinden
Nun kann in der Taskliste das VPN via Icon gestartet werden. Nach erfolgreicher Verbindung sollte der Clientcomputer ins Remotenetzwerk integriert worden sein.
David
Wie ich es auch drehe und wende… ich stehe dabei
C:ProgrammeOpenVPNeasy-rsa>build-ca.bat
error on line 117 of openssl.cnf
4996:error:0E065068:configuration file routines:STR_COPY:variable has no value:.
cryptoconfconf_def.c:629:line 117
Fabian
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
Fabian
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.
U.Normann
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!
MvA
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.
mAo
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 ?
Durch VPN-verbindung Firewall tunneln
[…] 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: […]