Déployer un serveur WireGuard dans Performance Cloud VMware (NSX-T)



TABLE DES MATIÈRES

Description

Un serveur WireGuard peut être déployé dans votre centre de données virtuel pour permettre aux clients distants, y compris les appareils mobiles, de se connecter à votre environnement Performance Cloud VMware (NSX-T) à l'aide d'un réseau privé virtuel (RPV) ou « VPN ».

Dans cet article, nous allons déployer WireGuard dans une machine virtuelle exécutant Ubuntu et WG Easy dans un conteneur Docker.

A diagram of a computer network

Description automatically generated

Notes Importantes

- Certaines étapes supposent que vous avez des bases sur Linux et sur la création de machines virtuelles, de réseaux virtuels et de règles réseau. Certaines étapes supposent aussi le déploiement d’une machine virtuelle additionnelle dédiée dans un environnement fonctionnel. Veuillez vous reporter aux articles principaux du Guide de démarrage si nécessaire.

- Veuillez noter que le support de Sherweb pour les logiciels tiers, comme WireGuard, est très limité.

- Cette configuration peut ne pas fonctionner correctement avec plus de deux cent cinquante trois (253) clients VPN.


- Il n'y a pas d'authentification « utilisateur » dans WireGuard. Il n'y a pas de notion d'« utilisateurs » mais des clients et un serveur avec des clés secrètes et publiques.


- Veuillez vous assurer de stocker, envoyer, déployer et utiliser les fichiers de configuration WireGuard en utilisant une méthode sécurisée.

Prérequis

- Avoir une machine virtuelle exécutant Linux dans votre centre de données virtuel pour héberger le serveur WireGuard.

Au besoin, consultez cet article pour obtenir de l’aide avec la création de machines virtuelles avec Performance Cloud VMware (NSX-T).

Pour faciliter le travail, nous vous recommandons fortement de vous connecter à la machine virtuelle Linux en utilisant le protocole SSH.

Au besoin, consultez cet article pour obtenir de l’aide avec la configuration des règles réseau de la passerelle Edge.

Procédures
  

