Zum Inhalt springen

Erste Schritte

Ein WireGuard-Gateway mit claimward-vpn-server aufsetzen, einen Anmelde-Client registrieren und ein erstes Gerät mit der macOS-, Linux- oder Windows-App verbinden.

Diese Anleitung führt durch das Aufsetzen eines Gateways und das Verbinden eines ersten Geräts. Das Gateway ist ein Linux-Host; auf dem Gerät läuft eine der drei Desktop-Apps.

1. Das WireGuard-Gateway vorbereiten (Linux)

Legen Sie die Schnittstelle wg0 mit einem Serverschlüssel und einem Listen-Port an. Claimward verwaltet die Peers dieser Schnittstelle; die Schnittstelle selbst legt es nicht an.

# /etc/wireguard/wg0.conf
[Interface]
Address = 10.80.0.1/24
ListenPort = 51820
PrivateKey = <server-private-key>
wg genkey | tee server.key | wg pubkey > server.pub
sudo wg-quick up wg0
sudo sysctl -w net.ipv4.ip_forward=1   # if you route beyond the VPN subnet

2. Die Steuerungsebene starten

go install github.com/claimward/claimward-vpn-server/cmd/claimward-server@v0.2.0

export AUTH_PROVIDER=github                     # the default
export GITHUB_ALLOWED_ORGS=claimward            # optional authorization (recommended)
export WG_ENDPOINT=vpn.example.com:51820
export WG_PRIVATE_KEY_FILE=/etc/wireguard/server.key
export VPN_CIDR=10.80.0.0/24
export TLS_CERT=/etc/claimward/fullchain.pem    # HTTPS, and TLS on the gRPC RouteService
export TLS_KEY=/etc/claimward/privkey.pem
export GRPC_ENDPOINT=vpn.example.com:8444       # where clients watch for route updates

sudo -E "$(go env GOPATH)/bin/claimward-server"

Der Server benötigt die Rechte, wg0 zu konfigurieren (root oder CAP_NET_ADMIN). Er lauscht auf :8443 (LISTEN_ADDR) für die Registrierungs-API und auf :8444 (GRPC_ADDR) für den RouteService. Alle Variablen finden Sie in der Server-Referenz; für Experimente ohne echte Schnittstelle setzen Sie WG_DRYRUN=true.

3. Den Anmelde-Client registrieren

Legen Sie eine GitHub-OAuth App an (für eine Organisation oder persönlich) und aktivieren Sie den Device Flow in ihren Einstellungen. Die Apps benötigen nur ihre Client-ID, kein Secret. Sie fordern die Scopes read:user, user:email und read:org an.

4. Ein Gerät verbinden

Jede App hat einen privilegierten Helper, der sich beim Server registriert und den Tunnel besitzt; er wird einmalig als Administrator installiert, zusammen mit den Servern, mit denen er sich verbinden darf. Die App selbst läuft unter Ihrem Benutzer.

Aus einem Checkout von claimward-vpn-app-osx:

sudo ./scripts/install-helper.sh https://vpn.example.com   # the root LaunchDaemon
task start:bundle                                          # build Claimward.app and open it

Tragen Sie dann die Server-URL, den Anbieter und seine Client-ID unter Configuration… ein (oder in ~/Library/Application Support/Claimward/config.json), und klicken Sie auf Connect. Siehe die macOS-App.

Eine Person, die mehreren Mandanten angehört, wird gebeten, einen davon zu wählen, bevor die Verbindung hergestellt wird; siehe Mandanten.

Das Gerät hat nun eine Tunnelschnittstelle (utunN unter macOS, utun unter Linux, den Wintun-Adapter Claimward unter Windows) mit seiner Adresse 10.80.0.x/32 und leitet die Netze des Mandanten darüber.

Die Erneuerung der Lease kommt mit claimward-vpn-client v0.3.1, in den Apps ab v0.2.0: Von da an erneuert der Helper die Lease, solange der Tunnel steht, und meldet sich bei Disconnect ab. Die Apps in v0.1.0 tun das nicht: Eine Verbindung, die länger als LEASE_TTL (standardmäßig 24 Stunden) besteht, wird vom Gateway entfernt, und ein erneutes Verbinden beginnt eine neue Lease. Siehe Leases.

Erstellt am von tannevaled

Geändert am von tannevaled