Skip to main content

Debian 8 Jessie – OpenVPN Server erstellen und härten

OpenVPN ist eine gute Möglichkeit sicher in „freien“ Netzwerken zu surfen. Mit einem VPN wird der gesamte Datenverkehr verschlüsselt zu dem Server übertragen und dort erst wieder entschlüsselt. Der Client „nutzt“ dann auch die IP Adresse des Servers, wodurch die eigene IP Adresse für einen dritten nicht mehr sichtbar ist. In dieser Anleitung richten wir einen OpenVPN Server unter Debian 8 Jessie ein und konfigurieren danach einen Client unter Linux Mint. Die Konfiguration wurde extra so angepasst, dass sie sehr sicher ist.

1.OpenVPN Server installieren

Im ersten Schritt installieren wir den OpenVPN Server. Dazu einfach folgenden Befehl eingeben:

2.Zertifizierungsstelle einrichten

Damit die Verbindung nachher verschlüsselt ist, müssen wir uns eine Zertifizierungsstelle einrichten. Diese erstellt später die Zertifikate für unseren Client / Server.

Nachdem wir dies erledigt habe, können wir die Standardwerte noch anpassen. Dies ist nicht dringend notwendig, da es mit diesen Werten auch funktioniert.

Hier kann man jetzt das Land auf „DE“ setzen und die restlichen Werte anpassen. Der Fantasy sind keine Grenzen gesetzt.

3.Zertifikate erstellen

Nachdem wir die Zertifizierungsstelle eingerichtet haben, können wir nun unsere eigenen Zertifikate erstellen. Dazu wechseln wir ins neu erstelle Verzeichnis und führen folgende Befehle aus:

Die Fragen bei „build-ca“ könnt ihr einfach mit „Enter“ bestätigen.

Nun erstellen wir uns einen privaten Key für unseren OpenVPN Server. Ich nenne diesen Server „server“. Ihr könnt hier jeden beliebigen anderen Namen verwenden.

Hier könnt ihr wieder die Fragen mit „ENTER“ bestätigen.

Optional könnt ihr noch ein „Challenge password“ festlegen, was die Sicherheit erhöht.

Zum Schluss müsst ihr „Sign the certificate“ und „1 out of 1 certificate requests certified“ mit „y“ bestätigen.

Nun erstellen wir das Zertifikat für unseren ersten VPN Client. Dieser heißt bei mir „VPNClient1“. Dies kann jedoch auch jeder andere Name sein.

Auch hier bestätigen wir wieder alle Fragen mit „ENTER“.

Nun erstellen wir uns noch einen TLS Key, um alle Pakete zu signieren.

Wenn ihr euch nun mittels „ls“ alle Dateien im Verzeichnis „/etc/openvpn/easy-rsa/keys“ anschaut, dann sollte es so aussehen.

Danach kopieren wir die nun erstellten Dateien ins richtige Verzeichnis:

4.Konfigurationsdateien erzeugen

4.1 Server Konfiguration

Nun erstellen wir uns Konfigurationsdateien für den OpenVPN Server.

Dazu gebt ihr folgenden Befehl ein:

Nun habt ihr die Datei „server.conf“ erzeugt mit dem benötigten Inhalt.

4.2 Client Konfiguration anpassen

Dazu führt ihr folgenden Befehl aus:

Nun existiert eine Datei „VPNClient1.ovpn“. Diese Datei müsst ihr nun öffnen und euren OpenVPN Server eintragen:

Nun downloaded ihr euch die Datei „VPNClient1.ovpn“, da ihr diese auf eurem Client benötigt. Den Download könnt ihr mittels WinSCP erledigen.

4.2.1 weitere Clients anlegen

Wenn ihr weitere VPN Clients anlegen wollt, dann müsst ihr folgendes tun:

Nun habt ihr ein Zertifikat erstellt. Dieses müsst ihr nun im nachfolgenden Befehl benutzten. Das heißt, dass ihr folgende 3 Zeilen pro Client abändern müsst:

