Wireguard auf Apple-Computer einrichten

WireGuard – Installationsanleitung

macOS · Apple Silicon (arm64) für den Systemdienst


Einleitung

WireGuard ist eine moderne VPN-Lösung, mit der Sie eine sichere Verbindung zu Ihrem Unternehmensnetzwerk oder Ihrer Kanzlei herstellen können.

Diese Anleitung beschreibt die Installation und Einrichtung von WireGuard für macOS.

Hinweis: Für die Einrichtung benötigen Sie eine WireGuard-Konfigurationsdatei (.conf) oder einen QR-Code, den Sie von Ihrem Administrator erhalten.

Installation unter macOS

Schritt 1 – WireGuard installieren

  1. Öffnen Sie den App Store.
  2. Suchen Sie nach WireGuard.
  3. Installieren Sie die Anwendung.

Schritt 2 – WireGuard starten

Starten Sie die WireGuard-App.


Schritt 3 – Konfiguration importieren

  1. Klicken Sie auf Import Tunnel(s) from File.
  2. Wählen Sie Ihre Konfigurationsdatei aus.

Alternativ kann die Konfigurationsdatei per Drag & Drop in das WireGuard-Fenster gezogen werden.


Schritt 4 – VPN aktivieren

  1. Wählen Sie den Tunnel aus.
  2. Klicken Sie auf Activate.

Beim ersten Verbindungsaufbau fordert macOS zur Genehmigung der VPN-Konfiguration auf. Bestätigen Sie diese mit Ihrem Kennwort oder Touch ID.


On-Demand aktivieren (für den App-Betrieb empfohlen)

Warum sollte On-Demand aktiviert werden?

Ist On-Demand aktiviert, stellt WireGuard die VPN-Verbindung nach einem Neustart oder nach einer Unterbrechung der Netzwerkverbindung automatisch wieder her.

Einrichtung

  1. Öffnen Sie WireGuard.
  2. Wählen Sie den gewünschten Tunnel aus.
  3. Klicken Sie auf Edit.
  4. Aktivieren Sie die Option On-Demand.
  5. Speichern Sie die Änderung.

Funktion prüfen

  1. Aktivieren Sie den Tunnel.
  2. Starten Sie den Mac neu.
  3. Nach der Anmeldung sollte sich der Tunnel automatisch wieder verbinden.

Empfehlung: Für die Nutzung über die WireGuard-App ist On-Demand die einfachste automatische Verbindungsart. Wenn derselbe Tunnel als Systemdienst eingerichtet wird, darf er nicht zusätzlich per App oder On-Demand aktiviert werden.

Tunnel als macOS-Systemdienst installieren

Ziel

Ein WireGuard-Tunnel soll auf einem Mac systemweit laufen, damit mehrere gleichzeitig angemeldete macOS-Benutzer denselben VPN-Tunnel verwenden können.

Die normale WireGuard-App wird dabei nicht für den dauerhaften Betrieb verwendet. Stattdessen läuft WireGuard über wg-quick als LaunchDaemon.

1. Architektur des Macs prüfen

Im Terminal:

uname -m

Bei Apple Silicon:

arm64

Bei Intel:

x86_64

Diese Anleitung geht von Apple Silicon / arm64 aus.

2. Homebrew installieren

Prüfen:

brew --version

Falls command not found:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Danach die von Homebrew angezeigten Next steps ausführen.

Bei Apple Silicon sind das typischerweise:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile

eval "$(/opt/homebrew/bin/brew shellenv)"

Prüfen:

brew --version

3. WireGuard-Tools installieren

brew install wireguard-tools

Prüfen:

wg --version

4. Vorhandenen WireGuard-Tunnel exportieren

In der normalen WireGuard-App den funktionierenden Tunnel exportieren.

Beispiel:

RA002.conf

Wichtig: Die .conf enthält den PrivateKey und sollte nicht öffentlich weitergegeben werden.

5. Konfiguration systemweit ablegen

Verzeichnis erstellen:

sudo mkdir -p /opt/homebrew/etc/wireguard

Konfiguration kopieren:

sudo cp ~/Desktop/RA002.conf /opt/homebrew/etc/wireguard/RA002.conf

Dateirechte setzen:

sudo chmod 600 /opt/homebrew/etc/wireguard/RA002.conf

Prüfen:

ls -l /opt/homebrew/etc/wireguard/RA002.conf

Es sollte ungefähr so aussehen:

-rw------- 1 root ...

6. Tunnel zunächst manuell testen

Die normale WireGuard-App vorher deaktivieren.

Dann:

sudo wg-quick up /opt/homebrew/etc/wireguard/RA002.conf

Status:

sudo wg show

Danach prüfen, ob das Zielnetz erreichbar ist.

Beispiel:

Domainname.es.ra-micro.de

7. Zweiten macOS-Benutzer testen

Wichtig:

• Benutzer A angemeldet lassen

• Tunnel läuft weiterhin

• zu Benutzer B wechseln

• WireGuard-App bei Benutzer B nicht starten

Jetzt prüfen, ob Benutzer B ebenfalls das VPN-Ziel erreicht.

Wenn das funktioniert, ist bestätigt:

Mac

└── systemweiter WireGuard-Tunnel

  ├── Benutzer A

  └── Benutzer B

8. WireGuard-App deaktivieren

In der normalen WireGuard-App:

• Tunnel deaktivieren

• On-Demand deaktivieren

• keinen automatischen Start über die App verwenden

Die App darf installiert bleiben.

