Zum Hauptinhalt springen
Zurück zur Kategorie

WireGuard VPN-Server einrichten: Schritt-für-Schritt-Anleitung

WireGuard VPN-Server einrichten: Schlüsselgenerierung, Server- und Client-Konfiguration, IP-Weiterleitung, Firewall-Regeln und Windows/Linux/Android-Client-Setup.

Lesezeit: 15 min Sicherheit
wireguardvpnserversicherheittunnellinuxnetzwerksicherheitverschlüsselungvpn-einrichtung

Inhaltsverzeichnis

WireGuard VPN-Server einrichten: Schritt-für-Schritt-Anleitung

WireGuard ist ein modernes, schnelles und sicheres VPN-Protokoll. Im Vergleich zu OpenVPN und IPSec hat es eine viel einfachere Struktur und bietet hohe Leistung. Diese Anleitung führt Sie durch die Einrichtung eines WireGuard VPN-Servers auf Ihrem REXE-Server.

Warum WireGuard wählen?

  • Einfache Konfiguration: Nur wenige Konfigurationszeilen
  • Hohe Leistung: Läuft auf Kernel-Ebene, niedrige Latenz
  • Moderne Kryptographie: ChaCha20, Poly1305, Curve25519
  • Kleine Codebasis: ~4000 Zeilen (OpenVPN ~100.000 Zeilen)
  • Plattformübergreifend: Linux, Windows, macOS, iOS, Android

Installation

hljs bash
# Ubuntu 20.04+
sudo apt update
sudo apt install wireguard -y

# CentOS/AlmaLinux 8+
sudo dnf install epel-release -y
sudo dnf install wireguard-tools -y

Schlüsselgenerierung

hljs bash
# Server-Schlüssel generieren
cd /etc/wireguard

# Privaten Schlüssel generieren
wg genkey | sudo tee /etc/wireguard/server_private.key

# Öffentlichen Schlüssel ableiten
sudo cat /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

# Dateiberechtigungen setzen
sudo chmod 600 /etc/wireguard/server_private.key

Server-Konfiguration

hljs bash
# Netzwerkschnittstelle finden
ip route | grep default

# WireGuard-Konfigurationsdatei erstellen
sudo nano /etc/wireguard/wg0.conf
hljs ini
# /etc/wireguard/wg0.conf — Server-Konfiguration

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATER_SCHLÜSSEL

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = CLIENT1_ÖFFENTLICHER_SCHLÜSSEL
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = CLIENT2_ÖFFENTLICHER_SCHLÜSSEL
AllowedIPs = 10.0.0.3/32

Ersetzen Sie eth0 durch den Namen Ihrer tatsächlichen Netzwerkschnittstelle. Finden Sie ihn mit ip route | grep default.

IP-Weiterleitung aktivieren

hljs bash
# Vorübergehend aktivieren
sudo sysctl -w net.ipv4.ip_forward=1

# Dauerhaft aktivieren
sudo nano /etc/sysctl.conf
# Fügen Sie hinzu oder kommentieren Sie aus:
# net.ipv4.ip_forward=1

# Änderungen anwenden
sudo sysctl -p

Firewall-Regeln

hljs bash
# Mit UFW
sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
sudo ufw enable

# Mit iptables
sudo iptables -A INPUT -p udp --dport 51820 -j ACCEPT
sudo iptables -A FORWARD -i wg0 -j ACCEPT
sudo iptables -A FORWARD -o wg0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Regeln dauerhaft speichern
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

WireGuard-Dienst starten

hljs bash
# WireGuard-Schnittstelle starten
sudo wg-quick up wg0

# Beim Systemstart automatisch starten
sudo systemctl enable wg-quick@wg0

# Status prüfen
sudo wg show

Client-Konfiguration

Linux-Client-Konfiguration

hljs ini
# /etc/wireguard/wg0.conf — Client-Konfiguration

[Interface]
Address = 10.0.0.2/24
PrivateKey = CLIENT_PRIVATER_SCHLÜSSEL
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_ÖFFENTLICHER_SCHLÜSSEL
Endpoint = SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Windows-Client-Setup

  1. WireGuard für Windows herunterladen und installieren
  2. App öffnen → "Tunnel hinzufügen" → "Leeren Tunnel hinzufügen"
  3. Konfiguration einfügen und "Aktivieren" klicken

Android/iOS-Client-Setup

hljs bash
# QR-Code auf dem Server generieren
sudo apt install qrencode -y
qrencode -t ansiutf8 < /path/to/client.conf

Neue Clients hinzufügen

hljs bash
# Client-Schlüssel generieren
wg genkey | tee /etc/wireguard/client3_private.key | wg pubkey > /etc/wireguard/client3_public.key

# Zum Server hinzufügen (ohne Neustart)
sudo wg set wg0 peer $(cat /etc/wireguard/client3_public.key) allowed-ips 10.0.0.4/32

# Dauerhaft speichern
sudo wg-quick save wg0

Fehlerbehebung

hljs bash
# WireGuard-Logs anzeigen
sudo journalctl -u wg-quick@wg0 -f

# Verbindungsstatistiken
sudo wg show wg0

# IP-Weiterleitung prüfen
cat /proc/sys/net/ipv4/ip_forward

# Firewall-Regeln prüfen
sudo iptables -L -n -v
sudo iptables -t nat -L -n -v

Nach dem Aufbau einer WireGuard-Verbindung sollte das Feld latest handshake in der Ausgabe von sudo wg show aktuell sein. Wenn kein Handshake vorhanden ist, überprüfen Sie Server-IP/Port, Schlüssel und Firewall-Regeln.

Fazit

WireGuard bietet eine moderne und sichere VPN-Lösung. Mit seiner einfachen Konfiguration und hohen Leistung ist es ideal für den persönlichen Gebrauch und Unternehmensnetzwerke.