Wireguard Easy : Simplifiez la gestion de Wireguard

Sommaire
Comme vu dans cet article, Wireguard est un VPN très performant et facile à mettre en place, mais son administration via des fichiers de configuration peut paraître assez compliquée. C’est là qu’intervient Wiregard Easy.
Wireguard Easy est une interface graphique légère et open source conçue pour simplifier la gestion de WireGuard. Elle permet de gérer facilement les pairs (clients), de visualiser l’état des connexions, ainsi que la volumétrie de données transitant en temps réel. Il est également possible d’exporter facilement la configuration en cas de réinstallation ultérieure.
Installation
Comme d’habitude, on commence par un fichier docker-compose.yml
:
services:
wireguard:
image: ghcr.io/wg-easy/wg-easy
container_name: wireguard
hostname: wireguard
env_file: wireguard.env
networks:
- nginx_proxy
volumes:
- /opt/wireguard:/etc/wireguard
ports:
- 51820:51820/udp
cap_add:
- NET_ADMIN
- SYS_MODULE
- NET_RAW
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
restart: always
networks:
nginx_proxy:
external: true
Le paramètre
NET-RAW
dans la partiecap_add
n’est a utiliser que si vous utilisez Podman à la place de Docker.
Le fichier wireguard.env
associé :
LANG=fr
WG_HOST=vpn.domaine.fr
WG_DEFAULT_DNS=1.1.1.2,1.0.0.2
UI_TRAFFIC_STATS=true
D’autres options de paramétrage sont disponibles. Vous pouvez vous rendre sur cette page pour les consulter.
A noter que les DNS que j’utilise sont ceux de Cloudflare, ceux bloquant les malwares.
IMPORTANT : L’accès à l’application n’est pas protégé par mot de passe dans cette configuration. Je vous propose de vous référer à la mise en place d’un serveur d’authentification Authelia
Reverse proxy
Les fichiers de configuration ci-dessus sont prévus pour être utilisés avec un reverse proxy.
Pour rappel, un article dédié est disponible ici.
L’image Docker de Linuxserver.io ne propose pas de fichier sample de configuration pour WG-Easy. Vous devez donc créer un fichier nommé /opt/nginx/nginx/proxy-confs/wgeasy.subdomain.conf
, et y coller le contenu suivant :
## Version 2024/07/16
# make sure that your wireguard container is named wireguard
# make sure that your dns has a cname set for wireguard
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name vpn.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
# enable for ldap auth (requires ldap-location.conf in the location block)
#include /config/nginx/ldap-server.conf;
# enable for Authelia (requires authelia-location.conf in the location block)
#include /config/nginx/authelia-server.conf;
# enable for Authentik (requires authentik-location.conf in the location block)
#include /config/nginx/authentik-server.conf;
location / {
# enable the next two lines for http auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
# enable for ldap auth (requires ldap-server.conf in the server block)
#include /config/nginx/ldap-location.conf;
# enable for Authelia (requires authelia-server.conf in the server block)
#include /config/nginx/authelia-location.conf;
# enable for Authentik (requires authentik-server.conf in the server block)
#include /config/nginx/authentik-location.conf;
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_app wireguard;
set $upstream_port 51821;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
Et enfin, un petit redémarrage pour la prise en compte du nouveau fichier :
sudo docker restart nginx
Utilisation
Une fois votre service accessible, il est très simple d’ajouter des clients. Cliquez sur Nouveau
, spécifiez un nom, et la configuration sera terminée… Vous pouvez télécharger la configuration générée pour l’ajouter à votre client. Et si c’est un mobile, il vous suffit d’afficher le QR Code afin de le faire scanner par l’application Wireguard de votre mobile.

Conclusion
Wireguard Easy est l’outil parfait pour administrer WireGuard. Avec son interface web conviviale et ses fonctionnalités bien pensées, il vous facilitera la gestion de vos clients VPN. Si vous avez besoin de davantage de modifications, je vous renvoie sur la page du projet.