Tutoriels

WG-Easy : un VPN Wireguard avec une interface web sur Docker

Publié le 23 avril 2023 Temps de lecture : 4 min.

Je vous propose aujourd’hui un tutoriel rapide pour déployer un container pour créer un VPN avec Wireguard en moins de 5 minutes. Vous pourrez le déployer dans le pays de votre choix à moindre frais par rapport à tous les services en ligne.

Pour commencer, vous allez avoir besoin d’un serveur/machine avec Docker installé pour créer votre VPN. Si vous n’en possédez pas, je vous invite à lire mon article pour créer un VPS gratuit sur Oracle, cela sera une bonne idée pour tester le produit.

Docker compose WG-Easy

Voici le fichier pour créer votre stack, il vous suffit de la copier/coller sur Portainer par exemple.

version: "3.8"
services:
  wg-easy:
    image: ghcr.io/wg-easy/wg-easy:latest
    container_name: wg-easy
    environment:
      - WG_HOST= #Adresse IP à spécifier
      - PASSWORD= #Mot de passe pour l'interface
      - WG_PORT=51820
      - WG_DEFAULT_DNS=8.8.8.8
      - WG_POST_UP=iptables -t nat -I POSTROUTING 1 -s 172.22.0.2 -o eth0 -j MASQUERADE ; iptables -I INPUT 1 -i wg0 -j ACCEPT ; iptables -I FORWARD 1 -i eth0 -o wg0 -j ACCEPT ; iptables -I FORWARD 1 -i wg0 -o eth0 -j ACCEPT ; iptables -I INPUT 1 -i eth0 -p udp --dport 51820 -j ACCEPT ;
      - WG_POST_DOWN=iptables -t nat -D POSTROUTING -s 172.22.0.2 -o eth0 -j MASQUERADE ; iptables -D INPUT -i wg0 -j ACCEPT ; iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT ; iptables -D FORWARD -i wg0 -o eth0 -j ACCEPT ; iptables -D INPUT -i eth0 -p udp --dport 51820 -j ACCEPT ;
    volumes:
      - wireguard:/etc/wireguard
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
      - 51821:51821/tcp
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
volumes:
  wireguard:

Point important avec le WG_POST_UP et le WG_POST_DOWN, il n’est peut-être pas nécéssaire selon votre configuration. J’ai de mon côté un peu galéré pour trouver le réglage qui allait bien pour le mettre en place chez Oracle.

Ouverture des ports

Afin que WG-Easy puisse fonctionner correctement, nous allons devoir ouvrir deux ports. Plusieurs écoles là dessus, soit vous ouvrez tous avec une règle générique, mais je vous conseille plutôt d’y aller au cas par cas.

Voici la configuration chez Oracle pour le 51820 en UDP (pour le VPN) et le 51821 en TCP (pour l’interface).

Libre à vous de changer les ports si nécéssaire, vous pouvez le faire via le docker compose ci-dessus.

Accès à l’interface WG-Easy

Vous pouvez vous connecter à l’interface en renseignant l’adresse : http://XXX.XXX.XXX.XXX:51821

On arrive sur une interface ultra simple où l’on peut gérer ses clients et télécharger le fichier de configuration en un clic. Vous avez également une petite visualisation en direct du traffic sur vos clients.

J’espère que ce tutoriel vous sera utile, si vous avez des questions/remarques, n’hésitez pas dans les commentaires.

avatar-ag

Article rédigé par Antoine Guilbert

Blogueur passionné par les nouvelles technologies et la domotique.
J'adore tester des produits, voyager à travers le monde et faire des photos.

En savoir plus