9. LaunchDaemon erstellen

Datei:

/Library/LaunchDaemons/com.wireguard.ra002.plist

Erstellen:

cat <<'EOF' | sudo tee /Library/LaunchDaemons/com.wireguard.ra002.plist >/dev/null

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

  <key>Label</key>

  <string>com.wireguard.ra002</string>

  <key>ProgramArguments</key>

  <array>

      <string>/opt/homebrew/bin/wg-quick</string>

      <string>up</string>

      <string>/opt/homebrew/etc/wireguard/RA002.conf</string>

  </array>

  <key>RunAtLoad</key>

  <true/>

  <key>OnDemand</key>

  <false/>

  <key>TimeOut</key>

  <integer>90</integer>

  <key>EnvironmentVariables</key>

  <dict>

      <key>PATH</key>

      <string>/opt/homebrew/sbin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>

  </dict>

</dict>

</plist>

EOF

Syntax prüfen:

plutil -lint /Library/LaunchDaemons/com.wireguard.ra002.plist

Erwartet:

/Library/LaunchDaemons/com.wireguard.ra002.plist: OK

10. Rechte des LaunchDaemons setzen

sudo chown root:wheel /Library/LaunchDaemons/com.wireguard.ra002.plist

sudo chmod 644 /Library/LaunchDaemons/com.wireguard.ra002.plist

Prüfen:

ls -l /Library/LaunchDaemons/com.wireguard.ra002.plist

Erwartet ungefähr:

-rw-r--r-- 1 root wheel ...

11. Manuell gestarteten Tunnel beenden

sudo wg-quick down /opt/homebrew/etc/wireguard/RA002.conf

Prüfen:

sudo wg show

Jetzt sollte keine Ausgabe mehr erscheinen.

12. Systemdienst starten

sudo launchctl bootstrap system /Library/LaunchDaemons/com.wireguard.ra002.plist

Bei Erfolg erscheint meist keine Ausgabe.

Dann:

sudo wg show

Jetzt sollte wieder ein Interface erscheinen.

Beispielsweise:

interface: utun10

peer: ...

latest handshake: ...

transfer: ...

13. Funktion testen

Jetzt wieder:

• interne Webseite

• RDP

• Server

• Anwendung

testen.

Wenn das funktioniert, läuft der VPN-Tunnel bereits über den LaunchDaemon.

14. Neustart testen

Mac neu starten.

Danach nicht die WireGuard-App öffnen.

Im Terminal:

sudo wg show

Wenn wieder ein Tunnel angezeigt wird, startet WireGuard korrekt beim Systemstart.

Danach erneut das VPN-Ziel testen.

Wichtige Befehle für später

WireGuard-Status

sudo wg show

Dienststatus

sudo launchctl print system/com.wireguard.ra002

Dienst stoppen

sudo launchctl bootout system /Library/LaunchDaemons/com.wireguard.ra002.plist

Dienst wieder starten

sudo launchctl bootstrap system /Library/LaunchDaemons/com.wireguard.ra002.plist

Tunnel manuell starten

sudo wg-quick up /opt/homebrew/etc/wireguard/RA002.conf

Tunnel manuell beenden

sudo wg-quick down /opt/homebrew/etc/wireguard/RA002.conf

Für einen anderen Tunnel anpassen

Wenn der Tunnel z. B. statt

RA002

so heißt:

FirmaVPN

dann einfach überall ersetzen:

RA002.conf

durch:

FirmaVPN.conf

und:

com.wireguard.ra002

durch z. B.:

com.wireguard.firmavpn

Ergebnis

Am Ende sieht die Struktur so aus:

macOS

│

├── LaunchDaemon

│   └── wg-quick

│       └── FirmaVPN.conf

│

├── Benutzer A

│   └── nutzt VPN

│

└── Benutzer B

  └── nutzt VPN

Der Tunnel gehört damit nicht mehr einem bestimmten macOS-Benutzer, sondern dem gesamten Mac. Das ist für den Fall mit mehreren gleichzeitig angemeldeten Benutzern die passende Variante.

Verbindung trennen

So trennen Sie die VPN-Verbindung:

  • macOS: Im App-Betrieb „Deactivate“; bei einem Systemdienst die nachfolgenden launchd-Befehle verwenden.

Häufige Probleme

Keine Verbindung möglich

  • Prüfen Sie, ob eine Internetverbindung besteht.
  • Kontrollieren Sie Datum und Uhrzeit des Geräts.
  • Stellen Sie sicher, dass die richtige Konfigurationsdatei verwendet wird.
  • Prüfen Sie, ob der Tunnel aktiviert wurde.

Verbindung hergestellt, aber kein Zugriff auf interne Dienste

Mögliche Ursachen:

  • Der Zielserver ist nicht erreichbar.
  • Eine Firewall blockiert den Datenverkehr.
  • Die VPN-Konfiguration ist veraltet oder fehlerhaft.

Wenden Sie sich in diesem Fall an Ihren Administrator.


Sicherheitshinweise

  • Geben Sie Ihre WireGuard-Konfiguration niemals an Dritte weiter.
  • Bewahren Sie Konfigurationsdateien sicher auf.
  • Löschen Sie nicht mehr benötigte VPN-Konfigurationen.
  • Installieren Sie die WireGuard-App nur aus dem Apple App Store und die WireGuard-Tools wie beschrieben über Homebrew.
  • Bei Verlust eines Geräts informieren Sie umgehend Ihren Administrator, damit die betreffende VPN-Konfiguration gesperrt werden kann.