Configuration du serveur WireGuard
  

  1. Connectez-vous à votre machine virtuelle en utilisant un compte avec privilèges « root »

     
  2. Téléchargez et installez Docker.

    Exécutez les lignes de commande suivantes:

    curl -sSL https://get.docker.com | sh
     sudo usermod -aG docker $(whoami)


     
  3. Déployer l'image Docker WG-Easy

    Exécutez les lignes de commande ci-bas.

    Modifiez le modèle ci-dessous pour qu'il corresponde à votre configuration (adresse IP publique de la passerelle Edge ou le nom de domaine pleinement qualifié (« FQDN »), le mot de passe souhaité pour l’accès à la console, le réseau à utiliser pour les clients VPN, les ports à utiliser, les réseau(x) à autoriser, le serveur DNS à utiliser, etc.)

    Notes:
    - WG_ALLOWED_IPS=0.0.0.0/0 autoriserait et acheminerait tout le trafic sur le client via le tunnel.
    - Pour autoriser plusieurs réseaux aux clients VPN, spécifiez toutes les plages de réseau séparées par une virgule. Exemple : WG_ALLOWED_IPS=192.168.50.0/24,192.168.51.0/24,192.168.52.0/24,192.168.53.0/24
    - Veuillez éviter les caractères suivants pour le mot de passe de la console: !($\&")


    docker run -d \--name=wg-easy \
    -e WG_HOST=ADRESSE_IP_PUBLIQUE_OU_FQDN \
    -e PASSWORD=MOT_DE_PASSE_DE_LA_CONSOLE \
    -e WG_PERSISTENT_KEEPALIVE=30 \
    -e WG_DEFAULT_ADDRESS=10.7.0.x \
    -e WG_DEFAULT_DNS=1.1.1.1 \
    -e WG_ALLOWED_IPS=10.0.0.0/8 \
    -v ~/.wg-easy:/etc/wireguard \
    -p 51820:51820/udp \
    -p 51821:51821/tcp \
    --cap-add=NET_ADMIN \
    --cap-add=SYS_MODULE \
    --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
    --sysctl="net.ipv4.ip_forward=1" \
    --restart unless-stopped \
     weejewel/wg-easy


Ensuite, vos fichiers de configuration du serveur WireGuard seront enregistrés dans le dossier ~/.wg-easy


  

Configurer la passerelle Edge pour WireGuard
 

Au besoin, consultez cet article pour obtenir de l’aide pour la configuration des règles de pare-feu et « DNAT » afin d’ouvrir les ports pour WireGuard.

Dans cet exemple, les ports par défaut (51820/UDP, 51821/TCP) ont été conservés et les étapes suivantes ont été effectuées (des ensembles d'adresses IP pour la machine virtuelle et une adresse IP externe ont été précédemment créés pour créer des règles pour l’accès via le protocole SSH) :
  

  • Création d'applications personnalisées

    A white background with black text

Description automatically generated


  • Création de règles NAT de destination ou « DNAT »

    A screenshot of a computer

Description automatically generated


  • Création de règles de pare-feu




    Vous devriez maintenant pouvoir accéder à l'interface Web.

    A screenshot of a computer

Description automatically generated


    Notes : 

    Dans un environnement de production, nous déconseillons de configurer « Tous » ou « Any » comme Source pour l'accès à la console à partir de l'adresse IP publique pour des raisons de sécurité.

    Cette règle permettant l'accès à la console depuis l'adresse IP publique peut être activée à la demande ou complètement désactivée dans la section des règles de pare-feu.

    Si l'accès à la console à partir de l'adresse IP publique est bloqué, vous devrez accéder à l'interface utilisateur à l'aide de l'adresse IP interne (« LAN »). Dans cet exemple, en accédant à http://10.0.0.100:51821

     

 

Configuration du serveur WireGuard
 

  1. Entrez dans l'interface utilisateur de WireGuard avec votre mot de passe
      
  1. Ajouter un nouveau client

    A screenshot of a computer

Description automatically generated


  2. Nommez le client et cliquez sur « Create »

    A screenshot of a computer

Description automatically generated


  3. Une fois le nouveau client créé, le fichier de configuration du client peut être téléchargé ou un code QR peut être affiché pour les appareils mobiles.

    A white rectangular object with a white background

Description automatically generated


Répétez les étapes pour créer des clients supplémentaires.
  

 
 

Configuration client (Windows)
 

  1. Sur un poste de travail client, installez le logiciel client WireGuard. Les fichiers d'installation peuvent être trouvés ici: https://www.wireguard.com/install/

     
  2. Téléchargez le fichier de configuration client sur le poste de travail.

      
  3. Importer le fichier de configuration client dans le logiciel WireGuard

    A screenshot of a computer

Description automatically generated

     
  4. Connectez le reseau virtuel privé

    A screenshot of a computer

Description automatically generated


    Le réseau virtuel privé est maintenant connecté.

    Avec le réseau virtuel privé connecté, testez l'accès au réseau pour vous assurer que la configuration fonctionne comme prévu.

    A screenshot of a computer

Description automatically generated

 

 

Gestion des clients
 

  1. Entrez dans l'interface utilisateur de WireGuard avec votre mot de passe

      
  2. Depuis la console, un accès client peut être désactivé ou supprimé si nécessaire.

    A screenshot of a computer

Description automatically generated

 


Maintenance

 

Pour mettre à jour l'image Docker WG Easy ou pour modifier les paramètres de déploiement, vous pouvez supprimer et déployer l'image Docker WG Easy à nouveau.

 Note : le redéploiement de l'image Docker WG Easy ne supprimera pas les clients.

 

  1. Pour arrêter toutes les images Docker sur le serveur, exécutez la ligne de commande suivante :

    docker stop $(docker ps -a -q)


  2. Pour supprimer toutes les images Docker sur le serveur, exécutez la ligne de commande suivante :

    docker rm $(docker ps -a -q)


  3. Pour obtenir la dernière image, exécutez la ligne de commande suivante:

    docker pull ghcr.io/wg-easy/wg-easy


  4. Déployez l'image Docker WG-Easy à nouveau en suivant les étapes ci-dessus.

Références

https://www.wireguard.com/

https://github.com/wg-easy/wg-easy