Comment mettre en place le Serveur VPN-WireGuard
INTRODUCTION :
Wireguard est une technologie VPN (Virtual Private Network) moderne avec une cryptographie de pointe. Comparé à d'autres solutions similaires, telles que Ipsec et OpenVPN , Wireguard est plus rapide, plus facile à configurer et plus performant. Il s'agit d'une plateforme multiplateforme et peut fonctionner presque n'importe où, y compris Linux, Windows, Android et MacOs. Wireguard est un VPN Peer-to-Peer ; il n'utilise pas le modèle client-serveur. Selon sa configuration, un pair peut agir comme un serveur ou un client traditionnel.
Wireguard fonctionne en créant une interface réseau sur chaque appareil pair qui agit comme un tunnel. Les pairs s'authentifient en échangeant et en validant des clés publiques, imitant le modèle SSH. Les clés publiques sont mappées avec une liste d'adresses IP autorisées dans le tunnel. Le trafic VPN est encapsulé en UDP.
Dans ce tutoriel, nous allons configurer Wireguard sur une machine Ubuntu 18.04 qui agira comme un serveur VPN. Nous vous montrerons également comment configurer Wireguard en tant que client. Le trafic du client sera acheminé via le serveur Ubuntu 18.04.
Cette configuration peut être utilisée comme protection contre les attaques Man in the Middle, surfer sur le Web de manière anonyme, contourner le contenu géo-restreint ou permettre à vos collègues de se connecter en toute sécurité au réseau de l'entreprise lorsqu'ils travaillent à distance.
Conditions préalables
Vous aurez besoin d'un serveur Ubuntu 18.04 auquel vous pouvez accéder en tant que root ou compte avec les privilèges sudo .
Configuration du serveur Wireguard
Dans cette section, nous allons installer Wireguard sur la machine Ubuntu et le configurer pour qu'il agisse en tant que serveur. Nous configurerons également le système pour y acheminer le trafic des clients.
WireGuard est inclus dans les référentiels Ubuntu par défaut. Pour l'installer, exécutez les commandes suivantes :
Vérifiez tout d’abord la version du noyau
# git clone https://github.com/pivpn/pivpn.git
On passe à son installation
# ./pivpn/auto_install/install.sh
Nous aurons une série de questions à répondre :
Transformer la machine en un serveur VPN Wireguard
On remarque que la machine s’est redémarrée
Étape 2 : Paramétrage du serveur
Mise en réseau du serveur et configuration de pare-feu
Pour que NAT fonctionne, nous devons activer le trafic IP
Activation du routage sur le serveur # nano /etc/sysctl.conf
Voici l’adresse IP du serveur
On édite le fichier /etc/pivpn/wireguard/setupVars.conf Pour renseigner tous les informations concernant le serveur.
Voici le contenu du fichier wg0.conf
Ajoutons les paramètres PostUp et PostDown qui ont respectivement pour valeurs les politiques à appliquer lorsqu’un client se connecte et les politiques à appliquer lorsque ce dernier de déconnecte.
Ajouter ces deux lignes à la fin du fichier
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT;iptables -A FORWARD -o wg0 -j ACCEPT PostDown = iptables -D FORWARD -i wg0 -j ACCEPT;iptables -D FORWARD -o wg0 -j ACCEPT
EXPLICATION :
L'interface peut porter n'importe quel nom, mais il est recommandé d'utiliser quelque chose comme wg0
ou wgvpn0
. Les paramètres de la section interface ont la signification suivante :
Adresse - une liste d'adresses IP v4 ou v6 séparées par des virgules pour l' wg0interface. Utilisez des adresses IP d'une plage réservée aux réseaux privés (10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16).
ListenPort - le port sur lequel WireGuard acceptera les connexions entrantes.
PrivateKey - une clé privée générée par la wg genkey commande. (Pour voir le contenu du fichier lancez : sudo cat /etc/wireguard/privatekey)
PostUp - commande ou script qui est exécuté avant d'afficher l'interface. Dans cet exemple, nous utilisons iptables pour activer le masquage. Cela permettra au trafic de quitter le serveur, donnant aux clients VPN un accès à Internet.
Assurez-vous de remplacer ens3 après -A POSTROUTING pour correspondre au nom de votre interface réseau publique. Vous pouvez facilement trouver l'interface en exécutant la commande suivante :
PostDown - commande ou script qui est exécuté avant d'arrêter l'interface. Les règles iptables seront supprimées une fois l'interface arrêtée.
Nous remarquons l’existence des deux comptes créés dans les sections [Peer]
À présent, ces comptes ne pourront être utilisés que sur des ordinateurs. Pour tenir compte de leur l’utilisation sur des smartphones, nous allons générer des codes QR. Nous allons le faire juste pour le client Berenger. (Il est aussi possible de le faire pour Neymar)
Il clique sur Créer à partir d’un code QR après on demande de scanner le code QR que le serveur a créer
Il scanne le code QR et donner un nom pour la connexion.
Cliquer sur Enregistrer
Il s’est connecté.
Test 3 : Un client Windows
Pour télécharger le client wireguard sous Windows, cliquez sur ce lien https://download.wireguard.com/windows-client/
Neymar va récupérer son fichier de configuration depuis le serveur Nous allons utiliser le logiciel WinSCP pour récupérer le fichier !
Lancer l’application Wireguard
Cliquer sur Importer les (s) tunnels à partir du fichier ...
Parcourir son arborescence pour récupérer le fichier
Cliquer sur Activer
Le tunnel est établi avec succès !
Elle a même obtenu une adresse IP
On lance CMD
On voit l’adresse IP 10.6.0.5 que la machine Windows a reçu.
Preuve de l’établissement de la connexion
La machine Windows va lancer ping sur le serveur
Nickel !
La Connexion s’établie avec succès !
Si on clique sur Journal on trouve les messages échangés entre la machine Windows et le serveur
- Quelques commandes à utiliser sur le serveur :
Coté serveur si on tape cette commande :
Cette commande permet de voir l’interface Wireguard au démarrage
Conclusion
Nous vous avons montré comment installer WireGuard sur une machine Ubuntu 18.04 et le configurer en tant que serveur VPN. Cette configuration vous permet de surfer sur le Web de manière anonyme en gardant vos données de trafic privées.