OpenVPN unter Ubuntu 24.04 installieren und einrichten

OpenVPN ist eine leistungsstarke Open-Source-VPN-Lösung, die sichere Punkt-zu-Punkt- sowie Standort-zu-Standort-Verbindungen ermöglicht. Die Software nutzt verschlüsselte Tunnel auf Basis von TLS (Transport Layer Security), um Daten sicher über unsichere Netzwerke wie das Internet zu übertragen. Mit modernen Verschlüsselungsalgorithmen wie AES-256 schützt OpenVPN zuverlässig vor Abhörversuchen und Man-in-the-Middle-Angriffen.

Diese Anleitung zeigt Schritt für Schritt, wie OpenVPN auf Ubuntu 24.04 installiert und konfiguriert wird, um eine vollständig verschlüsselte Verbindung zwischen Server und Client aufzubauen.

Voraussetzungen

Bevor Sie starten, stellen Sie sicher, dass Sie Folgendes haben:

  • Einen Ubuntu-24.04-Server sowie einen Benutzer ohne Root-Rechte, der jedoch Befehle mit sudo ausführen kann.

OpenVPN installieren

OpenVPN kann direkt aus den offiziellen Ubuntu-Paketquellen installiert werden. Folgen Sie den Schritten, um die Paketliste zu aktualisieren und das VPN-Paket zu installieren.

APT-Paketindex aktualisieren

OpenVPN installieren

$ sudo apt install openvpn -y

Installierte Version prüfen

Die Ausgabe könnte wie folgt aussehen:

OpenVPN 2.6.12 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] [DCO]
library versions: OpenSSL 3.0.13 30 Jan 2024, LZO 2.10
DCO version: N/A
Originally developed by James Yonan
………………………………………………………..
OpenVPN 2.6.12 ist laut Ausgabe erfolgreich installiert.

Server-Schlüssel, Zertifikat und TLS-Dateien erstellen

Für den OpenVPN-Server werden ein Zertifikat, ein privater Schlüssel sowie zusätzliche Verschlüsselungsdateien benötigt. Easy-RSA ist ein Werkzeug, mit dem Sie eine eigene Zertifizierungsstelle (CA) aufbauen und Zertifikate für den VPN-Server erzeugen können. Im Folgenden wird erklärt, wie Sie Easy-RSA installieren, die PKI-Struktur anlegen, eine CA erstellen und die benötigten Zertifikate generieren.

Easy-RSA installieren

$ sudo apt install easy-rsa -y

Zum Home-Verzeichnis wechseln

easy-rsa-Verzeichnis anlegen

Easy-RSA-Dateien verlinken

