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

303 Dokumentationen verfügbar

Wissensdatenbank

OpenVPN Server Installation Ubuntu

Zuletzt aktualisiert: 05.04.2026 um 19:42 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

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120