Comment configurer un serveur VPN à la maison gratuitement

Dans cet article, je vais vous guider, étape par étape, à travers le processus de configuration d'un VPN WireGuard sur un serveur Linux. Il vous permettra d'accéder à des ressources Internet sécurisées à partir d'endroits non sécurisés comme les cafés.

Mais pourquoi un VPN? Et pourquoi WireGuard?

Chaque fois que vous vous connectez, par exemple, au site Web de votre banque à partir d'un emplacement distant, vous risquez d'exposer votre mot de passe et d'autres informations sensibles à quiconque écoute sur le réseau.

Espérons bien sûr que le site Web de la banque lui-même sera crypté, ce qui signifie que les données clés circulant entre la banque et votre PC ou smartphone seront illisibles pour quiconque écoute en cours de route.

Et si vous vous connectez depuis votre domicile ou votre bureau? Avec un VPN, vous pouvez être raisonnablement sûr que ces éléments de données non obscurcis par un cryptage régulier ne seront pas vus par les mauvaises personnes.

Mais que faire si vous vous connectez via un routeur WiFi public dans un aéroport ou un café? Êtes-vous sûr que le réseau n'a pas été compromis ou qu'il n'y a pas de pirates qui regardent inaperçu?

Pour contrer cette menace très réelle, vous pouvez ouvrir une connexion sur votre ordinateur portable ou votre téléphone à un serveur VPN. De cette façon, tous vos transferts de données s'effectuent via un tunnel virtuel. Chaque partie de vos connexions sensibles sera invisible pour quiconque sur le réseau local à partir duquel vous vous connectez.

WireGuard est le plus récent des trois grands acteurs du monde VPN open source, les deux autres étant IPsec et OpenVPN.

WireGuard est conçu pour être plus simple, plus rapide et plus flexible que les autres. C'est le petit nouveau du quartier, mais il a rapidement trouvé des amis importants. À la demande du créateur de Linux Linus Torvalds lui-même, WireGuard a été récemment incorporé dans le noyau Linux.

Où créer votre serveur VPN?

Bien sûr, vous pouvez toujours créer un serveur VPN à la maison et configurer la redirection de port via le routeur de votre FAI. Mais il sera souvent plus logique de l'exécuter dans le cloud.

Ne t'inquiète pas. Je vous assure que cette façon sera beaucoup plus proche d'une configuration rapide et indolore "set it and forget it". Et il est très peu probable que tout ce que vous construisez chez vous soit aussi fiable - ou sécurisé - que l'infrastructure fournie par les grands fournisseurs de cloud comme AWS.

Cependant, si vous avez un serveur Internet sécurisé par un professionnel dans la maison (ou si vous êtes prêt à tenter votre chance avec un Raspberry Pi de rechange que vous avez traîné), cela fonctionnera à peu près de la même manière.

Grâce à WireGuard, que ce soit dans le cloud ou sur un serveur physique, créer votre propre VPN domestique n'a jamais été aussi simple. L'ensemble de l'installation peut être effectué en une demi-heure.

Se préparer

Mettez votre instance cloud en marche, peut-être à l'aide d'un didacticiel à partir d'ici.

Assurez-vous que le port 51820 est ouvert sur votre serveur. Cela se fait avec des groupes de sécurité sur AWS et un pare-feu de réseau VPC sur Google Cloud.

Avec les versions modernes de Debian / Ubuntu, Wireguard peut être installé à partir des gestionnaires de paquets comme ceci:

sudo apt install wireguard 

Ou avec yum, du référentiel EPEL:

sudo yum install kmod-wireguard wireguard-tools 

Première étape: créer les clés de chiffrement

Dans n'importe quel répertoire du serveur sur lequel vous souhaitez créer des fichiers contenant les clés publique et privée, utilisez cette commande:

umask 077; wg genkey | tee privatekey | wg pubkey > publickey 

