14

Monter/démonter un tunnel VPN wireguard

C'est désormais très facile de "changer d'IP" via un VPN configuré sur un serveur OpenBSD (voir là : https://ybad.name/ah/fr/08-vpn/wg.html). C'est même tout à fait possible de monter un tunnel automatiquement au démarrage d'une machine.

Toutefois, ce n'est pas toujours pertinent sur un ordinateur portable par exemple : on voyage ci et là, entre le boulot, le réseau public du café du coin et la maison, parfois monter le VPN au démarrage ne fonctionne pas : il faut d'abord avoir configuré l'accès au réseau public.

Voici donc deux scripts qui permettent de monter le tunnel à la demande.

Tout d'abord, on crée un fichier .vpn qui contient la configuration du tunnel (ip du serveur, clé publique du serveur...):

server="46.23.93.100"
port="443"
gateway="192.168.1.1"
servervpnip="10.0.0.1"
ip="10.0.0.3/24"
wgkey="fmOKz0nSscjxVEe+c1wl9iyVgAjJ631iWoixKqJkOuk"
wgpeer="Iw8pVI0zKjmVP1EPzhnSJlD0gVQdbOofsHEaQ4K98mw="

Enuite, on crée le script vpnup pour monter le tunnel:

#!/bin/sh -e
. ${HOME}/.vpn

doas ifconfig wg0 create wgkey ${wgkey}
doas ifconfig wg0 wgpeer ${wgpeer} \
wgendpoint ${server} ${port} wgaip 0.0.0.0/0
doas ifconfig wg0 ${ip} up
doas route add -priority 2 ${server} ${gateway}
doas route add -priority 7 default ${servervpnip}

Si on veut démonter le tunnel, on appelle vpndown:

#!/bin/sh -e
. ${HOME}/.vpn

doas ifconfig wg0 down
doas ifconfig wg0 destroy
doas route del ${server} ${gateway}

Concrètement, ça donne ça :

ps : whatsmyip est un alias pour la commande :

ftp -M -V -o- https://ipecho.net/plain; echo""

04/08/2020 15:12


Un truc à dire?