Aller au contenu principal

WireGuard

leukOS embarque WireGuard dans ses images OS Buildroot et peut lever un tunnel VPN au boot via un script d'init.

Ce qui est configuré dans le projet

  • BR2_PACKAGE_WIREGUARD_TOOLS=y dans les defconfigs Buildroot.
  • BR2_PACKAGE_IPROUTE2=y et BR2_PACKAGE_BASH=y (requis pour wg-quick).
  • Script d'init SysV : S89wireguard.
  • Modèle de configuration : /etc/wireguard/wg0.conf.example.

Le script S89wireguard démarre le tunnel avant les services applicatifs (S90+) et :

  • ignore proprement si wg-quick n'est pas présent ;
  • ignore si /etc/wireguard/wg0.conf est absent ;
  • ignore si la conf contient encore CHANGE_ME ;
  • continue le boot même en cas d'échec du tunnel.

Fichiers ajoutés (overlay)

Pour chaque overlay Raspberry Pi (rpi, rpi3plus, rpi4, rpi5) :

  • etc/init.d/S89wireguard
  • etc/wireguard/wg0.conf.example

Activer WireGuard sur une cible

  1. Copier le modèle :
cp /etc/wireguard/wg0.conf.example /etc/wireguard/wg0.conf
  1. Remplacer toutes les valeurs CHANGE_ME dans wg0.conf.

  2. Protéger les permissions :

chmod 600 /etc/wireguard/wg0.conf
  1. Démarrer immédiatement sans reboot :
/etc/init.d/S89wireguard start
  1. Vérifier :
ip addr show wg0
wg show

Exemple minimal

[Interface]
Address = 10.66.0.2/24
PrivateKey = <node_private_key_base64>
ListenPort = 51820

[Peer]
PublicKey = <hub_public_key_base64>
PresharedKey = <preshared_key_base64>
AllowedIPs = 10.66.0.0/24
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25

Génération de clés

wg genkey | tee private.key | wg pubkey > public.key
wg genpsk > psk.key

Dépannage rapide

  • Interface absente : vérifier que wg0.conf existe et ne contient plus CHANGE_ME.
  • wg-quick: not found : reconstruire l'image avec une defconfig leukOS à jour.
  • Pas de handshake : vérifier Endpoint, ports, NAT/firewall et clés/public keys.