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
Autor
REXE Teknoloji Network & Security Team
Redaktion
REXE Teknoloji Technical Editorial
Erstveröffentlichung
Letzte Aktualisierung

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.

Häufig gestellte Fragen

Welchen Port verwendet WireGuard?

WireGuard verwendet standardmäßig UDP-Port 51820. Sie können diesen ändern — ersetzen Sie den ListenPort-Wert in der Konfigurationsdatei. Vergessen Sie nicht, denselben Port in Ihrer Firewall zu öffnen.

Was ist der Unterschied zwischen WireGuard und OpenVPN?

WireGuard ist viel einfacher (4000 Codezeilen), schneller und verwendet moderne Kryptographie. OpenVPN ist ausgereifter mit breiterem Plattformsupport. WireGuard wird für neue Installationen empfohlen.

Wie leite ich den gesamten Internetverkehr über das VPN?

Verwenden Sie AllowedIPs = 0.0.0.0/0, ::/0 in der Client-Konfiguration. Dies leitet den gesamten IPv4- und IPv6-Verkehr durch den VPN-Tunnel. IP-Weiterleitung und NAT-Masquerade müssen auf dem Server aktiviert sein.

Wie viele Clients können sich verbinden?

WireGuard hat kein theoretisches Client-Limit. Das praktische Limit hängt von der Server-Hardware ab. Fügen Sie für jeden Client einen separaten [Peer]-Block hinzu und weisen Sie eine eindeutige IP-Adresse zu.

Was soll ich tun, wenn die WireGuard-Verbindung abbricht?

Prüfen Sie den Verbindungsstatus mit 'sudo wg show'. Wenn das Feld 'latest handshake' nicht aktuell ist, besteht keine Verbindung. Überprüfen Sie Server-IP/Port, Schlüssel und Firewall-Regeln. Starten Sie neu mit 'sudo wg-quick down wg0 && sudo wg-quick up wg0'.

Verwandte Artikel

Malware & Rootkit-Scan: rkhunter und ClamAV Anleitung

Schützen Sie Ihren Linux-Server vor Malware und Rootkits. rkhunter und ClamAV Installation, Scan-Konfiguration, Ergebnisinterpretation, geplante Scans und Incident-Response-Anleitung.

14 min
malwarerootkitrkhunter

Fail2Ban Konfiguration: SSH Brute-Force-Schutz Anleitung

Schützen Sie Ihren Server vor SSH-Brute-Force-Angriffen mit Fail2Ban. Installation, jail.local-Konfiguration, Nginx/Apache-Jails, IP-Whitelist, Ban-Überwachung und E-Mail-Benachrichtigungen.

13 min
fail2banbrute-forcessh-sicherheit
NetzwerkverkehrEingehend GbpsAusgehend Gbps