How to: OpenVPN auf dem WHS – pt.1

Die Statistik meines Servers sagt mir, dass die meisten die diesen Blog durch eine Suchmaschine finden, auf der Suche nach OpenVPN auf dem Windows Home Server sind.
Nun… dann will ich mal nicht so sein. Irgendwann wollte ich eh mal einen Artikel darüber schreiben. Jetzt kommts halt bereits früher dazu.

Eigentlich ist OpenVPN recht schnell installiert und eingerichtet. Zumindest wenn man nur auf den Server kommen will. Wenn man das ganze Netz erreichen will wirds etwas komplizierter. Normalerweise bietet OpenVPN dafür den Bridging-Modus an. Doch der funktioniert nur mit einer Netzwerkbrücke. Und genau diese gibts beim WHS nicht. Aber zum Glück gibt es auch noch andere Wege das ganze zu realisieren.

Als erstes muss man sich natürlich OpenVPN herunterladen. Derzeit ist die Version 2.1.1 aktuell. Einfach den Installer herunterladen und dann über eine Remoteverbindung auf dem Server installieren. Bei der Installation wird ein virtueller Netzwerkadapter erstellt. Ich möchte gerne wissen welcher Adapter wofür ist, deswegen gebe ich ihnen sprechende Namen. Also gehe ich zu den Netzwerkverbindungen und gebe dort dem Adapter den Namen ‘OpenVPN’. Das ist nicht nötig… aber macht es für mich übersichtlicher.

Danach muss man sich die nötigen Zertifikate erstellen. Für den Server und für alle Clients. Im Prinzip geht man dabei genau nach den Anweisungen in der Dokumentation vor. Man öffnet also eine Kommandozeile (Start -> Ausführen… -> ‘cmd.exe’ eingeben und ‘OK’ klicken) und wechselt da in den OpenVPN-Ordner. Das ist normalerweise C:\Programme\OpenVPN\. Dort wechselt man nochmals in den Unterordner ‘easy-rsa’. Auf der Kommandozeile also einfach mal folgendes eingeben:
> cd C:\Programme\OpenVPN\easy-rsa
Jetzt kommen der Reihe nach ein paar Batch-Files die aufgerufen werden müssen. Das sind:
> init-config
> vars
> clean-all
> build-ca

Hier muss man nun ein paar Daten angeben, die am Ende im Zertifikat landen. Was man angibt ist dabei eigentlich egal. Man kann das alles also mit sinnvollen Daten füttern oder irgendwelche Fantasieeingaben machen. Man sollte nur überall etwas eingeben.
Damit hat man nun ein Zertifikat für die CA (Certificate Authority) erstellt. Als nächstes folgt das Zertifikat für den Server. Hierzu gibt man folgendes ein:
> build-key-server server
Auch hier gibt man nun die nötigen Daten an. Auch hier kann man angeben was man möchte. Nur eines ist wichtig: bei ‘Common Name’ gibt man ‘server’ ein. Möchte man einen anderen Namen verwenden so muss man auch den Aufruf anpassen. Wenn also das Zertifikat für den Namen ‘WHS’ gelten soll dann ruft man eben
> build-keys-server WHS
auf und gibt dann eben beim Common Name auch WHS an.
Die zwei y/n Fragen am Ende muss man beide mit ‘y’ beantworten. Und schon hat man die nötigen Files für den Server.
Damit sich nun auch Clients auf dem Server einloggen können brauchen auch die Zertifikate. Diese kann man mit
> buld-key clientname
erstellen. Hier gilt das selbe wie beim Serverzertifikat. Der Common Name muss gleichlautend dem ‘clientname’ beim Aufruf sein.
Man kann sich nurn für jeden Client ein Zertifikat erstellen.

Jetzt muss man als letztes
> build-dh
aufrufen um alle Dateien zusammen zu haben.

Nun verteilt man die Dateien an die richtigen Stellen. Man findet sie im Unterordner ‘keys’.
Für den Server braucht man folgende Dateien:
- ca.crt
- dh1024.pem
- server.crt
- server.key

Die kopiert man in C:\Programme\OpenVPN\config\

Der Client benötigt folgende Dateien:
- ca.crt
- clientname.crt
- clientname.key

Wo man diese hinsteckt… das werden wir später besprechen.

Jetzt geht es erstmal darum die Konfigurationsdateien zu erstellen. Am besten geht man in den Ordner C:\Programme\OpenVPN\sample-config\ und schaut sich dort die Beispielkonfigurationen an. Hier steht bei jedem Parameter wofür er gut ist und was man einstellen kann und warum. Das ist eine wirklich grosse Hilfe. Ich werde hier nur mal den Inhalt der server.ovpn ohne all die erklärenden Kommentare posten.
Die server.ovpn sieht also so aus:
port 1234
proto udp
dev tun
dev-node OpenVPN
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
max-clients 10
persist-key
persist-tun
status openvpn-status.log

