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



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é.

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, mot de passe souhaité pour l’accès à la console, ports à utiliser, réseau(x) à autoriser, serveur DNS à utiliser, etc.)

    Remarque : WG_ALLOWED_IPS=0.0.0.0/0 autoriserait et acheminerait tout le trafic sur le client via le tunnel.

    docker run -d \--name=wg-easy \
    -e WG_HOST=WAN_SERVER_IP \
    -e PASSWORD=CONSOLE_PASSWORD \
    -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


    Remarque : Dans un environnement de production, nous déconseillons de configurer « Tous » ou « Any » comme Source pour l’accès à l'interface utilisateur de WireGuard pour des raisons de sécurité.

     

 

Configuration du serveur WireGuard
 

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

    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 utilisateurs 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 utilisateurs
 

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

      
  2. Depuis la console, un accès client (ou utilisateur) 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. 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