Ein VPN ermöglicht Ihnen, sicher und privat auf Ihr Netzwerk zuzugreifen. Dieses Tutorial zeigt, wie Sie OpenVPN auf einem Ubuntu Server einrichten.


Voraussetzungen

  • Ein Ubuntu Server mit Root- oder sudo-Zugriff.
  • Eine öffentliche IP-Adresse oder eine Domain (für den Zugriff von aussen).

Schritt 1: System vorbereiten

Server aktualisieren

Stellen Sie sicher, dass Ihr Server auf dem neuesten Stand ist:

sudo apt update && sudo apt upgrade -y

Notwendige Pakete installieren

Installieren Sie die OpenVPN- und Easy-RSA-Pakete:

sudo apt install openvpn easy-rsa -y

Schritt 2: PKI (Public Key Infrastructure) einrichten

Easy-RSA konfigurieren

Erstellen Sie ein Verzeichnis für Easy-RSA und wechseln Sie hinein:

make-cadir ~/easy-rsa
cd ~/easy-rsa

Variablen anpassen

Bearbeiten Sie die Datei vars:

nano vars

Passen Sie folgende Werte an:

set_var EASYRSA_REQ_COUNTRY    "DE"
set_var EASYRSA_REQ_PROVINCE   "Your_Province"
set_var EASYRSA_REQ_CITY       "Your_City"
set_var EASYRSA_REQ_ORG        "Your_Organization"
set_var EASYRSA_REQ_EMAIL      "your_email@example.com"
set_var EASYRSA_REQ_OU         "Your_Organizational_Unit"

Speichern und schliessen Sie die Datei.

Zertifikate erstellen

Initialisieren Sie die PKI:

./easyrsa init-pki

Erstellen Sie die Zertifizierungsstelle (CA):

./easyrsa build-ca

(Geben Sie ein starkes Passwort ein und merken Sie es sich!)

Erstellen Sie ein Server-Zertifikat und einen Schlüssel:

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

Erstellen Sie Diffie-Hellman-Parameter:

./easyrsa gen-dh

Erstellen Sie ein HMAC-Signaturschlüssel:

openvpn --genkey --secret ta.key

Schritt 3: OpenVPN konfigurieren

Server-Konfigurationsdatei erstellen

Erstellen Sie eine neue Konfigurationsdatei:

sudo nano /etc/openvpn/server.conf

Fügen Sie folgenden Inhalt hinzu:

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
auth SHA256
tls-auth /etc/openvpn/ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/status.log
verb 3

Speichern und schliessen Sie die Datei.

Zertifikate und Schlüssel kopieren

Kopieren Sie alle generierten Dateien in das OpenVPN-Verzeichnis:

sudo cp ~/easy-rsa/pki/ca.crt /etc/openvpn/
sudo cp ~/easy-rsa/pki/issued/server.crt /etc/openvpn/
sudo cp ~/easy-rsa/pki/private/server.key /etc/openvpn/
sudo cp ~/easy-rsa/pki/dh.pem /etc/openvpn/
sudo cp ~/easy-rsa/ta.key /etc/openvpn/

Schritt 4: OpenVPN starten und aktivieren

OpenVPN-Dienst aktivieren

Starten Sie den OpenVPN-Dienst:

sudo systemctl start openvpn@server

Aktivieren Sie den Dienst für den automatischen Start:

sudo systemctl enable openvpn@server

Firewall konfigurieren

Erlauben Sie VPN-Verbindungen:

sudo ufw allow 1194/udp

Aktivieren Sie IP-Weiterleitung:

sudo nano /etc/sysctl.conf

Entfernen Sie das # vor folgender Zeile:

net.ipv4.ip_forward=1

Speichern Sie die Datei und wenden Sie die Änderungen an:

sudo sysctl -p

Schritt 5: Client konfigurieren

Client-Zertifikate erstellen

Erstellen Sie ein Zertifikat für einen Client:

cd ~/easy-rsa
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

Client-Konfigurationsdatei erstellen

Erstellen Sie eine Datei client1.ovpn mit folgendem Inhalt:

client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA256
cipher AES-256-CBC
key-direction 1
<ca>
# CA-Zertifikat-Inhalt
</ca>
<cert>
# Client-Zertifikat-Inhalt
</cert>
<key>
# Client-Schlüssel-Inhalt
</key>
<tls-auth>
# ta.key-Inhalt
</tls-auth>

Fügen Sie die Inhalte der entsprechenden Dateien zwischen die Tags ein und übertragen Sie die Datei auf den Client.


Fazit

Sie haben nun erfolgreich OpenVPN auf Ihrem Ubuntu Server eingerichtet. Mit diesem Setup können Sie sicher und privat auf Ihr Netzwerk zugreifen. Viel Erfolg!