Installer un serveur Wireguard et Wireguard UI avec Docker Compose

Installer un serveur Wireguard et Wireguard UI avec Docker Compose
Photo by Kaffeebart / Unsplash

Installation

Il convient d’avoir Docker et Docker Compose d’installés sur la machine avant.

Ensuite, il faut créer des répertoires dans le répertoire home de l’utilisateur connecté.

Il faut donc saisir les commandes suivantes :

mkdir /home/user/wireguard-server/config/ /home/user//root/wireguard-server/db/

Il convient donc de créer le fichier docker-compose.yml qui va nous permettre de lancer la configuration complète :

version: "3"

services:
  wireguard:
    image: linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
    volumes:
      - ./config:/config
    ports:
      - "5000:5000"
      - "51820:51820/udp"

  wireguard-ui:
    image: ngoduykhanh/wireguard-ui:latest
    container_name: wireguard-ui
    depends_on:
      - wireguard
    cap_add:
      - NET_ADMIN
    network_mode: service:wireguard
    environment:
      - SENDGRID_API_KEY
      - EMAIL_FROM_ADDRESS
      - EMAIL_FROM_NAME
      - SESSION_SECRET
      - WGUI_USERNAME=admin
      - WGUI_PASSWORD=password
      - WG_CONF_TEMPLATE
      - WGUI_MANAGE_START=true
      - WGUI_MANAGE_RESTART=true
    logging:
      driver: json-file
      options:
        max-size: 50m
    volumes:
      - ./db:/app/db
      - ./config:/etc/wireguard

N'oubliez pas de modifier les valeurs des variables d'environnement "WGUI_USERNAME" et "WGUI_PASSWORD" dans le fichier ci-dessus par le nom d'utilisateur et le mot de passe que vous utiliserez pour accéder à l'interface de WireGuard.

Il faudra ensuite lancer la commande

docker-compose up -d

Et le tour est joué !

Il convient de vérifier les logs si besoin ou de modifier sa configuration selon les besoins.

Configuration

Vous pouvez maintenant ouvrir votre navigateur et accéder à "http://server-ip-address".

Le mieux étant de passer par une connexion sécurisée via https via un proxy inversé, Nginx ou autre.

Ensuite, la page de connexion de WireGuard vous accueillera.

Entrez le nom d'utilisateur et le mot de passe que vous avez définis dans le fichier "docker-compose.yaml" via les variables d'environnement "WGUI_USERNAME" et "WGUI_PASSWORD", puis cliquez sur le bouton "Connexion".

Ensuite, il convient de cliquer sur Wireguard Server afin de paramétrer les élément suivants :

  • Post Up Script avec la ligne

iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

  • Post Down Script avec la ligne

iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Cela permet aux paquets vers et depuis votre serveur WireGuard d'être acheminés à l'aide de la traduction d'adresses réseau (NAT) à l'intérieur du conteneur WireGuard de Docker.

Cliquez ensuite sur le bouton "Enregistrer" pour enregistrer vos modifications, et enfin, appuyez sur "Appliquer la configuration" pour les appliquer au serveur VPN WireGuard.

Vous pouvez maintenant configurer le(s) serveur(s) DNS de votre choix dans Global Settings :

J'ai renseigné les serveurs DNS de Cloudflare pour la rapidité de résolution, mais vous êtes libre à cette étape de choisir ceux que vous souhaitez.

Ensuite, vous pouvez commencer à créer des clients, le top c'est d'avoir un QR code pour l'application mobile.

Conclusion

Avec sa cryptographie moderne, sa simplicité et ses capacités hautes performances, WireGuard est rapidement devenu un choix populaire pour les solutions VPN.

Apprendre à configurer votre propre serveur VPN WireGuard et à le gérer facilement via l'interface utilisateur Web WireGuard à l'aide de Docker Compose peut profiter aux particuliers et aux entreprises.

Ensuite, cela peut améliorer votre sécurité et votre confidentialité en ligne en ajoutant une couche de protection supplémentaire lorsque vous naviguez sur Internet.

En plus de cela, de cette façon, vous pouvez également accéder à un contenu géographiquement restreint et protéger vos informations personnelles et confidentielles contre les pirates et les cybercriminels potentiels.