OpenVPN Server mit Linux (Debian 8)

Diese Anleitung beschreibt die Installation und Konfiguration für einen lauffähigen OpenVPN Server auf einem Debian 8 (jessie) Server.

Diese Anleitung ist in folgende Schritte unterteilt:

  1. OpenVPN installieren
  2. Zertifizierungsstelle und Öffentlichen Schlüssel erstellen
  3. Zertifikate und Privater Schlüssel erstellen
  4. Diffie Hellman Parameter erstellen
  5. Zertifikate und Schlüssel verschieben
  6. Benutzer Zertifikat löschen/Benutzer löschen
  7. VPN-Server konfigurieren
  8. iptables / Firewall Regeln
  9. OpenVPN Server starten und zum VPN-Server verbinden

Hintergrundinformationen:

  • Der Debian Server hat die lokale Lan-IP-Adresse: 192.168.55.16 | DNS IP: 192.168.55.1
  • Der OpenVPN Server hat und verteilt IP-Adressen aus: 10.8.0.0/24
  • Der OpenVPN Server heißt: xyzserver
  • Der Benutzer lautet: benutzer1

Punkt 1 | OpenVPN installieren

OpenVPN installieren:


Punkt 2 | Zertifizierungsstelle und Öffentlichen Schlüssel erstellen

Die Easy-RSA Scripte nach /etc/openvpn kopieren und einen Ordner für die Keys erstellen:

Bevor man den Öffentlichen Schlüssel (Public Key) generiert, muss man einige Variablen des easy-rsa Scriptes anpassen. Hier ein Beispiel der relevanten Werte:

Datei: /etc/openvpn/easy-rsa/vars

Die Zertifizierungsstelle und der Öffentliche Schlüssel kann folgendermaßen erstellt werden:

Diese Scripte fordern Sie auf eine Reihe von Werten/Daten anzugeben. Wenn die richtigen Werte in der „/etc/openvpn/easy-rsa/vars“ eben eingestellt wurden, dann einfach nur mit Enter alles bestätigen.


Punkt 3 | Zertifikate und Privaten Schlüssel erstellen

Mit der Zertifizierungsstelle kann man nun den Privaten Schlüssel (private key) erstellen. Wichtig ist hierbei, das „xyzserver“ mit dem Hostnamen bzw. mit den Namen des OpenVPN-Servers ersetzt wird:

Wie gerade eben kommt wieder diese Abfrage der Daten, soweit alles richtig in „vars“ eingetragen worden ist, kann hier einfach mit Enter alles bestätigt werden. Das „challenge password“ und „optional company name“ sind optionale Daten und können leer gelassen werden. Am Ende muss noch „Sign the certificate“ und „1 out of 1 certificate requests certified, commit?“ mit Yes bestätigt werden.

Mit dem Private Schlüssel können wir nun Zertifikate für die VPN-Clients erstellen. Hierbei wieder darauf Achten, das „benutzer1“ mit den Namen des ersten OpenVPN-Clients ersetzt wird:

Damit wird ein eindeutiger Schlüssel generiert, der den Benutzer identifiziert. Wenn man sich wieder neu auf den Server einlogt und man einen Benutzer hinzufügen möchte, dann muss folgendes noch einmal eingegeben werden:


Punkt 4 | Diffie Hellman Parameter erstellen

mehr dazu findet man bei Wikipedia > http://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch

Die „Diffie Hellman“ Parameter generieren (ist ein Verfahren zur Authentifizierung und des Schlüsselaustausches):


Punkt 5 | Zertifikate und Schlüssel verschieben

In dem Ordner „/etc/openvpn/easy-rsa/keys/“ findet man nun alle generierten Zertifikate und Schlüssel.

Folgende Zertifikate, Schlüssel und Configs müssen später auf den Client PC kopiert werden:

  • ca.crt
  • benutzer1.crt
  • benutzer1.key
  • client.conf

Die Zertifikate und Schlüssel für den Server, die nach „/etc/openvpn“ kopiert werden müssen, lauten:

  • ca.crt
  • ca.key
  • dh2048.pem
  • xyzserver.crt – kann evtl. anders heißen, sprich hier sollte der Name auftauchen, der oben anstatt von xyzserver eingegeben wurde.
  • xyzserver.key – kann evtl. anders heißen, sprich hier sollte der Name auftauchen, der oben anstatt von xyzserver eingegeben wurde.

