OpenVPN ist eine bewährte Open-Source-Lösung für sichere VPN-Verbindungen. Damit können Sie verschlüsselt auf Ihr Netzwerk zugreifen.

Warum OpenVPN?

  • Sicher: Starke Verschlüsselung mit OpenSSL
  • Flexibel: Läuft auf allen Plattformen
  • Bewährt: Seit Jahren im Einsatz
  • Open Source: Kostenlos und überprüfbar

Schnelle Installation mit Skript

Das einfachste Setup mit dem OpenVPN-Road-Warrior-Skript:

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh

Das Skript führt durch die Konfiguration: 1. IP-Adresse bestätigen 2. Port wählen (Standard: 1194) 3. DNS wählen 4. Ersten Client erstellen

Manuelle Installation

Pakete installieren

# Ubuntu/Debian
apt update
apt install openvpn easy-rsa

# CentOS/AlmaLinux
dnf install epel-release
dnf install openvpn easy-rsa

PKI (Public Key Infrastructure) erstellen

# Easy-RSA Verzeichnis
make-cadir ~/openvpn-ca
cd ~/openvpn-ca

Variablen konfigurieren

Bearbeiten Sie vars:

nano vars
set_var EASYRSA_REQ_COUNTRY    "DE"
set_var EASYRSA_REQ_PROVINCE   "Bayern"
set_var EASYRSA_REQ_CITY       "Muenchen"
set_var EASYRSA_REQ_ORG        "MeineFirma"
set_var EASYRSA_REQ_EMAIL      "admin@example.com"
set_var EASYRSA_REQ_OU         "IT"
set_var EASYRSA_KEY_SIZE       2048
set_var EASYRSA_CA_EXPIRE      3650
set_var EASYRSA_CERT_EXPIRE    365

CA erstellen

./easyrsa init-pki
./easyrsa build-ca nopass

Server-Zertifikat erstellen

./easyrsa gen-req server nopass
./easyrsa sign-req server server

Diffie-Hellman-Parameter

./easyrsa gen-dh

TLS-Auth Key

openvpn --genkey secret ta.key

Dateien kopieren

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

Server-Konfiguration

Erstellen Sie /etc/openvpn/server.conf:

port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist /var/log/openvpn/ipp.txt

push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"

keepalive 10 120

tls-auth ta.key 0
cipher AES-256-GCM
auth SHA256

user nobody
group nogroup

persist-key
persist-tun

status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3

IP-Forwarding aktivieren

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

NAT konfigurieren

Mit iptables:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Für persistente Regeln:

apt install iptables-persistent
netfilter-persistent save

Oder mit UFW:

In /etc/ufw/before.rules vor *filter:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT

In /etc/default/ufw:

DEFAULT_FORWARD_POLICY="ACCEPT"
ufw allow 1194/udp
ufw reload

OpenVPN starten

systemctl start openvpn@server
systemctl enable openvpn@server
systemctl status openvpn@server

Client erstellen

Client-Zertifikat

cd ~/openvpn-ca
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

Client-Konfiguration

Erstellen Sie client1.ovpn:

client
dev tun
proto udp
remote IHRE-SERVER-IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
key-direction 1
verb 3

<ca>
# Inhalt von ca.crt hier einfügen
</ca>

<cert>
# Inhalt von client1.crt hier einfügen
</cert>

<key>
# Inhalt von client1.key hier einfügen
</key>

<tls-auth>
# Inhalt von ta.key hier einfügen
</tls-auth>

Automatisches Erstellen

Skript für Client-Konfiguration:

#!/bin/bash
CLIENT=$1
CA_DIR=~/openvpn-ca

cat > ${CLIENT}.ovpn << EOF
client
dev tun
proto udp
remote IHRE-SERVER-IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
key-direction 1
verb 3

<ca>
$(cat ${CA_DIR}/pki/ca.crt)
</ca>

<cert>
$(cat ${CA_DIR}/pki/issued/${CLIENT}.crt)
</cert>

<key>
$(cat ${CA_DIR}/pki/private/${CLIENT}.key)
</key>

<tls-auth>
$(cat ${CA_DIR}/ta.key)
</tls-auth>
EOF

Client-Verbindung

Linux

apt install openvpn
openvpn --config client1.ovpn

Windows

1. OpenVPN GUI installieren 2. .ovpn-Datei in C:\Users\NAME\OpenVPN\config kopieren 3. Mit Rechtsklick auf Tray-Icon verbinden

macOS

Tunnelblick installieren und .ovpn importieren.

Android/iOS

OpenVPN Connect App installieren und .ovpn importieren.

Client widerrufen

cd ~/openvpn-ca
./easyrsa revoke client1
./easyrsa gen-crl

cp pki/crl.pem /etc/openvpn/

In server.conf hinzufügen:

crl-verify crl.pem
systemctl restart openvpn@server

Troubleshooting

Verbindung schlägt fehl

# Server-Logs
journalctl -u openvpn@server
tail -f /var/log/openvpn/openvpn.log

# Firewall prüfen
ufw status
iptables -L -n

Kein Internet über VPN

IP-Forwarding und NAT prüfen:

cat /proc/sys/net/ipv4/ip_forward
iptables -t nat -L

DNS-Probleme

Anderen DNS in server.conf setzen:

push "dhcp-option DNS 8.8.8.8"

Sicherheits-Tipps

1. Starke Zertifikate: Mindestens 2048-Bit 2. TLS-Auth: Schützt vor DoS 3. Regelmäßige Updates: OpenVPN aktuell halten 4. Client-Zertifikate verwalten: Widerrufsliste pflegen 5. Logs überwachen: Ungewöhnliche Zugriffe erkennen

Fazit

OpenVPN ist eine zuverlässige VPN-Lösung. Für die schnelle Installation empfiehlt sich das Angristan-Skript. Für mehr Kontrolle die manuelle Einrichtung. Moderne Alternative: WireGuard (schneller, einfacher).