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.
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
- Connectez-vous à votre machine virtuelle en utilisant un compte avec privilèges « root »
- 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)
- 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
- Création de règles NAT de destination ou « DNAT »
- Création de règles de pare-feu
Vous devriez maintenant pouvoir accéder à l'interface Web.
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
- Entrez dans l'interface utilisateur de WireGuard avec votre mot de passe
- Ajouter un nouveau client
- Nommez le client et cliquez sur « Create »
- 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.
Répétez les étapes pour créer des clients supplémentaires.
Configuration client (Windows)
- 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/
- Téléchargez le fichier de configuration client sur le poste de travail.
- Importer le fichier de configuration client dans le logiciel WireGuard
- Connectez le reseau virtuel privé
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.
Gestion des clients
- Entrez dans l'interface utilisateur de WireGuard avec votre mot de passe
- Depuis la console, un accès client peut être désactivé ou supprimé si nécessaire.
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.
- Pour arrêter toutes les images Docker sur le serveur, exécutez la ligne de commande suivante :
docker stop $(docker ps -a -q) - Pour supprimer toutes les images Docker sur le serveur, exécutez la ligne de commande suivante :
docker rm $(docker ps -a -q) - Pour obtenir la dernière image, exécutez la ligne de commande suivante:
docker pull ghcr.io/wg-easy/wg-easy - Déployez l'image Docker WG-Easy à nouveau en suivant les étapes ci-dessus.
Références
https://github.com/wg-easy/wg-easy