Faites de même pour le client dans un répertoire différent ou sur votre machine locale. Assurez-vous simplement de pouvoir distinguer les différents jeux de clés plus tard.

Pour une configuration rapide, vous pouvez utiliser un générateur de clés en ligne. Cependant, je suggère de le faire manuellement la première fois. Assurez-vous que les fichiers ont été créés avec des hachages de clé, car vous les utiliserez à l'étape suivante.

Deuxième étape: créer la configuration du serveur

Vous devez créer un fichier .conf dans le répertoire / etc / wireguard. Vous pouvez même faire fonctionner plusieurs VPN en même temps en utilisant différents ports.

Collez le code suivant dans le nouveau fichier:

sudo nano /etc/wireguard/wg0.conf 
[Interface] Address = 10.0.0.1/24 ListenPort = 51820 # use the server PrivateKey PrivateKey = GPAtRSECRETLONGPRIVATEKEYB0J/GDbNQg6V0s= # you can have as many peers as you wish # remember to replace the values below with the PublicKey of the peer [Peer] PublicKey = NwsVexamples4sBURwFl6HVchellou6o63r2B0s= AllowedIPs = 10.0.0.2/32 [Peer] PublicKey = NwsexampleNbw+s4sBnotFl6HrealxExu6o63r2B0s= AllowedIPs = 10.0.0.3/32 

Démarrez le VPN

sudo systemctl start [email protected] 

Si vous n'avez pas systemd (ce qui peut être vrai si votre instance exécute Amazon Linux), vous pouvez utiliser sudo wg-quick up wg0.

Troisième étape: créer la configuration client

Installez d'abord Wireguard sur votre machine cliente, soit de la même manière sous Linux, soit via un magasin d'applications si vous utilisez Windows, macOS, Android ou iPhone.

Si vous avez utilisé un générateur de clé en ligne ou un script QR à la première étape, vous pouvez connecter votre téléphone en prenant une photo du code QR.

Une fois WireGuard installé sur le client, configurez-le en utilisant ces valeurs:

# Replace the PrivateKey value with the one from your client interface [Interface] Address = 10.0.0.2/24 ListenPort = 51820 PrivateKey = CNNjIexAmple4A6NMkrDt4iyKeYD1BxSstzer49b8EI= #use the VPN server's PublicKey and the Endpoint IP of the cloud instance [Peer] PublicKey = WbdIAnOTher1208Uwu9P17ckEYxI1OFAPZ8Ftu9kRQw= AllowedIPs = 0.0.0.0/0 Endpoint = 34.69.57.99:51820 

Il existe de nombreux modules complémentaires facultatifs dont vous pourriez avoir besoin en fonction de votre cas d'utilisation, tels que la spécification de DNS ou de clés pré-partagées pour une couche supplémentaire de sécurité.

Démarrez le client de la même manière que le serveur si vous êtes sous Linux ou via l'application elle-même sur d'autres systèmes.

Testez votre VPN

Tapez "mon ip" dans votre navigateur pour découvrir votre adresse IP publique. Si l'adresse IP que vous obtenez est différente de l'adresse de votre ordinateur avant de démarrer le VPN, alors vous avez réussi!

(Et si vous avez oublié ce que c'était avant, essayez sudo systemctl stop [email protected], vérifiez et redémarrez.)

Guide de dépannage

Assurez-vous que votre serveur est configuré pour le transfert IP. Vérifiez le fichier /etc/sysctl.conf ou exécutez:

echo 1 > /proc/sys/net/ipv4/ip_forward 

Votre connexion meurt souvent? Ajoutez ceci à la section homologue de la configuration client:

PersistentKeepalive = 25 

Vous ne savez pas pourquoi cela ne fonctionne pas? Essayez sudo tcpdump -i ethsur le serveur tout en essayant d'utiliser le client.

Merci d'avoir lu ce guide.

Si vous souhaitez approfondir, envisagez de suivre mon cours Manning payant sur WireGuard VPN.