Anleitung zur Konfiguration von WireGuard auf einem SoftEther VPN-Server

SoftEther ist eine anspruchsvolle, mehrprotokollfähige VPN-Lösung, die eine Vielzahl von VPN-Protokollen unterstützt, darunter WireGuard, OpenVPN, L2TP/IPsec, SSTP und mehr. In dieser Anleitung konzentrieren wir uns darauf, das WireGuard-Protokoll auf einem SoftEther VPN-Server mithilfe des vpncmd-Tools zu konfigurieren – derzeit die einzige unterstützte Methode für die Einrichtung von WireGuard auf SoftEther.

Hinweis: Diese Anleitung richtet sich an fortgeschrittene Benutzer, die mit Kommandozeilen-Interfaces und manueller Serverkonfiguration vertraut sind.

Voraussetzungen

Bevor Sie beginnen, stellen Sie bitte Folgendes sicher:

  • Sie haben einen laufenden, aktualisierten SoftEther VPN-Server auf einem Linux-System. In dieser Anleitung wird SoftEther Version 5.02 Build 5185 unter Ubuntu verwendet.
  • Ihr Server befindet sich im Standalone-Modus (d. h. er ist weder ein Cluster-Controller noch ein Cluster-Mitglied), da WireGuard-Verbindungen nur auf einem eigenständigen Server möglich sind.
  • Sie haben Administratorzugriff auf den SoftEther-Server und das Tool vpncmd entweder lokal oder remote installiert.
  • Sie haben ein vollständig konfiguriertes virtuelles Hub, das für die Verbindung von WireGuard-Clients verwendet wird.

Schritt 1: Konfiguration des UDP-Ports für WireGuard

Stellen Sie sicher, dass Sie Administratorrechte auf dem VPN-Server besitzen, bevor Sie die WireGuard-Verbindung einrichten. Starten Sie das Tool vpncmd, wählen Sie Option #1 und melden Sie sich als Administrator an:

./vpncmd

Um zu überprüfen, ob Ihr SoftEther-Server auf einem UDP-Port lauscht, führen Sie folgenden Befehl aus:

PortsUDPGet

Falls kein UDP-Port aktiv ist, können Sie einen hinzufügen. Verwenden Sie dafür den folgenden Befehl. Sie können jede beliebige Portnummer verwenden, solange sie nicht mit vorhandenen Ports Ihres Linux-Servers in Konflikt steht:

PortsUDPSet 51820

Hinweis: Sie können mehrere Ports gleichzeitig angeben, indem Sie sie durch Kommas trennen. Stellen Sie außerdem sicher, dass diese Ports nicht durch Ihre Server-Firewall oder iptables blockiert werden.

Schritt 2: Festlegung des Standard-Gateways und Subnets für WireGuard

Da WireGuard kein DHCP unterstützt (das auf Broadcast-Nachrichten basiert, welche in einem Point-to-Point-VPN-Tunnel nicht funktionieren), muss jeder Peer eine manuell konfigurierte (statische) IP-Adresse haben, um eine korrekte Verschlüsselung und Routing zu gewährleisten. Wechseln Sie zu Ihrem virtuellen Hub und konfigurieren Sie das Standard-Gateway und die Subnetzmaske, die Ihre WireGuard-Clients mit statischen IP-Adressen verwenden werden:

Hub myhub
SetStaticNetwork /GATEWAY=192.168.1.1 /SUBNET=255.255.255.0

Ersetzen Sie 192.168.1.1 und 255.255.255.0 durch die passende Gateway-IP und Subnetzmaske – verwenden Sie dieselben Werte, die der DHCP-Server des Hubs an verbundene Clients vergibt. Überprüfen Sie die korrekte Konfiguration des Hubs, indem Sie folgenden Befehl ausführen:

OptionsGet myhub

Schritt 3: Aktivierung des WireGuard-Protokolls

Obwohl WireGuard normalerweise standardmäßig aktiviert ist, sollten Sie die Aktivierung mit folgendem Befehl überprüfen:

ProtoOptionsSet wireguard /NAME=enabled /VALUE=true

Schritt 4: Generieren und Zuweisen von Benutzer-Schlüsseln

WireGuard verwendet X25519-Schlüsselpaaren für die sichere Kommunikation. Sie können diese Schlüssel mithilfe des vpncmd-Tools oder eines externen Tools generieren. Im folgenden Beispiel werden die Schlüssel mit vpncmd erzeugt.

Beenden Sie vpncmd und starten Sie es erneut. Wählen Sie Option #3, um in den Tools-Modus zu wechseln. Führen Sie dann folgenden Befehl aus, um ein Schlüsselpaar zu generieren:

GenX25519

Das Tool erzeugt ein Schlüsselpaar: einen Private Key und einen Public Key. Kopieren und speichern Sie diese sicher. Wenn Sie mehrere Hubs oder Benutzer haben, die eine WireGuard-Verbindung benötigen, erstellen Sie für jeden ein eigenes Schlüsselpaar.

Nachdem Sie die Schlüssel generiert haben, melden Sie sich erneut als Administrator in vpncmd an und weisen Sie für jeden Benutzer den Public X25519 key dem entsprechenden Hub zu:

WgkAdd "WFPFO/s8UXD6HNH+2P2UjfbkUP8BFITa7TXKculvDUk=" /HUB=myhub /USER=myuser

Ersetzen Sie WFPFO/s…ulvDUk=, myhub und myuser durch Ihren tatsächlichen öffentlichen Schlüssel, den Hub-Namen und den Benutzernamen. Stellen Sie sicher, dass dieser Benutzer bereits im angegebenen Hub existiert.

Sie können nun mit folgendem Befehl überprüfen, ob die WireGuard-Schlüssel korrekt hinzugefügt wurden:

WgkEnum

Schritt 5: Erstellen einer Beispielkonfiguration für den WireGuard-Client

Im Folgenden finden Sie eine Beispielkonfigurationsdatei. Kopieren Sie sie in einen Texteditor und ersetzen Sie die Platzhalter durch Ihre tatsächlichen Werte, die wir anschließend erläutern:

[Interface]
PrivateKey = WFPFO/s8UXD6HNH+2P2UjfbkUP8BFITa7TXKculvDUk=
Address = 192.168.1.15/32
DNS = 9.9.9.9,149.112.112.112

[Peer]
PublicKey = pbnWflgIl4CUqYkgZKrtQg/jMAyytyS/AufEt4OAq3Y=
PresharedKey = s/8eDb4r6BUtAMZEY8a+VC4Qs4HYzUJVqD8YzSNFzuk=
AllowedIPs = 0.0.0.0/0
Endpoint = 150.151.152.153:51820
PersistentKeepalive = 21

[Interface]

  • PrivateKey: Geben Sie den Private Key aus dem in Schritt 4 erstellten X25519-Schlüsselpaar ein.
  • Address: Weisen Sie diesem Benutzer eine statische IP-Adresse in Ihrem Hub zu. Stellen Sie sicher, dass die IP-Adresse innerhalb des in Schritt 2 festgelegten statischen Netzwerks und Subnetzes liegt. WireGuard erfordert, dass die IP-Adresse mit /32 endet, um einen einzelnen Host anzugeben.
    Hinweis: Wenn Ihr virtuelles Hub über einen DHCP-Server verwaltet wird, empfiehlt es sich, einen separaten Bereich statischer IP-Adressen nur für WireGuard-Verbindungen zu reservieren, um IP-Konflikte zu vermeiden.
  • DNS: Geben Sie die DNS-Server an, die in Ihrem Netzwerk verwendet werden. In diesem Beispiel werden die DNS-Server von Quad9 genutzt.

