Tutorials  /  Linux Basics

OpenVPN auf Ubuntu 24.04 einrichten: Sicheren VPN-Server konfigurieren

Ccentron Redaktion · November 2025 ·11 Min. Lesezeit ·Linux Basics, Tutorial

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.
VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

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

Konsole
$ sudo apt update

OpenVPN installieren

Konsole
$ sudo apt install openvpn -y

Installierte Version prüfen

Konsole
$ openvpn --version

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

Konsole
$ sudo apt install easy-rsa -y

Zum Home-Verzeichnis wechseln

Konsole
$ cd

easy-rsa-Verzeichnis anlegen

Konsole
$ mkdir easy-rsa

Easy-RSA-Dateien verlinken

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

easy-rsa-Inhalt anzeigen

Konsole
$ ls easy-rsa

Ausgabe:

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

In das easy-rsa-Verzeichnis wechseln

Konsole
$ cd easy-rsa

vars-Datei erstellen

Konsole
$ nano vars

CA-Informationen eintragen

Code
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

Konsole
$ ./easyrsa init-pki

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

Konsole
$ ./easyrsa build-ca

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

Konsole
$ ./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

Konsole
$ ./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

Konsole
$ ls pki/issued

Ausgabe:

vpnserver.crt

HMAC-Schlüssel (TLS-Auth) erzeugen

Konsole
$ sudo openvpn --genkey secret ta.key
Konsole
$ ls

Ausgabe:

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

Diffie-Hellman-Parameter generieren

Konsole
$ ./easyrsa gen-dh

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

Konsole
$ ls pki/

Ausgabe:

ca.crt    dh.pem    …

Zertifikate und Schlüssel nach /etc/openvpn kopieren

Konsole
$ 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

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

In das OpenVPN-Verzeichnis wechseln

Konsole
$ cd /etc/openvpn

server.conf bearbeiten

Konsole
$ sudo nano server.conf

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

Code
local 192.0.2.100

Tunnel-Gerät überprüfen

Code
dev tun

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

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

Code
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

Code
dh /etc/openvpn/dh.pem

Starke Verschlüsselung aktivieren

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

HMAC-Algorithmus angeben

Code
auth SHA512

VPN-Netz konfigurieren

Code
server 10.10.10.0 255.255.255.0

Gesamten Traffic durch VPN leiten

Code
push "redirect-gateway def1 bypass-dhcp"

DNS-Server für Clients setzen

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

In das Easy-RSA-Verzeichnis wechseln

Konsole
$ cd ~/easy-rsa

Zertifikatsanfrage für einen neuen Client erstellen

Konsole
$ ./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

Konsole
$ ./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

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

OpenVPN-Clientkonfiguration erstellen

Beispielkonfiguration kopieren

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

In das Client-Konfigurationsverzeichnis wechseln

Konsole
$ cd /etc/openvpn/client

client.conf in vpnclient1.ovpn umbenennen

Konsole
$ 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

Konsole
$ sudo nano vpnclient1.ovpn

Adresse des OpenVPN-Servers eintragen

Code
remote 192.0.2.100 1194

CA-, Zertifikats- und Schlüsselparameter auskommentieren

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

Verschlüsselungsalgorithmen definieren

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

Authentifizierungsalgorithmus angeben

Code
auth SHA512

Die angepasste Clientkonfiguration sieht beispielsweise so aus:

Code
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

Konsole
$ 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

Konsole
$ cat vpnclient1.ovpn

Die fertige .ovpn-Datei ins Home-Verzeichnis kopieren

Konsole
$ 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

Konsole
$ cd

Per SFTP mit dem Server verbinden

Konsole
$ sftp linuxuser@SERVER-IP

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

Code
sftp> ls

Clientkonfiguration herunterladen

Code
sftp> get vpnclient1.ovpn

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

Konsole
$ curl ifconfig.me

Internetverbindung testen

Konsole
$ ping google.com

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.

Konsole
$ code vpnclient1.ovpn
Code
remote 192.0.2.100 1194

Firewall prüfen:

Konsole
$ sudo ufw status
Konsole
$ sudo ufw allow 1194/tcp
Konsole
$ sudo ufw reload

Authentication/Decrypt Packet Errors beheben

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

Server-Protokolle anzeigen

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

Die Datei ta.key überprüfen

Konsole
$ sudo cat /etc/openvpn/ta.key

Die Ausgabe sollte ähnlich aussehen wie:

Code
#
# 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

Konsole
$ sudo nano /etc/openvpn/server.conf
Code
data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC
auth SHA512

Clientkonfiguration auf TLS- und Cipher-Werte prüfen

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

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

Konsole
# ...static key...
Code
key-direction 1
Code
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.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren