WireGuard ist ein modernes VPN (Virtual Private Network)-Protokoll, das sich durch Schlankheit, Performance und einfache Konfiguration auszeichnet.
1. WireGuard installieren Link to heading
Aktualisiere zunächst die Paketlisten und installiere WireGuard:
sudo apt update && sudo apt upgrade
sudo apt install wireguard -y
2. Schlüssel erstellen Link to heading
WireGuard nutzt zur Authentifizierung ein Schlüsselpaar, das aus einem privaten und einem öffentlichen Schlüssel besteht.
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
Den öffentlichen Schlüssel kannst du mit folgendem Befehl anzeigen:
cat publickey
Wichtig: Der private Schlüssel darf niemals veröffentlicht oder weitergegeben werden.
3. IP-Forwarding aktivieren Link to heading
Damit der Server Netzwerkverkehr zwischen VPN und Internet weiterleiten kann, aktivieren wir IPv4-Forwarding dauerhaft:
sudo nano /etc/sysctl.conf
Füge folgende Zeile hinzu:
net.ipv4.ip_forward=1
Die Änderung übernehmen mit:
sudo sysctl -p
4. Server konfigurieren Link to heading
Öffne die WireGuard-Konfiguration:
nano /etc/wireguard/wg0.conf
Beispielkonfiguration:
[Interface]
Address = 10.51.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.51.0.2/32
Ersetze «privatekey» durch den Inhalt der Datei privatekey, den du zuvor erstellt hast.
5. WireGuard starten Link to heading
Starte das Interface:
sudo wg-quick up wg0
Aktiviere den automatischen Start beim Booten:
sudo systemctl enable wg-quick@wg0
Verbindungsstatus anzeigen:
sudo wg show
6. Client konfigurieren Link to heading
Der Client erhält eine eigene Konfiguration mit einem eigenen Schlüsselpaar:
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.51.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Ersetze die Platzhalter durch deine tatsächlichen Werte.
ℹ️ Hinweis: Mit
AllowedIPs = 0.0.0.0/0wird der gesamte IPv4-Verkehr über den Tunnel geleitet. IPv6 ist damit nicht automatisch abgedeckt.
7. Verbindung testen Link to heading
Auf dem Server:
sudo wg show
ping -c 4 10.51.0.2
Auf dem Client:
ping -c 4 10.51.0.1
ping -c 4 1.1.1.1
ip route
💡 Tipp: Wenn der Handshake funktioniert, aber kein Internet verfügbar ist, prüfe IP-Forwarding, Firewall-Regeln und NAT.
8. Fehlerbehebung Link to heading
NAT-Regeln prüfen:
sudo iptables -t nat -L POSTROUTING -n -v
Weiterleitungsregeln prüfen:
sudo iptables -L FORWARD -n -v
WireGuard-Protokoll anzeigen:
sudo journalctl -u wg-quick@wg0 -n 100 --no-pager
Interface nach Konfigurationsänderungen neu starten:
sudo wg-quick down wg0
sudo wg-quick up wg0
ℹ️ Hinweis: Dabei wird die VPN-Verbindung kurz unterbrochen.
Fazit Link to heading
Mit diesen Schritten ist WireGuard auf einem Linux-Server eingerichtet und konfiguriert.