$ ln -s /usr/share/easy-rsa/* easy-rsa/

easy-rsa-Inhalt anzeigen

Ausgabe:

easyrsa   openssl-easyrsa.cnf   vars.example   x509-types

In das easy-rsa-Verzeichnis wechseln

vars-Datei erstellen

CA-Informationen eintragen

set_var EASYRSA_REQ_COUNTRY    "Germany"
set_var EASYRSA_REQ_PROVINCE   "Bavaria"
set_var EASYRSA_REQ_CITY       "Bamberg"
set_var EASYRSA_REQ_ORG        "Docs"
set_var EASYRSA_REQ_EMAIL      "linuxuser@example.de"
set_var EASYRSA_REQ_OU         "Community"
set_var EASYRSA_ALGO           "ec"
set_var EASYRSA_DIGEST         "ta222"

Die oben genannten Werte legen die organisatorischen CA-Daten fest.

PKI initialisieren

Ausgabe:

Notice
——
‚init-pki‘ complete; you may now create a CA or requests.

Your newly created PKI dir is:
* /home/linuxuser/easy-rsa/pki

Using Easy-RSA configuration:
* /home/linuxuser/easy-rsa/vars

CA erzeugen

Geben Sie ein sicheres Passwort ein und wählen Sie als Common Name beispielsweise OpenVPN-CA.

Notice
——
CA creation complete. Your new CA certificate is at:
* /home/linuxuser/easy-rsa/pki/ca.crt

Server-Zertifikatsanfrage erstellen

$ ./easyrsa gen-req vpnserver nopass

Ausgabe:

Notice
——
Private-Key and Public-Certificate-Request files created.
Your files are:
* req: /home/linuxuser/easy-rsa/pki/reqs/vpnserver.req
* key: /home/linuxuser/easy-rsa/pki/private/vpnserver.key

Zertifikatsanfrage signieren

$ ./easyrsa sign-req server vpnserver

Bestätigen Sie mit yes und geben Sie das CA-Passwort ein.

Notice
——
Certificate created at:
* /home/linuxuser/easy-rsa/pki/issued/vpnserver.crt

Serverzertifikat prüfen

Ausgabe:
vpnserver.crt

HMAC-Schlüssel (TLS-Auth) erzeugen


$ sudo openvpn --genkey secret ta.key


Ausgabe:
df.pem   easyrsa   openssl-easyrsa.cnf   pki   ta.key   vars   vars.example   x509-types

Diffie-Hellman-Parameter generieren

Ausgabe:
Generating DH parameters, 2048 bit long safe prime
…………………
DH parameters appear to be ok.

Notice
——
DH parameters of size 2048 created at:
* /home/linuxuser/easy-rsa/pki/dh.pem

dh.pem prüfen

Ausgabe:
ca.crt    dh.pem    …

Zertifikate und Schlüssel nach /etc/openvpn kopieren

$ sudo cp ta.key pki/ca.crt pki/private/vpnserver.key pki/issued/vpnserver.crt pki/dh.pem /etc/openvpn/

OpenVPN konfigurieren

OpenVPN nutzt Konfigurationsdateien im Verzeichnis /etc/openvpn, um Tunnelinterfaces zu erstellen und zu verwalten. Dateien in diesem Verzeichnis werden vom Dienst openvpn@ gesteuert, während zusätzliche Konfigurationen in /etc/openvpn/server über openvpn-server@ ausgeführt werden. Im Folgenden wird die Einrichtung einer neuen Serverkonfiguration beschrieben.

Konfigurationsvorlage kopieren

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

In das OpenVPN-Verzeichnis wechseln

server.conf bearbeiten

Optional: Entfernen Sie das Semikolon vor der local-Direktive und ersetzen Sie die Beispiel-IP:

Tunnel-Gerät überprüfen

tun erstellt IP-Tunnel, während tap Ethernet-Tunnel erzeugt.

Pfade für CA-, Zertifikats- und Schlüsseldateien anpassen

ca /etc/openvpn/ca.crt
cert /etc/openvpn/vpnserver.crt
key /etc/openvpn/vpnserver.key

Diese Parameter geben die CA-Datei, das öffentliche Zertifikat sowie den privaten Server-Schlüssel an.

Diffie-Hellman-Datei festlegen

Starke Verschlüsselung aktivieren

data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC
data-ciphers-fallback AES-256-CBC

HMAC-Algorithmus angeben

VPN-Netz konfigurieren

server 10.10.10.0 255.255.255.0

Gesamten Traffic durch VPN leiten

push "redirect-gateway def1 bypass-dhcp"

DNS-Server für Clients setzen

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 1.1.1.1"

In das Easy-RSA-Verzeichnis wechseln

Zertifikatsanfrage für einen neuen Client erstellen

$ ./easyrsa gen-req vpnclient1 nopass

Drücken Sie die Eingabetaste, wenn Sie zur Bestätigung des Common Name aufgefordert werden.

Hinweis
Private-Key und Zertifikatsanforderung wurden erzeugt.
Ihre Dateien befinden sich unter:
* req: /home/linuxuser/easy-rsa/pki/reqs/vpnclient1.req
* key: /home/linuxuser/easy-rsa/pki/private/vpnclient1.key

Client-Zertifikatsanforderung signieren

$ ./easyrsa sign-req client vpnclient1

Bestätigen Sie die Nachfrage mit yes und geben Sie anschließend das CA-Passwort ein.

Hinweis
Das Zertifikat wurde erzeugt:
* /home/linuxuser/easy-rsa/pki/issued/vpnclient1.crt

Zertifikat und Schlüssel in das Client-Verzeichnis kopieren


$ sudo cp pki/issued/vpnclient1.crt /etc/openvpn/client/keys


$ sudo cp pki/private/vpnclient1.key /etc/openvpn/client/keys

OpenVPN-Clientkonfiguration erstellen

Beispielkonfiguration kopieren

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client

In das Client-Konfigurationsverzeichnis wechseln

client.conf in vpnclient1.ovpn umbenennen

$ sudo mv client.conf vpnclient1.ovpn

Wählen Sie das Format abhängig vom Zielgerät. .ovpn eignet sich für grafische OpenVPN-Clients auf Windows, macOS, iOS und Android.

Client-Konfigurationsdatei bearbeiten

$ sudo nano vpnclient1.ovpn

Adresse des OpenVPN-Servers eintragen

CA-, Zertifikats- und Schlüsselparameter auskommentieren

#ca ca.crt
#cert client.crt
#key client.key

Verschlüsselungsalgorithmen definieren

data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC

Authentifizierungsalgorithmus angeben

Die angepasste Clientkonfiguration sieht beispielsweise so aus:

client
dev tun
proto udp
remote 192.0.2.100 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305:AES-256-CBC
auth SHA512
verb 3

Zertifikate, Schlüssel und TLS-Auth-Block anhängen

$ sudo bash -c 'cat <> vpnclient1.ovpn

$(< /etc/openvpn/ca.crt)


$(< keys/vpnclient1.crt)


$(< keys/vpnclient1.key)


$(< /etc/openvpn/ta.key)

key-direction 1
EOF'

Client-Konfiguration prüfen

Die fertige .ovpn-Datei ins Home-Verzeichnis kopieren

$ cp vpnclient1.ovpn ~/vpnclient1.ovpn

OpenVPN-Server testen

Nutzen Sie OpenVPN Connect, um die Verbindung zwischen Client und Server auszuprobieren.

OpenVPN Connect herunterladen

Installieren Sie die Anwendung von der offiziellen Webseite.

Neues Terminal auf dem lokalen Rechner öffnen

Per SFTP mit dem Server verbinden

$ sftp linuxuser@SERVER-IP

Dateien auflisten und prüfen, ob vpnclient1.ovpn vorhanden ist

Clientkonfiguration herunterladen

Ausgabe:
Fetching /home/linuxuser/vpnclient1.ovpn to vpnclient1.ovpn
vpnclient1.ovpn   100% 8281 539.1KB/s 00:00

Konfiguration in OpenVPN Connect importieren

Datei auswählen → Importieren → Hostname prüfen → Verbinden.

Öffentliche IP per curl prüfen

Internetverbindung testen

Ausgabe:
Pinging google.com [172.217.170.174] with 32 bytes of data:
Reply … (Latenzzeiten wie angezeigt)

0% Packet Loss
Durchschnitt ca. 29ms

Fehlerbehebung

Connection Timeout beheben

Öffnen Sie die Clientkonfiguration und prüfen Sie die remote-Zeile.


Firewall prüfen:



Authentication/Decrypt Packet Errors beheben

Diese Fehler hängen meist mit einer falschen TLS-Konfiguration zusammen.

Server-Protokolle anzeigen

$ sudo journalctl -xeu openvpn-server@server.service

Die Datei ta.key überprüfen

$ sudo cat /etc/openvpn/ta.key

Die Ausgabe sollte ähnlich aussehen wie:

#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
1ba01f852d75016a3fd1b3b88aef9609
d52f7dd4e7858f0a219f5b9ec65b37c1
efe9458fe0e06b2ae4d1f9fee3aee929
959bd0e9e260588023fed611d803a769
108dfd5157dd95f6a627c486361e7c6d
753d65f6c25fd2278a44a872e5178f0f
58b2fddb9f3b223dc0ebc0ff95e4a58e
a2cc037f8ebaad2f56bd2cafc07a57ae
04e637dfda193c37a91833eeebd664b4
60e9d6a04a86f0407ad7ca6e458d5573
9163933ecc29b567d26f5b70789fe2f5
d523f0ab7c667929a1023d5098d517f3
17f7b227a8eafaf9804fcf2713d753c7
ff35d5c36e035a123ac68a49bc67473d
fba57989354045fe4305a705d5effa3d
36d447f62b9ef46e2aec61562c2900eb
-----END OpenVPN Static key V1-----

Serverkonfiguration überprüfen


$ sudo nano /etc/openvpn/server.conf


data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC
auth SHA512

Clientkonfiguration auf TLS- und Cipher-Werte prüfen

$ nano /etc/openvpn/client/vpnclient1.ovpn

Stellen Sie sicher, dass die folgenden Werte exakt mit der Serverkonfiguration übereinstimmen:



data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC
auth SHA512

Übertragen Sie die aktualisierte .ovpn-Datei auf Ihr Endgerät und testen Sie die Verbindung erneut.

Fazit

Sie haben OpenVPN erfolgreich auf Ubuntu 24.04 installiert, den VPN-Server eingerichtet, Client-Schlüssel erzeugt und eine funktionierende Verbindung hergestellt. OpenVPN unterstützt zahlreiche Clients sowie mehrere Tunnelkonfigurationen auf unterschiedlichen Ports. Für weiterführende Informationen empfiehlt sich die offizielle OpenVPN-Dokumentation.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: