Zum Hauptinhalt springen

WireGuard Server auf macOS konfigurieren

WireGuard ist eine einfache VPN-Anwendung, mit der Sie aus der Ferne über einen sicheren Tunnel auf Ihren Server oder Ihr Netzwerk zugreifen können. Normalerweise besteht ein VPN aus einem Server und einem Client. Mit WireGuard ist dies ein und dasselbe. Der einzige Unterschied ist die Konfiguration. Schauen wir uns das also mal an.

Herunterladen von WireGuard#

Unter macOS kann WireGuard über den AppStore heruntergeladen werden. Sie benötigen dieselbe Anwendung sowohl für den Server als auch für den bzw. die Clients, die sich mit ihm verbinden. Wenn Ihr Client kein Mac ist, finden Sie weitere Download-Optionen auf der offiziellen Website - dort werden Clients für jedes Betriebssystem angeboten.

Um auf Ihren Server zuzugreifen, verbinden Sie sich entweder per VNC oder über unser KVM-Modul.

Nach dem Starten werden Sie mit der folgenden Oberfläche begrüßt:

Konfigurieren des Servers#

Um Ihre Konfiguration einzurichten, klicken Sie auf die Schaltfläche + in der unteren linken Ecke und wählen Sie Add Empty Tunnel.... Sie sehen ein Textfeld mit einem [Interface]-Abschnitt und einem generierten PrivateKey. Dieser Private Key ist Ihr Schlüssel und sollte das System nie verlassen. Der Public Key wird von Ihrem Private Key abgeleitet und wird von Clients zur Authentifizierung des Servers verwendet.

  1. Geben Sie einen Namen für diese Verbindung ein. Er kann beliebig sein.
  2. Wenn Sie möchten, dass Ihr VPN-Server beim Booten automatisch gestartet wird, wählen Sie "On-Demand" bei "Ethernet". Dadurch wird dieser Tunnel automatisch aktiviert, sobald der Mac über Ethernet verbunden ist.
  3. Fügen Sie die folgenden Zeilen zur Konfigurationsdatei hinzu:
ListenPort = 51820
Address = 10.10.10.1/24

ListenPort definiert den Port, auf dem der Server lauschen wird und über den er öffentlich erreichbar ist. Sie können diesen Port nach Belieben anpassen. Stellen Sie sicher, dass Sie eingehende UDP-Verbindungen für diesen Port durch die Firewall zulassen, sonst werden alle Verbindungsversuche blockiert. Erfahren Sie mehr über die Verwendung der OakHost Firewall

Address ist die IP-Adresse dieses Servers innerhalb des virtuellen Netzwerks, welches er erstellen wird. Mit /24 wird die Subnetzgröße des Netzwerks festgelegt. Mit dieser Konfiguration wird 10.10.10.1 die IP des Servers sein. Clients, die sich über das VPN mit ihm verbinden, bekommen IP-Adressen innerhalb von 10.10.10.2 - 10.10.10.254 zugewiesen. Dies kann natürlich auch angepasst werden.

  1. Fügen Sie für jeden Client, der sich mit diesem VPN verbinden soll, die folgenden drei Zeilen ein:
[Peer]
PublicKey = xxxx
AllowedIPs = 10.10.10.x/32

[Peer] gibt an, dass sich die folgenden Zeilen auf einen Client beziehen sollen, der sich mit dem Server verbindet.

PublicKey muss der öffentliche Schlüssel eines bestimmten Clients sein. Dieser Schlüssel kann später bei der Konfiguration des Clients ermittelt werden und muss mit dem privaten Schlüssel dieses Clients verknüpft sein. Dadurch wird sichergestellt, dass nur diese beiden Geräte miteinander kommunizieren können. Stellen Sie sich das wie ein Passwort vor.

AllowedIPs definiert, welche IP(s) diesem speziellen Client zugewiesen werden können. In unserem Fall sollte dies nur diese eine Adresse sein (also /32) und sie sollte sich mit jedem Client erhöhen, so dass keine zwei Clients die gleiche IP-Adresse erhalten.

