CasaOS / ZimaOS [TUTO] Installer wg-easy

morgyann

Grand Maître Jedi
Membre Confirmé
2 Février 2023
2 792
662
188
.bzh
blognotes.fr
Pour faire suite au poste de @Machin-Truc https://www.forum-nas.fr/threads/wireguard-https-imposé-en-local.26471/
Je reporte ce tuto ici - (Copie d'une partie de l'intégral sur https://blognotes.fr/installer-wg-easy/)

Aussi, je rappele (comme @Ludo33 ) - que ZimaOS propose un client à distance - sans aucune configuration (ni NDD ni DDNS) - fonctionnant en mode "P2P" et qui vous donne accès à vos dossiers et apps + navigateur web - comme si vous étiez en local (https://blognotes.fr/se-connecter-a-distance/)

Cette conf en VPN peut être utile si vous souhaitez accéder à l'ensemble ou en partie des matériels connectés du domicile ou si vous avez installé CasaOS sur un OS.

Serveur VPN​

WG-easy est une solution open-source qui permet de déployer un serveur WireGuard avec une interface web intuitive, tout en utilisant Docker pour une installation simple et efficace.

WireGuard est un protocole de réseau privé virtuel (VPN) open source, léger et ultra-rapide, conçu pour offrir une sécurité moderne, une performance optimale et une simplicité d'utilisation.

1773150944656.png

Configuration Box/Routeur​

Ouvrez le panneau de configuration de votre Box/Routeur et sur l'onglet "redirection des ports ou NAT/PAT". Ajoutez en UDP le port 51820 pour votre serveur Casa/ZimaOS (sur l'illustration la machine démo est en 192.168.1.4).

installer wg easy configuration routeur udp en 51820

Proxy Inversé (optionnel)​

Vous pouvez au choix, soit déclarer un NDD, Widcard ou DDNS ou indiquer votre IP Publique lors de la configuration de la console Docker.

Le port local est déterminé à 51821 en http avec l'IP locale de la machine hôte et, validez le Websockets Support.

installer wg easy proxy inversé

Configuration Console​

L'App Store propose WG-easy v15 par BigBearCasaOS (pas encore testé).

Je vous propose cette configuration basée sur le compose YAML du GitHub.

Compose YAML (dernière version de WG-Easy)​

Copiez collez le code YAML ci-dessous pour une installation personnalisée en important le code

Code:
name: wg-easy
services:
  wg-easy:
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    cpu_shares:
    command: []
    container_name: wg-easy
    deploy:
      resources:
        limits:
          memory:
        reservations:
          devices: []
    environment:
      - INIT_ENABLED=true
      - INIT_HOST=
      - INIT_PASSWORD=
      - INIT_USERNAME=
    image: ghcr.io/wg-easy/wg-easy:15
    labels:
      icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/wireguard.png
    ports:
      - target: 51820
        published: "51820"
        protocol: udp
      - target: 51821
        published: "51821"
        protocol: tcp
    restart: unless-stopped
    sysctls:
      net.ipv4.conf.all.src_valid_mark: "1"
      net.ipv4.ip_forward: "1"
      net.ipv6.conf.all.disable_ipv6: "0"
      net.ipv6.conf.all.forwarding: "1"
      net.ipv6.conf.default.forwarding: "1"
    volumes:
      - type: bind
        source: /DATA/AppData/wg-easy/data
        target: /etc/wireguard
      - type: bind
        source: /lib/modules
        target: /lib/modules
    devices: []
    networks:
      - wg
    privileged: false
networks:
  wg:
    name: wg-easy_wg
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 10.42.42.0/24
        - subnet: fdcc:ad94:bacf:61a3::/64
    enable_ipv6: true
x-casaos:
  author: self
  category: self
  hostname:
  icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/wireguard.png
  index: /
  is_uncontrolled: true
  port_map: ""
  scheme: http
  store_app_id:
  title:
    custom: WG-VPN
    en_us: wg-easy

Paramètres​

Complétez les fenêtres :

Web UI

https = votre ndd dédié = 443
(port)

ou

http = IP locale = 51821 (port)

installer wg easy web ui

Variables d'environnement

INIT_HOST=votre ndd (sans https) ou votre IP Publique

INIT_PASSWORD=votre mot de passe de connexion (fort)

INIT_USERNAME=nom ou pseudo


installer wg easy environnement

Installer​

Cliquez sur Installer et patientez le temps de l’installation

Ouvrir WG-easy​

Puis, cliquez sur la nouvelle tuile créée pour ouvrir une nouvelle page web

Configuration WG-easy​

À l'ouverture de la nouvelle page web, une configuration assistée est proposée. Continuer

Créer un compte administrateur


Si c'est bien votre première et seule installation - sélectionnez NON
installer wg easy première instal

Cliquez sur Suggérer

installer wg easy suggérer

Sélectionnez votre IPv4 - Public

installer wg easy ipv4 public

Puis, Continuer
Se Connecter


Identifiez vous avec les ID du compte admin créé et Se Connecter

installer wg easy connexion admin

Sur l'interface (vide) - créez votre premier client.

installer wg easy nouveau client

Configuration client​

Télécharger et ou installez le logiciel client suivant votre distribution

1773151598870.png

Sur votre interface serveur WG-easy - téléchargez le fichier .conf (pour client PC) en cliquant sur l'icône. Transférez ce fichier sur le PC client.

installer wg easy fichier client

Sur votre PC importez le fichier .conf - bouton dans la fenêtre du logiciel client.

NB il vous faut configurer ce fichier client sur le serveur pour autoriser l'accès aux machines souhaitées

installer wg easy import du fichier conf

Cliquez sur le bouton Activer

Votre VPN est activé

installer wg easy vpn activé
 

Pièces jointes

  • 1773151325938.png
    1773151325938.png
    228.9 KB · Affichages: 0
Chapeau bas pour tout ce travail !

Bon j'ai pas trouver pour l'envoyer en MP alors je pose ça là en complément pour deux options qui pour ma part sont très utiles.

On peut éditer des options pour chaque tunnel créé afin de limiter les accès et ainsi augmenter le niveau de sécurité des tunnels.

Il suffit d'ouvrir chaque tunnel à sa création ou plus tard. On le fait depuis l'application (Client ou serveur).
Ensuite, il y a deux valeurs à éditer puis enregistrer les modifications.

L'option DNS :
  • Si l'on précise un DNS (Cloudflare par exemple sur 1.1.1.1) : TOUT le trafic internet passera par le serveur puis par la BOX. C'est un partage de connexion qui ne sert à rien.
    • Inconvénients ou avantage selon les besoins :
      • IP publique du serveur exposée avant de passer dans les tunnels en entrée de serveur.
      • Pas de cryptage de la navigation avant de passer dans les tunnels en entrée de serveur.
      • Baisse du débit sur le serveur et sur le réseau local qui doit rediriger le trafic internet au lieu de son simple accès.
      • Latence possiblement plus importante selon les performances des matériels du réseau local.
  • Si l'on laisse le champs DNS VIDE : Le tunnel VPN donne accès au serveur. Le trafic WEB du client reste indépendant. Il ne passe pas par le serveur ni par la BOX.
    • Avantages :
      • IP du client exposée comme habituellement.
      • Pas de perte de débit ni de latence sur le client ni sur le réseau local.
      • Accès au serveur plus fluide.
Champs "Adresses IPs autorisées" (Allowed IPs) :
  • 0.0.0.0/0 : Le tunnel donne accès au serveur, et potentiellement au reste du réseau local, routeur/box inclus (Selon réglages sur le réseau).
  • 192.168.1.ipserveur/32 : Le tunnel VPN ne permet d'accéder QUE au serveur et interdit la découverte du réseau local.
    • Si ce n'est pas nécessaire de pouvoir accéder au réseau LAN, il est préférable de limiter l'accès à l'IP du serveur.
 
  • J'aime
Réactions: morgyann