Aller au contenu

VPN Wireguard

“Automation-cli” peut se connecter à des serveurs situés derrière un VPN “Wireguard”. Pour éviter l’installation du “paquet” et tout le paramétrage “Wireguard” sur le nœud de contrôle, j’utilise un client “Wireguard” exécuté dans l’espace utilisateur.

ATTENTION : L’outil “onetun” ne fonctionne que pour des petites infrastructures (v.0.3.10), pour atteindre un réseau plus large, vous devrez :

  • Installer et paramétrer le client wireguard sur le nœud de contrôle.
  • Ajouter les routes nécessaires pour atteindre les hôtes cibles.

Configuration d’exécution

L’exécutable est disponible auprès du projet GitHub :

  • Téléchargez le binaire adapté à votre plateforme. ATTENTION : la version v0.3.7 ne fonctionne pas avec plusieurs hôtes, (problème reporté).

  • Créer le répertoire dans l’OPSDirectory : sudo mkdir -p $OPS/vpn/bin-wireguard/

  • Copiez le binaire téléchargé dans le répertoire “OPSDirectory” : sudo cp [binaire téléchargé] $OPS/vpn/bin-wireguard/onetun.

  • Rendre le fichier exécutable : sudo chmod +x $OPS/vpn/bin-wireguard/onetun

Avec les commutateurs de la commande “run”

Pour réaliser une opération sur des serveurs situés derrière un VPN Wireguard, vous devez fournir plusieurs paramètres :

Fenêtre de terminal
automation-cli run --help
[...]
-wgsa, --wireguard-server-address <string> Enter Wireguard server public IP address
-wgsp, --wireguard-server-port <number> Enter Wireguard server public port
-wgspk, --wireguard-server-public-key <string> Enter Wireguard server public key
-wgpk, --wireguard-your-private-key <string> Enter your Wireguard private key
-wgip, --wireguard-your-ip-address <string> Enter your Wireguard private ip address (given by Wireguard admin)
-wgma, --wireguard-match <string> Enter the regular expressions that determine which hosts must go through
wireguard (eg: ^172 all ip Address starting with 172)
[...]

La connexion VPN n’est démarrée que pour les hôtes qui correspondent à votre expression régulière.

Configuration de l’inventaire

Au lieu de passer les paramètres dans la ligne de commande, utilisez l’inventaire (préféré), les secrets ne seront ainsi pas exposés par la ligne de commande.

[...]
internalVpn:
wireguardServerAddress: [adresse IP du serveur qui fournit le service Wireguard]
wireguardServerPort: [Port du service wireguard]
wireguardServerPublicKey: [Clé publique du serveur wireguard]
wireguardYourPrivateKey: [Votre clé privée wireguard (voir wireguard pour les détails)]
wireguardYourIpAddress: [Votre adresse ip sur le réseau VPN (voir wireguard pour les détails)]
wireguardMatch: "^172"
[...]