[Peer]

  • PublicKey: Geben Sie den Public Key Ihres Servers an. Zunächst können Sie den Private Key Ihres Servers mithilfe von
    ProtoOptionsGet wireguard
    auslesen. Kopieren Sie den Private Key und erzeugen Sie dann im Tools-Modus von vpncmd mit:
    GetPublicX25519 YourServerPrivateKey
    den entsprechenden Public Key. Ersetzen Sie YourServerPrivateKey durch den tatsächlichen Private Key Ihres Servers.
  • PresharedKey: Erhalten Sie den Preshared Key durch Eingabe von:
    ProtoOptionsGet wireguard
  • AllowedIPs: Mit AllowedIPs = 0.0.0.0/0 wird der gesamte IPv4-Datenverkehr durch den VPN-Tunnel geleitet, wodurch der VPN-Peer zum Standard-Gateway wird.
  • Endpoint: Geben Sie stattdessen die IP-Adresse Ihres Servers und den UDP-Port (wie in Schritt 1 festgelegt) an, anstelle von 150.151.152.153:51820.
  • PersistentKeepalive: Ein Wert von 21 veranlasst den Client, alle 21 Sekunden ein Keepalive-Paket zu senden, um die Verbindung aufrechtzuerhalten, insbesondere bei Peers hinter NAT oder Firewalls.

Durch das Einrichten des UDP-Ports, Konfigurieren des Standard-Gateways und Subnetzes, Aktivieren des WireGuard-Protokolls, Generieren und Zuweisen von Schlüsseln sowie Erstellen der Client-Konfigurationsdatei sollten Sie in der Lage sein, eine sichere Verbindung zu Ihrem virtuellen SoftEther-Hub über WireGuard herzustellen. Nach der Verbindung können Sie überprüfen, ob Ihr Datenverkehr über den WireGuard-Tunnel zu Ihrem SoftEther-Server geleitet wird.

FAQ

SoftEther VPN ist ein kostenloses, quelloffenes VPN, das mehrere Protokolle (SSL-VPN, L2TP/IPsec, OpenVPN, SSTP, WireGuard) für eine sichere und plattformübergreifende Verbindung unterstützt. Durch sein effizientes Design und starke Verschlüsselung bietet es hohe Leistung und zuverlässigen Fernzugriff, sowohl für private als auch für geschäftliche Nutzer.
WireGuard ist ein modernes, leistungsstarkes VPN-Protokoll, das für starke Verschlüsselung bekannt ist. SoftEther ermöglicht die Einrichtung von WireGuard-Verbindungen über das vpncmd-Tool auf Standalone-Servern.
Starten Sie vpncmd im Admin-Modus, überprüfen Sie UDP-Ports mit ‘PortsUDPGet’ und legen Sie mit ‘PortsUDPSet 51820’ (als Beispiel) einen Port für WireGuard-Verbindungen fest.
Weil WireGuard kein DHCP unterstützt (das auf Broadcasts basiert), muss jedem Client eine statische IP zugewiesen werden. Die Verwendung von /32 stellt sicher, dass das Routing präzise und sicher ist.
Verwenden Sie den Tools-Modus von vpncmd, um mit ‘GenX25519’ X25519-Schlüsselpaare zu generieren. Anschließend weisen Sie mit dem Befehl ‘WgkAdd’ den Public Key dem jeweiligen Hub zu.
Zuerst lesen Sie mit ‘ProtoOptionsGet wireguard’ den Private Key aus, dann erstellen Sie mit ‘GetPublicX25519’ im Tools-Modus von vpncmd den zugehörigen Public Key.
Prüfen Sie, ob der korrekte UDP-Port gesetzt ist, die statischen IP-Adressen mit den Netzwerkeinstellungen Ihres SoftEther-Hubs übereinstimmen, die Schlüssel korrekt erstellt/zugewiesen wurden und der Server im Standalone-Modus läuft.
Vermeiden Sie falsche Konfigurationen des UDP-Ports, das Nichtberücksichtigen der statischen IP-Anforderungen von WireGuard, die Verwendung fehlerhafter Schlüssselpaare und das Betreiben des Servers im Cluster-Modus anstelle des Standalone-Modus.