Danach führt ihr dann das angepasste Script aus:

5.Firewall anpassen

Nun müssen wir die Firewall des Servers noch anpassen, damit die Pakete vom Client weitergeleitet werden. Dies könnt ihr mit iptables ODER mit ufw machen.

5.1 IPv4 forwarding aktivieren

Um diese Funktion zu aktivieren müsst ihr nachfolgenden Befehl eingeben:

5.2.1 Firewall Regeln erstellen mit iptables

Nun gibt ihr nachfolgende Befehle ein:

5.2.2 Firewall Regeln speichern

Damit ihr nach einem Neustart noch eure Firewall Regeln habt, müsst ihr folgendes Programm installieren:

Nach der Installation führt ihr folgenden Befehl aus:

Nun stehen eure Firewall Regeln nach einen Reboot noch zur Verfügung.

5.3 Firewall Regeln erstellen mit ufw

Wenn ihr die ufw Firewall noch nicht kennt, dann könnt ihr diesen Beitrag lesen. Für diese Befehle muss ufw bereits installiert sein.

Der folgende Befehl gibt den UDP Port für euren Server frei:

Danach geht ihr in die ufw Konfiguration und ändert folgendes ab:

Nun müsst ihr noch eine Datei bearbeiten:

In dieser Datei sollten schon einige Kommentare stehen. Die MARKIERTEN Zeilen müsst ihr einfügen.

Nun könnt ihr eure Firewall aktivieren.

Jetzt solltet ihr überprüfen, ob die Portfreigabe funktioniert hat.

6.OpenVPN Server starten

Nun starten wir den OpenVPN Server

Um den Status zu überprüfen, kann folgender Befehl ausgeführt werden.

7.Client starten

Ich habe mir als Client ein Linux Mint gewählt. Dort müsst ihr einen OpenVPN Client installiert haben. Danach könnt ihr die VPN Verbindung per Terminal mit folgendem Befehl aufbauen:

 

8.Quellen

Unterstützte TLS-Ciphers:

https://community.openvpn.net/openvpn/wiki/Hardening

Überblick aller OpenVPN Parameter:

https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html

OpenVPN inline:

https://community.openvpn.net/openvpn/wiki/IOSinline

 

 

Christian

Christian

Ich studiere derzeit Informatik und betreibe in meiner Freizeit diesen Blog.
Auf die Idee kam ich, als ich Anleitungen zum Thema Debian gesucht habe. Leider waren viele Anleitungen veraltet und daher nutzlos.

Da kam ich auf die Idee selbst Anleitungen zu schreiben.
Wenn meine Anleitungen auch veraltet sein sollten, dann schreibt mir das bitte und ich versuche sie zu aktualisieren.

Wer mich (finanziell) unterstützen möchte, der kann mir hier gerne etwas spenden 🙂
PayPal
https://paypal.me/goNeuland
BTC
1GHRnh6DvdPE4FFpxGbEQu6m4sgnrjpoxM
ETH
0x53d3005663026F96e7cCCa39D14fA487e1072318

Danke 🙂
Christian

Christian

Ich studiere derzeit Informatik und betreibe in meiner Freizeit diesen Blog. Auf die Idee kam ich, als ich Anleitungen zum Thema Debian gesucht habe. Leider waren viele Anleitungen veraltet und daher nutzlos.Da kam ich auf die Idee selbst Anleitungen zu schreiben. Wenn meine Anleitungen auch veraltet sein sollten, dann schreibt mir das bitte und ich versuche sie zu aktualisieren.Wer mich (finanziell) unterstützen möchte, der kann mir hier gerne etwas spenden :) PayPal https://paypal.me/goNeuland BTC 1GHRnh6DvdPE4FFpxGbEQu6m4sgnrjpoxM ETH 0x53d3005663026F96e7cCCa39D14fA487e1072318Danke :)

Schreibe einen Kommentar

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