Aller au contenu

Prise en main

Mettre en place une passerelle WireGuard avec claimward-vpn-server, déclarer un client de connexion, et connecter un premier appareil avec l'application macOS, Linux ou Windows.

Ce guide décrit la mise en place d’une passerelle et la connexion d’un premier appareil. La passerelle est un hôte Linux ; l’appareil exécute l’une des trois applications de bureau.

1. Préparer la passerelle WireGuard (Linux)

Créez l’interface wg0 avec une clé de serveur et un port d’écoute. Claimward gère les pairs de cette interface ; il ne crée pas l’interface.

# /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. Lancer le plan de contrôle

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"

Le serveur a besoin des droits pour configurer wg0 (root, ou CAP_NET_ADMIN). Il écoute sur :8443 (LISTEN_ADDR) pour l’API d’enrôlement et sur :8444 (GRPC_ADDR) pour le RouteService. Voir la référence du serveur pour toutes les variables ; pour des essais sans véritable interface, définissez WG_DRYRUN=true.

3. Déclarer le client de connexion

Créez une OAuth App GitHub (d’organisation ou personnelle) et activez le Device Flow dans ses paramètres. Les applications n’ont besoin que de son client ID, sans secret. Elles demandent les scopes read:user, user:email et read:org.

4. Connecter un appareil

Chaque application dispose d’un helper privilégié qui s’enrôle auprès du serveur et possède le tunnel ; il est installé une seule fois, en tant qu’administrateur, avec les serveurs auxquels il peut se connecter. L’application elle-même s’exécute sous votre compte.

Depuis une copie de travail de 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

Renseignez ensuite l’URL du serveur, le fournisseur et son client ID dans Configuration… (ou dans ~/Library/Application Support/Claimward/config.json), puis cliquez sur Connect. Voir l’application macOS.

Une personne qui appartient à plusieurs locataires doit en choisir un avant que la connexion soit établie ; voir Locataires.

L’appareil dispose maintenant d’une interface de tunnel (utunN sur macOS, utun sur Linux, l’adaptateur Wintun Claimward sur Windows) avec son adresse 10.80.0.x/32, et de routes vers les réseaux du locataire passant par elle.

Le renouvellement des baux arrive avec claimward-vpn-client v0.3.1, dans les applications à partir de v0.2.0 : dès lors, le helper renouvelle le bail tant que le tunnel est actif et se désinscrit lors d’un Disconnect. Les applications v0.1.0 ne le font pas : une connexion qui reste active plus longtemps que LEASE_TTL (24 heures par défaut) est retirée de la passerelle, et une nouvelle connexion démarre un nouveau bail. Voir Baux.

Créée le par tannevaled

Modifiée le par tannevaled