OpenVPN Server Installation auf Ubuntu – Schritt-für-Schritt | Enjyn Gruppe
Hallo Welt
→
→
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

330 Dokumentationen verfügbar

Wissensdatenbank

OpenVPN Server Installation Ubuntu

Zuletzt aktualisiert: 14.07.2026 um 12:29 Uhr

OpenVPN Server Installation auf Ubuntu – Schritt-für-Schritt

OpenVPN ist eine kostenlose, Open-Source VPN-Lösung, die sichere Remote-Zugriffe ermöglicht. Im Gegensatz zu WireGuard ist OpenVPN älter, aber es hat eine breite Kompatibilität mit verschiedenen Geräten und Betriebssystemen. Diese Anleitung führt Sie durch eine vollständige Server-Installation auf Ubuntu.

OpenVPN vs WireGuard – Vergleich

Kriterium OpenVPN WireGuard
Aufbau und Konfiguration Komplex, viele Optionen Minimal und einfach
Performance Gut Sehr gut (optimiert)
Latency Höher (TCP und UDP möglich) Niedrig
Codebase Größer (~100k Zeilen) Kleiner (~4k Zeilen)
Kompatibilität Sehr breit (alle Systeme) Wächsend (einige Einschränkungen)
Firewall Traversal Besser (TCP möglich) UDP-only
Kryptographie OpenSSL (flexibel) Modern (ChaCha20, Curve25519)
NAT Unterstützung Sehr gut Gut
Stabilität Sehr stabil (jahrelange Nutzung) Stabil (relativ neu)
Lernkurve Steil Flach
💡 Tipp: Für maximale Kompatibilität wählen Sie OpenVPN. Für optimale Performance und einfache Konfiguration wählen Sie WireGuard.

Systemanforderungen

  • OS: Ubuntu 18.04, 20.04, 22.04 oder neuer
  • RAM: Mindestens 512MB (1GB empfohlen)
  • Disk: Mindestens 1GB verfügbar
  • Netzwerk: Statische IP-Adresse oder Dynamic DNS
  • Ports: UDP 1194 (oder TCP alternative) muss offen sein

Schritt 1: OpenVPN und easy-rsa installieren

Pakete installieren

sudo apt update
sudo apt install -y openvpn easy-rsa

Verzeichnisse erstellen

sudo mkdir -p /etc/openvpn/easy-rsa
sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
sudo chown -R $USER:$USER /etc/openvpn/easy-rsa

Schritt 2: Public Key Infrastructure (PKI) einrichten

easy-rsa initialisieren

cd /etc/openvpn/easy-rsa
./easyrsa init-pki

Certificate Authority (CA) erstellen

./easyrsa build-ca

Sie werden nach einem Common Name gefragt. Geben Sie etwas aussagekräftiges ein, z.B. MyVPN-CA.

Diffie-Hellman Parameter generieren (wichtig für PFS)

./easyrsa gen-dh

Dies dauert mehrere Minuten. Sie können währenddessen die anderen Schritte vorbereiten.

Server-Zertifikat erstellen

./easyrsa build-server-full server nopass

Der Server-Schlüssel wird ohne Passwort erstellt (nopass), damit OpenVPN automatisch starten kann.

Client-Zertifikat erstellen

./easyrsa build-client-full client1 nopass
./easyrsa build-client-full client2 nopass

Erstellen Sie ein Zertifikat pro Client. Wiederholen Sie für weitere Clients.

Certificate Revocation List (CRL) generieren

./easyrsa gen-crl

Dies ist für die Sperrung von Client-Zertifikaten nötig.

Schritt 3: Zertifikate zum OpenVPN Verzeichnis kopieren

sudo cp pki/ca.crt /etc/openvpn/server/
sudo cp pki/private/ca.key /etc/openvpn/server/
sudo cp pki/issued/server.crt /etc/openvpn/server/
sudo cp pki/private/server.key /etc/openvpn/server/
sudo cp pki/dh.pem /etc/openvpn/server/
sudo cp pki/crl.pem /etc/openvpn/server/

sudo chown -R openvpn:openvpn /etc/openvpn/server/
sudo chmod 700 /etc/openvpn/server/

Schritt 4: Server-Konfiguration erstellen

Erstellen Sie /etc/openvpn/server/server.conf:

sudo nano /etc/openvpn/server/server.conf

Fügen Sie folgende Inhalte ein:

# OpenVPN Server Konfiguration
port 1194
proto udp
dev tun
status openvpn-status.log
status-version 3
log-append openvpn.log
verb 3

# Pfade zu Zertifikaten und Schlüsseln
ca ca.crt
cert server.crt
key server.key
dh dh.pem
crl-verify crl.pem

# Netzwerk-Konfiguration
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt

# Client-Konfiguration
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

# Keepalive und Timeouts
keepalive 10 120

# Verschlüsselung und Authentifizierung
cipher AES-256-CBC
auth SHA256

# Kompression (optional, kann VPN verlangsamen)
compress lz4-v2
push "compress lz4-v2"

# Sicherheit
tls-version-min 1.2
tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
user nobody
group nogroup
persist-key
persist-tun

# Dateiberechtigungen
chroot /etc/openvpn/server

# Zusätzliche Sicherheit
explicit-exit-notify 1
⚠️ Wichtig: Die Zeilen mit "push" werden an Clients gesendet. Sie können diese anpassen basierend auf Ihren Anforderungen (DNS-Server, Routing, etc.).

Schritt 5: Firewall und IP Forwarding konfigurieren

IP Forwarding aktivieren

sudo sysctl -w net.ipv4.ip_forward=1

