Skip to main content

1 - Via l'utilisation de l'image docker

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 (A 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

Ce qui donne : 

[Interface]
PrivateKey = iApdu05JqNGSp/r7PSpJ5Zqxs4kWSR6qYv9onitvsmo=
Address = 192.168.10.15/24

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

### IP and Port of the WireGuard VPN Server
Endpoint = vpn.domaine-name.com:51820

### Allow all traffic
AllowedIPs = 0.0.0.0/0


Le reste de la configuration continue sur la partie serveur

Sur le serveur Wireguard

Préparer la commande suivante :

wg set wg0 peer <public_key_client> allowed-ips <adress_ip_vpn_client>

Ce qui donne : 

wg set wg0 peer WKtF71pM6wObswaXkbxJgwPhk8a6lqrPb9oKFjaGOmM= allowed-ips 192.168.10.15

Puis exécuter la commande.

Pour être sur du bon fonctionnement de la commande précédente, nous pouvons lister les clients enregistré dans le fichier de conf du serveur : 

wg show wg0