Hiermit werden die Zertifikate und Schlüssel dementsprechend nach „/etc/openvpn“ kopiert. Auch hier wieder „xyzserver“ mit dem Hostnamen bzw. mit den Namen des OpenVPN-Servers ersetzen:


Punkt 6 | Benutzer Zertifikat wieder löschen/Benutzer löschen

Wenn man einen OpenVPN-Benutzer/Zugang löschen möchte, dann einfach folgendes ausführen (benutzer1 muss natürlich wieder ersetzt werden):


Punkt 7 | VPN-Server konfigurieren

Wir nehmen die Beispiel Konfiguration von OpenVPN, entpacken diese und verschieben diese in den richtigen Ordner:

Zunächst müssen noch in der „server.conf“ die Zertifikat und Key-Namen (in dem Beispiel „xyzserver“) geändert werden:

Datei: /etc/openvpn/server.conf

Nun bearbeiten wir die „client.conf“ und setzen unseren OpenVPN Servernamen/Serverip:

Datei: ~/client.conf

danach müssen in der gleichen Datei noch die Zertifikatnamen angepasst werden, in unserem Beispiel „benutzer1.crt“ und „benutzer1.key“:

Wenn ein Client bei dem Internetanbieter Unitymedia ist, muss dieser Client in seiner client.conf noch folgendes hinzufügen:

Nun muss die Konfigurationsdatei auf den Client PC kopiert werden. Dieser Schritt muss für jeden Benutzer wiederholt werden, sprich jeder Benutzer bekommt im Prinzip seine eigene „client.conf“ Datei.


Punkt 7.1 | Benutzerdefinierte Einstellungen:

Sitution: Der OpenVPN Server ist in der Firma installiert. Die Clients sollen in das Interne Netz können um zum Beispiel Netzwerkprogramm zu öffnen oder sonstige Dienste nutzen zu können. Wenn das gewünscht ist, muss noch folgendes in die „server.conf“ eingetragen werden:

Damit man auch in andere Netze kann (in meinem Beispiel 192.168.55.X und dem Subnetz: 255.255.255.0), muss folgendes angepasst werden:

Um nun noch DNS-Namen aus dem 192.168.55.X Netz auflösen zu können, muss natürlich auch ein DNS-Server eingetragen werden:


Punkt 8 | iptables / Firewall Regeln

iptables/Firewall so anpassen das die Verbindungen erlaubt werden:

Hier ggf. die Netzwerkschnittstelle anpassen, bei OpenVZ müsste es meist „venet0:0“ sein, bei KVM usw. „eth0“!

Um Pakete weiterleiten zu können, dann noch in der Datei:

folgendes auskommentieren:

und ein

echo 1 > /proc/sys/net/ipv4/ip_forward


Punkt 9 | OpenVPN Server starten und zum VPN-Server verbinden

Um den VPN-Server zu starten, führt man unter Debian 8 folgendes aus:

Hinweis: mit @server wird die Konfigurationsdatei „server.conf“ gestartet, die sich im /etc/openvpn Ordner befindet.

Möchte man nun das OpenVPN auch beim Systemstart startet, muss noch folgedens ausgeführt werden:

Auf den Client PC muss nun ein VPN Client installiert werden. Benutzt man einen Windows System und den OpenVPN-Client von openvpn.net, muss dieser als Admin installiert werden und auch immer als Administrator gestartet werden. Zudem muss die Datei „client.conf“ in „client.ovpn“ umbenannt werden und alle Dateien (benutzer1.crt, benutzer1.key, ca.crt und client.ovpn) in den OpenVPN Config Ordner (bei mir c:\Programme\OpenVPN\config\) kopiert werden.

Danach das Programm OpenVPN starten [ALS ADMINISTRATOR] (unten neben der Uhr erscheint ein Symbol), rechte Maustaste und auf verbinden klicken.

Latest Comments

  1. RDemmerich 5. Juli 2017
    • Tobi 9. Juli 2017

Leave a Reply

*

https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_bye.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_good.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_negative.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_scratch.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_wacko.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_yahoo.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_cool.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_heart.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_rose.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_smile.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_whistle3.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_yes.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_cry.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_mail.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_sad.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_unsure.gif 
https://www.maffert.net/wp-content/plugins/wp-monalisa/icons/wpml_wink.gif