Permanent speichern:

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.d/99-openvpn.conf
sudo sysctl -p /etc/sysctl.d/99-openvpn.conf

UFW-Firewall konfigurieren

sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 1194/udp
sudo ufw allow from 10.8.0.0/24
sudo ufw enable

Masquerading aktivieren (für Routing)

sudo nano /etc/ufw/before.rules

Fügen Sie nach der ersten Zeile folgende Zeilen ein:

# OpenVPN Masquerading
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

Oder mit iptables direkt:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables/rules.v4

Schritt 6: OpenVPN Server starten und aktivieren

sudo systemctl enable openvpn-server@server
sudo systemctl start openvpn-server@server
sudo systemctl status openvpn-server@server

Server läuft, wenn Sie folgende Ausgabe sehen:

● openvpn-server@server.service - OpenVPN service for server
   Loaded: loaded (/lib/systemd/system/openvpn-server@.service)
   Active: active (running)

Schritt 7: Client-Konfigurationsdatei generieren

Erstellen Sie eine einzelne .ovpn-Datei pro Client mit allen erforderlichen Zertifikaten eingebettet:

cat > /tmp/client1.ovpn << 'EOF'
client
proto udp
remote YOUR_SERVER_IP 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server name
auth SHA256
cipher AES-256-CBC
comp-lz4
verb 3


$(cat /etc/openvpn/easy-rsa/pki/ca.crt)



$(cat /etc/openvpn/easy-rsa/pki/issued/client1.crt)



$(cat /etc/openvpn/easy-rsa/pki/private/client1.key)

EOF

Ersetzen Sie YOUR_SERVER_IP durch die IP-Adresse Ihres Servers.

Übertragen Sie die client1.ovpn-Datei sicher zu dem Client-Computer (z.B. über SCP oder sicheren Download).

Schritt 8: Client-Verbindung testen

Auf Linux Client

sudo apt install openvpn
sudo openvpn --config /path/to/client1.ovpn

Auf macOS/Windows

Nutzen Sie die OpenVPN GUI-Anwendung oder:

openvpn /path/to/client1.ovpn

Verbindung überprüfen

ifconfig tun0  # oder: ip addr show dev tun0
# Sollte eine IP im Range 10.8.0.0/24 zeigen

# Ping zum Server VPN IP
ping 10.8.0.1

# Test mit Testziel
curl https://ifconfig.me  # Sollte Server-IP zeigen, nicht Client-IP
✅ Gut zu wissen: Wenn curl die Server-IP statt Client-IP zeigt, bedeutet das, dass das "redirect-gateway" Routing funktioniert – Ihr gesamter Traffic geht durch den VPN.

Client-Zertifikat widerrufen (Revocation)

Falls Sie einen Client deaktivieren möchten:

cd /etc/openvpn/easy-rsa
./easyrsa revoke client1

Dann CRL neu generieren und OpenVPN neu laden:

./easyrsa gen-crl
sudo cp pki/crl.pem /etc/openvpn/server/
sudo systemctl reload openvpn-server@server

OpenVPN Status und Logs überwachen

Connected Clients anzeigen

sudo tail -f /etc/openvpn/server/openvpn-status.log

Logs auf Fehler überprüfen

sudo tail -f /var/log/openvpn/openvpn.log
sudo journalctl -u openvpn-server@server -f

Performance-Optimierung

Empfangspuffer erhöhen

Für bessere Performance in `/etc/openvpn/server/server.conf`:

rcvbuf 0
sndbuf 0

UDP vs TCP

UDP ist schneller. Wenn Sie TCP brauchen (Firewalls):

proto tcp
port 443  # HTTPS Port, durchlässiger in restriktiven Netzwerken

Multi-Client Konfiguration Automatisieren

Skript zum Generieren mehrerer Client-Configs:

#!/bin/bash

cd /etc/openvpn/easy-rsa
SERVER_IP="YOUR_SERVER_IP"
CLIENTS=("client1" "client2" "client3")

for client in "${CLIENTS[@]}"; do
    ./easyrsa build-client-full $client nopass

    cat > /tmp/${client}.ovpn << EOF
client
proto udp
remote $SERVER_IP 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server name
auth SHA256
cipher AES-256-CBC
comp-lz4
verb 3


$(cat pki/ca.crt)



$(cat pki/issued/${client}.crt)



$(cat pki/private/${client}.key)

EOF

    chmod 600 /tmp/${client}.ovpn
    echo "Generated /tmp/${client}.ovpn"
done

Zusammenfassung – Checkliste

  • [ ] OpenVPN und easy-rsa installiert
  • [ ] PKI mit CA, Server und Client-Zertifikaten erstellt
  • [ ] Server-Konfiguration angelegt
  • [ ] IP Forwarding aktiviert
  • [ ] UFW-Firewall mit NAT konfiguriert
  • [ ] OpenVPN Server läuft und auto-startet
  • [ ] Client .ovpn-Dateien mit eingebetteten Zertifikaten erstellt
  • [ ] Client-Verbindung getestet
  • [ ] Server-Status Logs überprüft

Zusammenfassung

Eine funktionierende OpenVPN-Installation bietet sichere Remote-Zugriffe auf Ihre Infrastruktur. Mit den modernen Cipher-Suites und starken Zertifikaten ist OpenVPN ein zuverlässiger VPN-Dienst für kleine bis mittlere Umgebungen. Die Komplexität der Konfiguration wird durch umfassende Dokumentation und Community-Support gut ausgeglichen.

Weiterführende Ressourcen

Texterstellung mit KI-Unterstützung

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
LLMs können Fehler machen. Ihre Nachrichten werden an Google Gemini weitergeleitet.
120