Diese Zeilen können für jeden neuen Client beliebig oft wiederholt und später erweitert werden. Wir empfehlen, für jedes Gerät, das sich mit dem Server verbinden soll, einen Client anzulegen. Schauen Sie sich dieses Beispiel an:

  1. Speichern Sie die Tunnelkonfiguration.
  2. Falls noch nicht geschehen, starten Sie den Server, indem Sie die Schaltfläche Activate drücken.

Konfigurieren des Clients#

Laden Sie auf dem Client-Geräten die WireGuard-App über den App Store oder von der offiziellen Website herunter. Nach dem Start erstellen Sie einen neuen Tunnel wie zuvor.

  1. Beachten Sie, dass auch hier ein privates und ein öffentliches Schlüsselpaar erzeugt wird. Der Public Key muss in der Server-Konfiguration im Abschnitt [Peer] hinzugefügt werden.
  2. Fügen Sie Address = 10.10.10.x/24 in die Konfigurationsdatei ein. Füllen Sie x mit der IP-Adresse, die im entsprechenden [Peer]-Abschnitt auf dem Server definiert wurde. Beachten Sie jedoch, dass die Subnetzmaske hier auf /24 gesetzt ist, anstatt auf /32, wie auf der Serverseite. Dies ist beabsichtigt.
  3. Fügen Sie nun einen [Peer]-Abschnitt in die Client-Konfiguration ein. Dieser definiert nun den Server, mit dem sich der Client verbinden wird. Er besteht aus den folgenden Zeilen:
[Peer]
PublicKey = vrw/O0CIAXhhnjMW4QlcGRanr4MzbFvjQK0u6MprOC4=
AllowedIPs = 10.10.10.0/24
Endpoint = 116.202.140.164:51820

PublicKey ist der öffentliche Schlüssel, der auf dem Konfigurationsbildschirm des Servers angezeigt wird.

AllowedIPs listet alle IP-Bereiche auf, die durch den WireGuard-VPN-Tunnel geschickt werden sollen. Dies sollte das IP-Netz des internen WireGuard-Netzwerks enthalten.

Endpunkt definiert die IP oder den Hostnamen des Servers sowie den Port, über den eine Verbindung zu ihm aufgebaut wird. Dieser sollte mit der öffentlichen Adresse Ihres Servers übereinstimmen, sowie mit dem Port, den Sie in Ihrer Server-Konfigurationsdatei definiert haben.

Nach der Fertigstellung sollte Ihre Konfigurationsdatei etwa so aussehen. Bitte stellen Sie sicher, dass alle öffentlichen Schlüssel zwischen Server- und Client-Seite übereinstimmen. Andernfalls wird die Verbindung nicht erfolgreich sein.

  1. Starten Sie den Client, indem Sie die Konfiguration speichern und die Schaltfläche Activate drücken.
  2. Um sicherzustellen, dass alles richtig funktioniert, versuchen Sie, den Server anzupingen, indem Sie den folgenden Befehl im Terminal eingeben:
ping 10.10.10.1

Fehlersuche und Tipps#

Wie kann ich Konfigurationsdateien freigeben?#

Wenn Sie nicht umständlich öffentliche Schlüssel mit Ihren Clients austauschen wollen, können Sie Schlüsselpaare und Konfigurationsdateien mit dem WireGuard-Kommandozeilenwerkzeug erzeugen oder die Konfigurationsdateien auf dem Server erstellen und anschließend exportieren.

Warum kann sich mein Client nicht verbinden?#

Bitte überprüfen Sie die folgenden häufigsten Fehler:

  • Der Server ist nicht in Betrieb. Stellen Sie sicher, dass der Tunnel aktiv ist.
  • Der Port ist von der Firewall blockiert. Stellen Sie sicher, dass die Firewall eine Ausnahme für diesen Port definiert hat. Das Protokoll muss auf UDP eingestellt sein.
  • Stellen Sie sicher, dass alle Referenzen des öffentlichen Schlüssels zwischen dem Client und dem Server korrekt sind. Sie müssen genau übereinstimmen, sonst schlägt eine Verbindung fehl.
  • Stellen Sie sicher, dass die IP-Adressen und zulässigen IP-Bereiche korrekt definiert sind. Prüfen Sie, ob es ein Problem mit einer falschen Subnetzmaske gibt.