Comment mettre en place le Serveur VPN-WireGuard

Publié le par berenger benam

 

 

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.

 

Installation de WireGuard sur Ubuntu 18.04

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.

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
Bonjour Dr Berenger vous avez fait un excellent travail
Répondre
B
Merci le Grand Mbaye
L
cool chou
Répondre