Skip to main content

Mise en place de Wireguard Client

Le mode client

Pour utiliser Wireguard en mode client, deux choix s'offre à vous :
1- Le premier, vous créez un conteneur Docker en mode client
2- Le deuxième vous installer le package et vous configurer Wireguard client directement sur votre machine.


Via l'utilisation de l'image docker

Ne définissez pas la variable d'environnement PEERS. Déposez votre conf client dans le dossier config en tant que /config/wg0.conf et démarrez le conteneur.

Si vous obtenez des erreurs liées à IPv6 dans le journal et que la connexion ne peut pas être établie, modifiez la ligne AllowedIPs dans votre pair/client wg0.conf pour inclure uniquement 0.0.0.0/0 et non ::/0; et redémarrez le conteneur.

docker-compose : 

version: "2.1"

services:

  wireguard:
    image: lscr.io/linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      # - SYS_MODULE  # optional already active 
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - LOG_CONFS=true
    volumes:
      - /etc/container-conf/wireguard/appdata/config:/config
      - /etc/container-conf/wireguard/lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    restart: unless-stopped
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=

volumes:
 wireguard:


Via l'utilisation du package Wireguard

Linux

1/ Tout d'abord vous devez installer wireguard sur la machine :

sudo apt-get install wireguard

Puis se déplacer dans le répertoire de wireguard, par défaut le dossier est vide : 

root@linux: cd /etc/wireguard/
root@linux: ls -al
total 28
drwx------   2 root root  4096 juin  13 12:03 ./
drwxr-xr-x 166 root root 12288 juin  13 11:24 ../

2/ Maintenant nous allons générer la clé privé et la clé publique :

wg genkey | tee privatekey | wg pubkey | tee publickey

Nous avons maintenant 2 fichiers dans le dossier wireguard : 

root@linux: wg genkey | tee privatekey | wg pubkey | tee publickey
WKtF71pM6wObswaXkbxJgwPhk8a6lqrPb9oKFjaGOmM=
root@linux: ls -al
total 28
drwx------   2 root root  4096 juin  14 15:55 .
drwxr-xr-x 166 root root 12288 juin  13 11:24 ..
-rw-r--r--   1 root root    45 juin  14 15:55 privatekey
-rw-r--r--   1 root root    45 juin  14 15:55 publickey

3/ Pour continuer la configuration il faut noter le contenu des 2 clés générés : 

root@linux: cat privatekey 
iApdu05JqNGSp/r7PSpJ5Zqxs4kWSR6qYv9onitvsmo=

root@linux: cat publickey 
WKtF71pM6wObswaXkbxJgwPhk8a6lqrPb9oKFjaGOmM=

Attention ne partagez jamais votre clé privé !!

Clé privé : iApdu05JqNGSp/r7PSpJ5Zqxs4kWSR6qYv9onitvsmo=
Clé publique : WKtF71pM6wObswaXkbxJgwPhk8a6lqrPb9oKFjaGOmM=

4/a) Création du fichier de configuration Wireguard client :

touch wg0.conf

4/b)  Préparer dans un bloc note la configuration suivante :

Il faut bien veiller à remplacer les variables :

  • <private_key_client> -> Clé privé généré précédemment 
  • <range_ip_vpn>              -> Adresse IP VPN du client
  • <public_key_server>   -> Clé publique du serveur à récupérer sur le serveur
  • <ip_server>                     -> Adresse IP du serveur
  • <port_server>                -> Port écoutant sur le serveur
[Interface]
PrivateKey = <private_key_client>
Address = <range_ip_vpn>

[Peer]
###Public of the WireGuard VPN Server
PublicKey = <public_key_server>

### IP and Port of the WireGuard VPN Server
Endpoint = <ip_server>:<port_server>

### Allow all traffic
AllowedIPs = 0.0.0.0/0

4/c) Editer le fichier de configuration en collant la configuration complété :

nano wg0.conf
# ou
vim wg0.conf