Ich werde hier nur die wenigsten Parameter erklären. Die restlichen kann man sich in der Doku raussuchen oder eben in den Beispieldateien nachschlagen.
port 1234 : Welchen Port man sich aussucht ist eigentlich egal. Man muss diesen nur in der Firewall öffnen und natürlich vom Router auf den WHS weiterleiten.
dev-node OpenVPN : Falls ihr dem Netzweradapter einen Namen gegeben habt, dann gehört dieser hier rein. Wenn nicht dann kann man diesen Parameter auch weglassen. OpenVPN sucht sich selbst den nächsten freien virtuellen Adapter.
server 10.8.0.0 255.255.255.0 : Hier gibt man das genutzte Subnetz an. Wichtig ist hier nur dass es nicht bereits im Netz verwendet wird und natürlich dass es frei zur Nutzung ist. Siehe Private IP-Adresse.
Diese Datei kopiert man nun in den Ordner C:\Programme\OpenVPN\config\.
Bei der Installation wurde von OpenVPN bereits ein Service installiert. Der wird aber nicht gestartet. Wenn man diesen startet dann sucht der eben in dem config Ordner nach .ovpn Dateien und startet die jeweilige Konfiguration. Man geht also zu den Diensten und stellt den Starttyp des OpenVPN Service auf  ’Automatisch’ und startet ihn auch gleich mal.
Der Server ist nun eingerichtet.

Jetzt kommen die Clients dran. Was hier noch fehlt ist auch wieder die Konfigurationsdatei. Auch hier gilt wieder das selbe wie für die server.ovpn. Ich poste hier eine Beispieldatei und erkläre ein paar wenige Parameter. Alles weitere gibts in der Doku zu OpenVPN.
Hier also das nötigste für die client.ovpn:
client
dev tun
proto udp
remote xxxxx.homeserver.com 1234
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert clientname.crt
key clientname.key
ns-cert-type server
comp-lzo
Auch hier sind nur wenige Punkte wirklich zu beachten.
remote xxxxx.homeserver.com 1234 : Hier muss man selbstverständlich den DynDNS Namen des Servers angeben und natürlich den Port welchen man für den Server ausgewählt hat.
cert clientname.crt | key clientname.key : Hier kommen die Namen der zugehörigen Zertifikate hin.
Diese client.ovpn muss im selben Ordner sein wie die drei anderen o.g. Dateien. Wo das ist bleibt jedem selbst überlassen. Wichtig ist eben nur dass alle vier Dateien beisammen sind.
Um auf dem Client jetzt eine Verbindung zum Server aufzubauen muss natürlich OpenVPN installiert sein. Dann kann man die client.ovpn mit rechts anklicken und ‘Start OpenVPN on this config file’ auswählen. Wer möchte kann auch das OpenVPN GUI benutzen. Da das damals als ich OpenVPN isntalliert hatte noch nicht dabei war habe ich es selber noch nicht benutzt. Also kann ich auch nicht sagen wie das funktioniert.
Genauso wie beim Server hat man die Möglichkeit die ganzen Dateien in den config Ordner zu stecken und sie vom Service starten zu lassen. Entweder man startet ihn manuell oder man lässt ihn automatisch starten. Das ist hilfreich bei Rechnern die immer diese VPN-Verbindung aufrecht halten sollen.

Damit ist die ‘einfache Installation’ erstmal beendet. Da dieser Post doch schon ganz schön lange geworden ist werde ich den Rest in einem zweiten Beitrag erklären.

Share and Enjoy:
  • Add to favorites
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • MisterWong.DE
  • Reddit
  • StumbleUpon
  • Technorati
  • Twitter
  • Webnews.de
Dieser Beitrag wurde unter Allgemein, Software abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

2 Antworten auf How to: OpenVPN auf dem WHS – pt.1

  1. Carsten sagt:

    Tolle Anleitung… Leider habe ich nicht gefunden, was ich gesucht habe. OpenVPN auf einem Windows Server 2008 R2 Enterprise. Ich habe da massive Probleme mit dem TAPI Device

  2. der-Leo sagt:

    Ich habe keine persönlichen Erfahrungen mit Windows Server 2008.
    Aber ich vermute es liegt daran dass der Treiber nicht signiert ist.
    So weit ich dass in Erinnerung habe lassen sich unsignierte Treiber nicht installieren.
    Vielleicht kommst du damit ja weiter.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>