In einer Zeit, in der unsere digitale Identität immer mehr in den Fokus rückt und Online-Sicherheit keine Option, sondern eine Notwendigkeit ist, suchen viele nach Wegen, ihre Daten und ihre Privatsphäre im Internet zu schützen. Ein Virtual Private Network (VPN) ist dabei ein unverzichtbares Werkzeug, um Ihre Online-Aktivitäten vor neugierigen Blicken zu schützen und geografische Beschränkungen zu umgehen. Statt sich auf kommerzielle VPN-Anbieter zu verlassen, die Ihre Daten potenziell speichern könnten, möchten wir Ihnen heute zeigen, wie Sie Ihr eigenes, sicheres und schnelles VPN einrichten können – mit WireGuard auf einem Hetzner Cloud Server.
Warum WireGuard? Es ist eine moderne, schlanke und überaus performante VPN-Lösung, die im Vergleich zu älteren Protokollen wie OpenVPN oder IPsec deutlich einfacher zu konfigurieren und zu warten ist. Die Codebasis ist klein, was sie sicherer und weniger anfällig für Fehler macht. Und warum Hetzner? Als deutscher Cloud-Anbieter bietet Hetzner zuverlässige, kostengünstige und leistungsstarke Server in modernen Rechenzentren, die zudem der strengen europäischen Datenschutz-Grundverordnung (DSGVO) unterliegen. Das ist die perfekte Kombination für Ihren eigenen, selbst gehosteten VPN-Tunnel.
Dieser detaillierte Schritt-für-Schritt-Artikel führt Sie durch den gesamten Prozess: von der Bereitstellung Ihres Cloud-Servers bis zur Konfiguration Ihres WireGuard-Clients. Machen Sie sich bereit, Ihren eigenen sicheren Tunnel in die digitale Welt zu bauen!
Vorbereitungen und Voraussetzungen
Bevor wir loslegen, stellen Sie sicher, dass Sie Folgendes haben oder vorbereiten können:
- Einen aktiven Account bei Hetzner Cloud. Falls nicht vorhanden, können Sie sich hier registrieren.
- Grundlegende Kenntnisse im Umgang mit dem Linux-Terminal. Keine Sorge, wir führen Sie durch die wichtigsten Befehle.
- Einen SSH-Client auf Ihrem lokalen Computer (z.B. PuTTY für Windows, Terminal für macOS/Linux).
- Etwas Geduld und die Bereitschaft, Neues zu lernen.
Für unseren Server werden wir eine Ubuntu 22.04 LTS (Long Term Support) Installation verwenden, da diese weit verbreitet, gut dokumentiert und stabil ist. Als Servertyp reicht für die meisten Anwendungsfälle ein kleinerer Cloud-Server wie der CX11 (2 GB RAM, 1 vCPU) oder CX21 (4 GB RAM, 2 vCPUs) vollkommen aus. WireGuard ist äußerst ressourcenschonend.
Schritt 1: Hetzner Cloud Server provisionieren
Der erste Schritt ist die Bereitstellung Ihres virtuellen Servers bei Hetzner. Melden Sie sich in Ihrem Hetzner Cloud Dashboard an.
- Projekt erstellen (optional): Im Dashboard können Sie links ein neues Projekt anlegen, um Ihre Server besser zu organisieren. Klicken Sie auf „Projekt hinzufügen” und geben Sie einen Namen ein, z.B. „Mein WireGuard VPN”.
- Server hinzufügen: Wählen Sie das gewünschte Projekt aus (oder bleiben Sie im Standardprojekt) und klicken Sie auf den Button „Server hinzufügen”.
- Standort wählen: Wählen Sie einen Server-Standort, der geografisch günstig für Sie liegt oder den besten Ping bietet. Standorte in Deutschland (Nürnberg, Falkenstein) sind aufgrund der deutschen Datenschutzbestimmungen oft eine gute Wahl.
- Image auswählen: Unter dem Reiter „Betriebssysteme” wählen Sie „Ubuntu 22.04 LTS”.
- Servertyp wählen: Unter „Typ” wählen Sie einen Cloud Server aus. Für ein VPN ist der CX11 (1 vCPU, 2 GB RAM, 20 GB NVMe SSD) für 4,17€/Monat (Stand der Kosten kann sich ändern) in der Regel ausreichend. Wenn Sie mehr Leistung oder mehrere Benutzer erwarten, kann der CX21 sinnvoll sein.
- Authentifizierung: Dies ist ein entscheidender Schritt für die Sicherheit. Statt eines Passworts verwenden wir SSH-Schlüssel. Wenn Sie noch keinen SSH-Schlüssel hinterlegt haben, klicken Sie auf „SSH-Schlüssel hinzufügen”. Eine Anleitung zur Erstellung eines SSH-Schlüssels finden Sie oft direkt bei Hetzner oder über eine kurze Internetsuche (z.B. „ssh-key erstellen Windows” oder „ssh-keygen Linux”). Wählen Sie anschließend Ihren hochgeladenen SSH-Schlüssel aus.
- Netzwerk (optional): Für ein einfaches VPN benötigen Sie keine speziellen Netzwerkeinstellungen.
- Zusätzliche Features (optional): Auch hier können Sie die Standardeinstellungen beibehalten.
- Server benennen: Geben Sie Ihrem Server einen eindeutigen Namen, z.B. „wireguard-vpn-server”.
- Server erstellen: Überprüfen Sie Ihre Auswahl und klicken Sie auf „Server erstellen”.
Ihr Server wird nun provisioniert. Dies dauert in der Regel nur wenige Sekunden bis Minuten. Sobald der Status „Running” anzeigt, ist Ihr Server einsatzbereit. Notieren Sie sich die zugewiesene öffentliche IPv4-Adresse, da wir diese gleich für die SSH-Verbindung benötigen.
Schritt 2: Initialer Server-Setup und Sicherheit
Jetzt ist es Zeit, sich mit Ihrem neuen Server zu verbinden und einige grundlegende Sicherheitsmaßnahmen zu ergreifen.
- Per SSH verbinden: Öffnen Sie Ihr Terminal (macOS/Linux) oder Ihren SSH-Client (z.B. PuTTY unter Windows) und stellen Sie eine Verbindung her. Verwenden Sie den Benutzernamen „root” und die öffentliche IP-Adresse Ihres Servers:
ssh root@IHRE_SERVER_IP_ADRESSE
Wenn Sie Ihren SSH-Schlüssel korrekt hinterlegt haben, sollten Sie ohne Passwortabfrage auf den Server zugreifen können. Bei der ersten Verbindung müssen Sie eventuell die Authentizität des Hosts bestätigen (tippen Sie „yes” ein).
- System aktualisieren: Es ist immer eine gute Praxis, das System auf den neuesten Stand zu bringen, um von aktuellen Sicherheits-Updates zu profitieren:
apt update && apt upgrade -y
- Firewall einrichten (UFW): Eine Firewall ist unerlässlich, um Ihren Server vor unerwünschten Zugriffen zu schützen. Ubuntu wird mit UFW (Uncomplicated Firewall) geliefert, die einfach zu bedienen ist.
apt install ufw -y # UFW installieren, falls noch nicht geschehen ufw allow ssh # SSH-Zugriff erlauben (Port 22) ufw allow 51820/udp # WireGuard Port erlauben (Standard: 51820 UDP) ufw enable # Firewall aktivieren (Bestätigen Sie mit 'y') ufw status verbose # Status überprüfen
Achten Sie darauf, dass Sie `ufw allow ssh` *vor* `ufw enable` ausführen, sonst sperren Sie sich aus dem Server aus! WireGuard nutzt standardmäßig den UDP-Port 51820. Wir öffnen diesen für den späteren VPN-Verkehr.
Schritt 3: WireGuard auf dem Server installieren
Nun installieren wir WireGuard auf Ihrem Hetzner Server.
- WireGuard installieren:
apt install wireguard -y
Dieser Befehl installiert das WireGuard-Paket und alle notwendigen Abhängigkeiten.
- IP-Forwarding aktivieren: Damit Ihr VPN-Server den Traffic Ihrer Clients weiterleiten kann, muss IP-Forwarding im Kernel aktiviert werden.
Öffnen Sie die Konfigurationsdatei mit einem Texteditor (z.B. nano):
nano /etc/sysctl.conf
Fügen Sie am Ende der Datei die folgende Zeile hinzu oder entkommentieren Sie sie (entfernen Sie das `#`-Zeichen):
net.ipv4.ip_forward=1
Speichern Sie die Datei (Strg+O, Enter) und schließen Sie den Editor (Strg+X). Wenden Sie die Änderung an:
sysctl -p
Schritt 4: WireGuard Konfiguration auf dem Server
Jetzt erstellen wir die Konfigurationsdatei für den WireGuard-Server und generieren die benötigten Schlüsselpaare.
- Schlüsselpaare generieren: Wir benötigen ein privates und ein öffentliches Schlüsselpaar für den Server und später für jeden Client. Aus Sicherheitsgründen generieren wir diese im Verzeichnis `/etc/wireguard` und stellen sicher, dass die Berechtigungen restriktiv sind.
umask 077 # Setzt restriktive Dateiberechtigungen wg genkey | tee /etc/wireguard/privatekey_server | wg pubkey > /etc/wireguard/publickey_server
Diese Befehle erzeugen den privaten und öffentlichen Schlüssel für den Server und speichern sie in den jeweiligen Dateien.
- WireGuard Konfigurationsdatei erstellen: Erstellen Sie die Datei `/etc/wireguard/wg0.conf`:
nano /etc/wireguard/wg0.conf
Fügen Sie folgenden Inhalt ein. Ersetzen Sie dabei `SERVER_PRIVATE_KEY` durch den Inhalt Ihrer Datei `/etc/wireguard/privatekey_server` (den Sie mit `cat /etc/wireguard/privatekey_server` anzeigen können).
[Interface] PrivateKey = SERVER_PRIVATE_KEY Address = 10.0.0.1/24 ListenPort = 51820 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; iptables -A FORWARD -o wg0 -j ACCEPT PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; iptables -D FORWARD -o wg0 -j ACCEPT
- `PrivateKey`: Der private Schlüssel Ihres Servers.
- `Address`: Die IP-Adresse, die Ihr Server innerhalb des VPN-Netzwerks haben wird. `10.0.0.1/24` bedeutet, der Server ist die erste IP im 10.0.0.0-Netzwerk, das bis zu 254 Clients aufnehmen kann.
- `ListenPort`: Der UDP-Port, auf dem WireGuard auf Verbindungen lauscht (muss der zuvor in UFW geöffnete Port sein).
- `PostUp`/`PostDown`: Diese Regeln sorgen dafür, dass der Datenverkehr von den VPN-Clients ins Internet (über die `eth0`-Schnittstelle Ihres Servers) und zurück korrekt weitergeleitet (NAT) wird, sobald das WireGuard-Interface gestartet/gestoppt wird.
Speichern und schließen Sie die Datei.
Schritt 5: WireGuard starten und aktivieren
Jetzt starten wir den WireGuard-Dienst und stellen sicher, dass er bei jedem Serverstart automatisch geladen wird.
- WireGuard-Dienst starten:
systemctl start wg-quick@wg0
- Autostart aktivieren:
systemctl enable wg-quick@wg0
- Status überprüfen:
wg show
Dieser Befehl sollte Ihnen Informationen über Ihr WireGuard-Interface anzeigen, einschließlich des öffentlichen Schlüssels, des Listening-Ports und ob es bereits Peers gibt (noch nicht der Fall).
Schritt 6: Client-Konfiguration erstellen
Jetzt müssen wir die Konfiguration für Ihre Endgeräte (Laptop, Smartphone, Tablet) erstellen. Für jeden Client benötigen wir ein eigenes Schlüsselpaar und einen Eintrag in der Server-Konfiguration.
- Schlüsselpaar für den Client generieren: Bleiben Sie auf dem Server verbunden und generieren Sie die Schlüssel für Ihren ersten Client (z.B. `client1`):
wg genkey | tee /etc/wireguard/privatekey_client1 | wg pubkey > /etc/wireguard/publickey_client1
Notieren Sie sich den privaten und öffentlichen Schlüssel des Clients (oder speichern Sie sie lokal). Wir benötigen sie gleich.
- Client in die Server-Konfiguration aufnehmen: Bearbeiten Sie die Datei `/etc/wireguard/wg0.conf` erneut:
nano /etc/wireguard/wg0.conf
Fügen Sie am Ende der Datei einen neuen `[Peer]`-Block für den Client hinzu. Ersetzen Sie dabei `CLIENT_PUBLIC_KEY` durch den öffentlichen Schlüssel Ihres Clients und wählen Sie eine freie IP-Adresse im 10.0.0.0/24-Netzwerk für diesen Client (z.B. `10.0.0.2`).
[Peer] PublicKey = CLIENT_PUBLIC_KEY AllowedIPs = 10.0.0.2/32
Speichern und schließen Sie die Datei. Starten Sie WireGuard neu, damit die Änderungen wirksam werden:
systemctl restart wg-quick@wg0
- Client-Konfigurationsdatei erstellen: Erstellen Sie eine neue Datei auf Ihrem lokalen Computer (nicht auf dem Server!) mit folgendem Inhalt (z.B. `client1.conf`).
Ersetzen Sie dabei:
- `CLIENT_PRIVATE_KEY` durch den privaten Schlüssel Ihres Clients.
- `SERVER_PUBLIC_KEY` durch den öffentlichen Schlüssel Ihres Servers (den Sie mit `cat /etc/wireguard/publickey_server` auf dem Server auslesen können).
- `IHRE_SERVER_IP_ADRESSE` durch die öffentliche IP-Adresse Ihres Hetzner Servers.
- `CLIENT_VPN_IP` durch die IP-Adresse, die Sie dem Client auf dem Server zugewiesen haben (z.B. `10.0.0.2`).
[Interface] PrivateKey = CLIENT_PRIVATE_KEY Address = CLIENT_VPN_IP/32 DNS = 1.1.1.1, 8.8.8.8 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = IHRE_SERVER_IP_ADRESSE:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
- `Address`: Die IP-Adresse, die Ihr Client im VPN-Netzwerk haben wird (muss mit `AllowedIPs` auf dem Server übereinstimmen). `/32` bedeutet, es ist eine einzelne IP-Adresse.
- `DNS`: Hier können Sie DNS-Server angeben, die verwendet werden sollen, wenn das VPN aktiv ist (z.B. Cloudflare, Google DNS).
- `Endpoint`: Die öffentliche IP-Adresse und der Port Ihres Hetzner WireGuard Servers.
- `AllowedIPs = 0.0.0.0/0`: Dies leitet *allen* Internetverkehr über das VPN. Wenn Sie nur bestimmten Traffic über das VPN leiten möchten, können Sie hier spezifischere IP-Bereiche angeben.
- `PersistentKeepalive = 25`: Hält die Verbindung offen, auch wenn kein Traffic fließt. Nützlich bei NAT-Routern.
Schritt 7: WireGuard auf dem Client einrichten
Jetzt ist es Zeit, die Client-Konfiguration auf Ihrem Endgerät einzurichten.
- WireGuard Client installieren: Laden Sie den passenden WireGuard Client für Ihr Betriebssystem herunter:
- Windows: wireguard.com/install/
- macOS: Verfügbar im App Store oder über Homebrew.
- Linux: `apt install wireguard` (oder ähnlicher Befehl für Ihre Distribution).
- Android/iOS: Verfügbar im Google Play Store / Apple App Store.
- Konfiguration importieren:
- Desktop (Windows/macOS/Linux): Öffnen Sie den WireGuard Client. Sie können die `client1.conf`-Datei direkt importieren. Unter Linux können Sie die Datei nach `/etc/wireguard/` kopieren und mit `wg-quick up client1` starten.
- Mobile (Android/iOS): Viele Clients bieten die Möglichkeit, eine Konfigurationsdatei zu importieren oder einen QR-Code zu scannen. Um einen QR-Code zu generieren, können Sie die `client1.conf` kurz auf den Server übertragen, sie mit `qrencode -t ansiutf8 < client1.conf` (nach Installation von `qrencode` mit `apt install qrencode -y`) in Ihrem Terminal anzeigen lassen oder online einen QR-Code Generator verwenden (Vorsicht bei sensiblen Daten!).
- Verbinden: Sobald die Konfiguration geladen ist, aktivieren Sie die WireGuard-Verbindung im Client.
Schritt 8: Testen der VPN-Verbindung
Überprüfen Sie, ob Ihr VPN wie gewünscht funktioniert.
- IP-Adresse prüfen: Besuchen Sie eine Website wie whatismyip.com oder wieistmeineip.de. Ihre angezeigte IP-Adresse sollte nun die öffentliche IP-Adresse Ihres Hetzner Servers sein.
- DNS-Leak Test: Gehen Sie auf dnsleaktest.com und führen Sie einen „Extended Test” durch. Die angezeigten DNS-Server sollten idealerweise die sein, die Sie in Ihrer Client-Konfiguration unter `DNS` angegeben haben (z.B. Cloudflare 1.1.1.1) oder solche, die Ihrem Hetzner-Server zugeordnet sind, und nicht die Ihres lokalen Internetanbieters.
- Geschwindigkeitstest: Führen Sie einen Geschwindigkeitstest (z.B. auf speedtest.net) durch, um sicherzustellen, dass die Bandbreite zufriedenstellend ist. WireGuard ist bekannt für seine hohe Geschwindigkeit, sodass Sie kaum Leistungseinbußen spüren sollten.
Wenn alle Tests positiv ausfallen, herzlichen Glückwunsch! Sie haben Ihren eigenen, sicheren WireGuard VPN-Tunnel bei Hetzner erfolgreich eingerichtet.
Erweiterte Konfigurationen und Tipps
- Weitere Clients hinzufügen: Wiederholen Sie die Schritte 6.1, 6.2 und 6.3 für jeden weiteren Client, den Sie hinzufügen möchten. Achten Sie darauf, jedem Client eine eindeutige `Address` (z.B. `10.0.0.3/32`, `10.0.0.4/32` usw.) in der `wg0.conf` des Servers zuzuweisen.
- Kill Switch: Viele WireGuard Clients bieten eine „Kill Switch”-Funktion, die den Internetzugang trennt, falls die VPN-Verbindung abbricht. Aktivieren Sie diese Option, um sicherzustellen, dass Ihr Traffic niemals ungeschützt übertragen wird.
- Automatisierung: Für die Verwaltung vieler Clients können Tools oder Skripte nützlich sein, die die Schlüsselpaare und Konfigurationsdateien automatisch generieren und verwalten. Suchen Sie nach „wireguard-install script” oder „wireguard management panel”.
- Regelmäßige Updates: Halten Sie Ihr Betriebssystem und die WireGuard-Installation auf dem Server immer auf dem neuesten Stand (`apt update && apt upgrade -y`).
- Server-Backups: Erwägen Sie die Einrichtung von automatischen Backups Ihres Hetzner Servers über das Cloud Dashboard, um bei einem Problem schnell wieder einsatzbereit zu sein.
- Monitoring: Überwachen Sie die Auslastung Ihres Servers im Hetzner Cloud Dashboard, um sicherzustellen, dass er auch bei mehreren Nutzern stabil läuft.
Fazit
Sie haben es geschafft! Mit dieser Anleitung haben Sie Ihren eigenen, privaten VPN-Server mit WireGuard auf einem Hetzner Cloud Server eingerichtet. Sie genießen nun die Vorteile von mehr Online-Sicherheit, Datenschutz und Flexibilität, ohne sich auf Dritte verlassen zu müssen. Ihre Daten reisen nun durch einen schnellen, modernen und von Ihnen kontrollierten Tunnel.
Die Einrichtung eines eigenen VPNs mag auf den ersten Blick komplex erscheinen, aber die Vorteile – die volle Kontrolle über Ihre Privatsphäre und eine schnelle, zuverlässige Verbindung – sind es absolut wert. Sie haben nicht nur eine technische Aufgabe gemeistert, sondern auch einen wichtigen Schritt für Ihre digitale Souveränität getan. Nutzen Sie Ihren neuen sicheren Tunnel weise und genießen Sie ein freieres und sichereres Interneterlebnis!