Difficulté : Facile
Public cible : Autodidactes, administrateurs systèmes et réseaux, ingénieurs en cybersécurité, ainsi que toute personne cherchant à améliorer sa confidentialité en ligne.
Prérequis :
- [NÉCESSITE UN BUDGET] Disposer de cryptomonaie pour l’achat d’un VPS sans donner vos informations personnelles (TO DO : Tuto achat bitcoin)
- [NÉCESSITE UN BUDGET] Disposer d’un serveur VPS (Plus d’informations en bas dans l’article)
Introduction
Un VPN pour « Vitual Private Network », ou en français « Réseau Privé Virtuel », est une technologie qui permet de créer un tunnel sécurisée et chiffrée entre l’utilisateur et un réseau distant via Internet.
À l’origine, le VPN devais permettre aux entreprises de donner un accès aux salariés au réseau interne de celle-ci. Le VPN fonctionnait comme un relai réseau sécurisé qui s’interconnectait à un autre réseau. Une image vaut mieux qu’un long discours :

La connexion des salariés pouvait passer par internet pour rejoindre celle de l’entreprise en respectant des standards de sécurité élevés pour l’époque.
Le VPN créer un tunnel sécurisé entre les différentes parties
De nos jours le VPN est utilisé pour un tout autre sujet, il masque l’adresse IP de l’utilisateur, ce qui rend son activité en ligne plus privée et difficile à tracer.
Le VPN est souvent utilisé pour protéger les données lorsqu’on accède à des réseaux publics, comme les Wi-Fi dans les cafés ou les aéroports, afin d’éviter que des tiers malveillants n’interceptent les informations sensibles (comme les identifiants bancaires ou les mots de passe).
Considération de Sécurité
Il existe deux type de VPN :
- VPN grand public, que vous pouvez acheter (Mullvald, NordVPN, etc.).
- VPN grand privé, que vous pouvez faire vous même (Ce tuto).
Chacun de ces deux types possèdes des avantages et des inconvénients. Prenons chacun des cas :
- VPN grand public : AVANTAGES
- Les avantages d’un VPN grand public sont multiples :
- Son accessibilité est grandement facilité, de très bon services comme Mullvald rendent l’achat simple
- Le nombre d’adresse IP est très large et vous permet de switcher en quelques secondes sur d’autres IP
- Localisation disponibles sont aussi nombreuses, il est possible de changer de pays au même titres que les adresses IP.
- Les avantages d’un VPN grand public sont multiples :
- VPN grand public : INCONVÉNIENTS
- Le VPN grand public permet d’acheter un VPN pas cher (comme Mullvald) et permet généralement (selon les concepteur) d’être anonyme, on appel ce type de VPN des VPN « NO LOG » ou « BULLET PROOF ».
- Soyons clair, il n’y aura jamais aucune garanti qu’un prestataire VPN ne vous log. L’histoire nous à souvent montré le contraire.
En plus des mécanismes techniques permettant de faire fonctionner un VPN, l’adressage IP unique attribué à chaque client doit permettre d’identifier les adresses IP des autres utilisateurs afin d’éviter de perturber leurs connexions Internet en écrasant leur ligne VPN déjà montée. Cela n’a donc aucun sens d’un point de vu technique de dire qu’un VPN est « NO LOG » ou « BULLET PROF ».
Néanmoins, vous pouvez jeter un œil ici, il s’agit d’un tableau regroupant et notant la plupart des VPN sur différents critères, tels que « Le pays de résidence est-il soumis à certaines juridictions » etc. - Le routage de port. De nombreux VPN permettaient comme Mullvald à une époque de faire re-router des ports externe vers les IP des clients interne du VPN. Cela permettait par exemple de fournir un service (comme un site web) derrière le VPN. La plupart des VPN aujourd’hui interdisent cette pratique car elle a permis à des personnes mal honnêtes de fournir des sites illégaux en ligne. C’est un inconvénient très problématique pour la suite.
- Un autre facteur à prendre en compte est aussi le nombre de personnes utilisant la même adresse IP, vous risquez très probablement de vous faire bloquer temporairement la navigation sur certains site avec des captchas :

Exemple de captchas, reçu après la navigation sur un site web avec un VPN utilisés par un nombre important d’utilisateurs.
- VPN privé : AVANTAGES
- Vous êtes le seul à bénéficier de la machine sur laquelle repose le VPN. Vous pouvez configurer comme vous voulez celle-ci.
- Vous n’allez plus avoir autant de captchas en surfant.
- Vous pouvez configurer le routage de port et ouvrir vos services sur internet directement dans le tunnel du VPN (c’est un super avantage !).
- Vous pouvez ajouter autant d’utilisateurs que vous le souhaitez
- Vous pouvez effacer vous même les logs (nous allons voir ça plus loin dans le tuto)
- Vous avez la possibilité de contrôler la qualité du chiffrement utilisé
VPN privé : INCONVÉNIENTS
- C’est plus complexe, vous devez tout mettre en place vous même
- La connexion peu être légèrement plus lente que certains VPN grand public comme Mullvald
- Le prix d’un serveur possède un cout supérieur a celui d’un VPN
- Vous devez posséder de la cryptomonnaie pour laisser le moins d’information personnelle
- Vous devez aussi trouver un fournisseur qui acceptera la méthode de paiement par cryptomonaie
- Vous ne possédez qu’un nombre limité d’adresse IP. Il vous faudra un serveur différent pour avoir une autre IP. Soyons clair, l’objectif ici de notre VPN est pour le surf sur internet de manière récurrente sans pour autant changer d’adresse IP, l’objectif est de mettre une protection permanente. En revanche rien ne vous empêchera de mettre deux VPN, votre VPN maison (via VyOS) puis votre VPN grand public(Sur votre PC) (il vous faudra pour ça mettre en place la Blackbox).
Point sécurité Important :
Un point important à aborder est qu’il est techniquement possible pour une autorité de vous identifier, même avec un VPN personnel. Le niveau de difficulté de cette identification dépendra de l’utilisation que vous en faites. Dans cet article, nous allons mettre en place un VPN avec une IP plus ou moins fixe, sur lequel vous serez le seul utilisateur à y domicilier (sauf si vous choisissez de le partager avec des connaissances, ce que je déconseille d’ailleurs).
Une fois votre VPN configuré, vous l’utiliserez pour vous connecter à divers services tels que Discord, TikTok, etc. Bien que sur la plupart des sites web vous ne renseigniez pas votre identité, sur d’autres plateformes comme les services des impôts, Amazon ou Doctolib, vos informations personnelles sont souvent associées à votre compte.
Imaginons qu’une enquête judiciaire soit ouverte à votre encontre. Si la police relève votre adresse IP VPN sur un service web où vous n’avez pas d’identité, elle pourra alors la comparer à celle utilisée sur des sites où vos données personnelles sont présentes, comme ceux mentionnés précédemment.
Votre VPN doit donc être utilisé dans un cadre quotidien, et non pour tenter de commettre des activités illégales sur le web. Votre VPN doit protéger votre identité en cas de fuite de données par des services WEB mais ne vous permettra pas de résister à une enquête judiciaire.
Un VPN grand public vous protège mieux contre ce type d’enquête mais rien ne vous garanti que celui-ci ne va pas vous dénoncer. De mon point de vu en therme de sécurité, je préfère gérer moi même le risque que de laisser celui-ci à un prestataire VPN.Enfin, le prestataire du VPS peut techniquement voir votre adresse IP transiter vers le serveur, mais c’est le cas de l’ensemble VPN du monde entier.
Autre point important :
Si vous souhaitez que votre VPN vous protège également contre ce type d’identification, il faudra mettre en place, en complément de ce tutoriel, une machine virtuelle dédiée avec un autre VPN exclusivement pour les actions spécifiques à votre activité. Il est également recommandé de modifier régulièrement l’adresse IP de ce VPS afin de renouveler l’adresse IP associée à votre VPN.
Vous ne le savez peut-être pas mais votre navigateur même sous VPN permet de vous identifier à 100%. Pour réduire les risques d’empreintes numériques, il est important d’utiliser des extensions de navigateur spéciales. Celles-ci aident à masquer votre activité en ligne et à réduire les traces que vous laissez sur les sites web. Je prévois de réaliser un tutoriel prochainement sur ces outils et sur les bonnes pratiques pour minimiser votre empreinte numérique et durcir considérablement le pistage par les services étatiques. TO DO: comment rendre l’empreinte de votre navigateur changeante)
Avant de procéder à la mise en place du VPN, il est conseillé de désactiver l’IPv6 sur la box de votre opérateur. Cette mesure ajoutera une couche de sécurité supplémentaire en empêchant un IP logger d’exploiter votre adresse IPv6 pour vous identifier.
Mise en place du VPN
Un VPS pour « Virtual Private Serveur », ou « Serveur Privé Virtuel » en français, est une machine virtuelle (VM) hébergée sur un serveur physique partagé avec d’autres utilisateurs. Cela permet de louer une portion de ce serveur à un coût réduit, sans avoir à assumer le prix total de la machine. En louant une partie de ce serveur, vous pouvez y héberger vos propres services.
Il existe plusieurs types d’achats de VPS possible mais nous allons en retenir deux:
- L’achat mensuel : Vous payez votre VPS et vous rester avec le même serveur jusqu’à la fin de celui-ci.
- Le cloud VPS : Vous avez un crédit sur votre compte et vous payez à l’heure, ce crédit est débité au fur et à mesure que le temps passe. L’avantage avec ce système est que vous pouvez détruire votre VPS et en refaire au moment voulu
- De plus, si vous subissez une attaque par déni de service (DDoS) sur votre VPS, vous avez la possibilité de changer de VPS en quelques minutes en recréant rapidement un nouveau VPN
Dans notre choix final d’hébergeur VPS, nous retenons des prérequis auxquels notre VPS doit répondre:
- Un cloud VPS – Je précise que nous n’allons rien héberger sur notre VPS, cela permettra d’être souple et de détruire notre serveur dès que nous le voulons.
- L’achat doit être fait en cryptomonnaie afin de ne pas divulguer votre identité facilement.
- Une connexion suffisamment rapide, cela dépendra de votre connexion internet mais pour ma part j’aime privilégier des VPS qui ont une bonne connexion et un CPU suffisamment puissant (Un CPU correct est exigé pour pouvoir chiffrer chaque paquets)
Il existe plusieurs plusieurs milliers d’hébergeurs ou vous pouvez acheter un VPS.
Je ne vais n’en citer qu’un seul qui est suffisamment correct pour ce que nous souhaitons faire.
En revanche je vous invite à revenir vers nous dans les commentaires pour nous partager vos meilleurs fournisseurs (Attention : Ceux-ci doivent répondre aux trois critères évoqués plus tôt.)
Pour ce tutoriel nous allons utiliser Bitlaunch. Bitlaunch à plusieurs avantages comme la sélection du pays du serveur VPS, la sélection de l’hébergeur du VPS (Bitlaunch est un revendeur de plusieurs fouisseurs) le paiement par cryptomonnaies, le système de cloud VPS et une connexion correct (~1Gbs), il permet aussi de fonctionner en système de crédits.
Achat et déploiement du VPS
Commencez par utiliser le navigateur TOR pour créer votre compte sur Bitlaunch.
N’utilisez jamais votre propre connexion Internet, car cela annulerait tout l’intérêt de mettre en place un VPN anonymisé. Nous vous recommandons aussi de mettre votre propre adresse e-mail de messagerie et de ne pas utiliser des services de messagerie externe (TO DO : Tutoriel sur la création de votre propose serveur de messagerie)
Une fois votre compte actif, cliquez sur « Add Funds » afin d’ajouter des fonds à votre compte et sélectionnez le montant à mettre (20$ étant le montant minimum).

Une fois le paiement validé par BitLaunch, vous devriez le voir apparaître dans le menu.
Cliquez sur le « + » vert en haut à droite du site pour créer un nouveau serveur VPS.

Sélectionnez les éléments du VPS suivant.
Si vous êtes en France métropolitaine ou en Corse privilégiez un VPS en Allemagne ou au Pays-Bas. Plus votre VPS est éloigner de votre position géographique plus votre connexion aura de la latence.

Privilégiez des pays avec de nombreuses sorties de fibres sous-marine en direction des états-unis (la plupart des sites web sont aux USA, mais cela reste de moins en moins vrai avec les différents CDN du monde entier.). Les Pays-Bas sont d’excellent choix pour cela.
l’Allemagne peux-être un meilleur choix si vous êtes dans le sud et semble donc être un meilleur compromis pour tous.

Sélectionnez un mot de passe root robuste aléatoire et unique ou une clé SSH (TO DO: Créez votre propre clé SSH).
Enfin donnez un nom à votre serveur
Cliquez ensuite sur « Launch Server » pour créer le serveur :

Attendez quelques minutes que le serveur soit crée :

Récupérez ensuite l’IP du serveur :

Configuration du VPS
Connectez vous avec votre compte « root » et votre mot de passe ou votre clé puis changer à nouveau le mot de passe du serveur. En effet quand vous avez saisi le mot de passe sur le site, celui-ci pourrait le stocker donc il est recommandé de le changer :
passwd rootDésactiver l’IP V6 de manière permanente :
echo "net.ipv6.conf.all.disable_ipv6 = 1" > /etc/sysctl.d/disable-ipv6.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.d/disable-ipv6.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.d/disable-ipv6.conf
sysctl --system
chattr +i /etc/sysctl.d/disable-ipv6.confInstaller les dépendances suivantes :
sh -c "echo 'deb http://deb.debian.org/debian bookworm-backports main contrib non-free' > /etc/apt/sources.list.d/bookworm-backports.list"
apt update && apt upgrade -y && apt install -y curl htop net-tools nano iptables netcat-traditional screen tcpdump wireguard iptables wireguard-tools mawk grep iproute2 qrencode telnet cron libpam0g-dev linux-headers-$(uname -r); curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | bash; apt install speedtest;Si vous obtenez une erreur de type « Headers not found », veuillez à redémarrer votre VPS et à taper la commande suivante :
apt update && apt upgrade -y && apt install -y curl htop net-tools nano iptables netcat-traditional screen tcpdump wireguard iptables wireguard-tools mawk grep iproute2 qrencode telnet cron libpam0g-dev linux-headers-$(uname -r); curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | bash; apt install speedtest;Si vous utilisez la blackbox, installez docker que nous utiliserons pour d’autres tuto :
curl https://raw.githubusercontent.com/s4dic/dockerautoinstall/main/dockerautoinstall.sh | bashTapez ensuite les commandes suivantes pour purger toutes les règles de pare-feu susceptibles de poser problème :
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
systemctl restart docker 2>/dev/nullConfiguration du VPN
La commande suivante permet de générer la configuration du VPN pour une seule configuration. Adapter le nom « BLACKBOX » au nom de votre configuration :
cd /etc/wireguard/ && wget https://raw.githubusercontent.com/burghardt/easy-wg-quick/master/easy-wg-quick && chmod +x easy-wg-quick && ./easy-wg-quick BLACKBOXSi vous souhaitez configurer un second équipement, comme par exemple un téléphone ou autre, tapez la commande suivante en remplaçant « TEL » par le nom de votre configuration :
cd /etc/wireguard/ && ./easy-wg-quick TELÉditez le fichier de configuration :
cd /etc/wireguard/ && nano wghub.confConfigurer maintenant le fichier comme vous le souhaitez, l’image ci-dessous vous donnera des indications sur les paramètres que vous pouvez changer :

IMPORTANT : Si vous utilisez la blackbox, définissez une IP locale du VPN (wghub.conf) qui est dans votre réseau (en 172.16 ou en 192.168), il s’agit des point N°1,4,5.
Le MTU correspond à la taille des paquets il va de 0 à 1500, mais plus généralement pour un VPN cela va de ~1280 pour une connexion peu stable à 1500. Pour ma part, sur mon VPN perso dans ma blackbox je suis à 1440 mais cela est spécifique à ma connexion et la distance entre moi et le serveur. Vous devez donc tester avec speedtest pour trouver la bonne configuration à appliquer.
Enregistrez votre configuration puis démarrer votre serveur VPN :
wg-quick up wghubVérifiez que votre serveur démarre avec la commande :
ip a
On peut clairement voir que la carte réseau « WGHUB » est démarrée.
Attention, à ce stade, le VPN est configuré pour ne pas se lancer automatiquement si votre VPS subit un redémarrage.
Cette configuration est volontaire, car un redémarrage peut indiquer une modification potentielle de votre serveur. Si vous souhaitez malgré tout activer le démarrage automatique, tapez la commande suivante :Bashsystemctl enable wg-quick@wghub
Si vous avez besoin de stopper le VPN, vous pouvez taper la commande suivante :
wg-quick down wghubSupprimer les logs de votre serveur VPS & VPN
Pour supprimer les logs de votre VPS, veuillez accéder à cet article.
Test du VPN
Récupérez la configuration de vos clients, pensez à changer « BLACKBOX » par le nom de votre configuration :
cat /etc/wireguard/wgclient_BLACKBOX.conf
Copiez uniquement le résultat dans un fichier au format « .conf » Attention, si vous avez changé l’IP lors de la création du VPN (fichier wghub.conf) des clients du VPN il faudra l’adapter !
Notre fichier sera « VPN.conf »
Connexion au VPN Wireguard sous Windows
Téléchargez Wireguard et installez-le.
Ouvrez Wireguard et importez le fichier de configuration :


Cliquez sur Activer :

Votre VPN est désormais actif.
Connexion au VPN Wireguard sous Linux Desktop
Si vous souhaitez vous connecter depuis votre interface graphique Linux, rajoutez votre configuration dans votre fichier de conf et coller le résultat du dernier « cat » :
nano ~/VPN.confImportez votre configuration à votre interface :
sudo nmcli connection import type wireguard file ~/VPN.conf
La configuration VPN est ajoutée avec succès
Vous serez automatiquement connecté :

Mon Linux est désormais en VPN :

Connexion au VPN Wireguard avec la Blackbox
pour connecter votre VPN à la blackbox consultez l’article du chapitre deux de la blackbox.
Annexes
Technologies utilisées pour le VPN
WireGuard est un protocole VPN qui se distingue par sa simplicité, sa sécurité et ses performances. Voici les principales technologies et principes qui le rendent efficace :
1. Cryptographie Moderne et Efficace
- WireGuard utilise des algorithmes cryptographiques modernes et rapides, tels que ChaCha20 pour le chiffrement et Poly1305 pour l’authentification, garantissant à la fois sécurité et rapidité.
- L’algorithme Curve25519 est utilisé pour l’échange de clés, et BLAKE2s pour le hashing cryptographique. Ces choix sont à la fois rapides et résistants aux attaques connues.
- En utilisant des primitives cryptographiques modernes et en éliminant les choix configurables, WireGuard réduit les risques d’erreurs de configuration et de vulnérabilités.
2. Échange de Clés Basé sur Noise Protocol Framework
- WireGuard utilise le Noise Protocol Framework, qui est un cadre flexible et sécurisé pour les échanges de clés cryptographiques. Il permet d’établir rapidement des connexions VPN en limitant les échanges de données.
- Ce protocole assure que les clés ne sont jamais échangées en clair, ce qui renforce la confidentialité et résiste à diverses formes d’attaques.
3. Faible Nombre de Lignes de Code
- WireGuard compte environ 4 000 lignes de code, comparé à des solutions VPN comme OpenVPN qui en a des centaines de milliers. Cela rend WireGuard plus facile à auditer, réduisant les surfaces d’attaques et les risques de bugs.
- Un code plus simple et plus léger facilite l’identification des vulnérabilités et la correction des erreurs potentielles.
4. Minimalisme et Absence de Complexité Superflue
- WireGuard évite les fonctionnalités superflues. Par exemple, il n’y a pas de gestion de certificats complexe comme dans IPsec, ce qui simplifie grandement la configuration et l’exploitation.
- Ce minimalisme le rend non seulement plus performant, mais également moins gourmand en ressources, ce qui est idéal pour les appareils mobiles ou à faibles ressources.
5. Encapsulation Simple et Directe
- Le protocole encapsule le trafic dans des paquets UDP, ce qui le rend plus facile à déployer à travers les NAT et les pare-feu. Il utilise un port unique par défaut, ce qui simplifie les règles de pare-feu.
6. Amélioration des Performances avec Multi-threading
- WireGuard est conçu pour tirer parti du multi-threading, exploitant ainsi les processeurs modernes avec plusieurs cœurs. Cela permet d’augmenter les performances et de réduire la latence.
7. Gestion Simplifiée des Pairs et des Routes
- Chaque pair possède une clé publique, utilisée pour identifier les autres pairs et établir des routes statiques, ce qui simplifie la configuration et la maintenance du VPN.
L’approche de WireGuard, qui favorise la simplicité et l’efficacité (voir benchmark ci-dessous), en fait une solution VPN très sécurisée, rapide et facilement vérifiable.
Benchmark VPN
Les benchmark ci-dessous sont issues du site de Wireguard.
Configuration des tests
- Intel Core i7-3820QM et Intel Core i7-5200U
- Cartes Ethernet Gigabit Intel 82579LM et Intel I218LM
- Linux 4.6.1
- Configuration WireGuard : ChaCha20 256 bits avec Poly1305 pour MAC
- Configuration IPsec 1 : ChaCha20 256 bits avec Poly1305 pour MAC
- Configuration IPsec 2 : AES-256-GCM-128 (avec AES-NI)
- Configuration OpenVPN : suite de chiffrement sécurisée de manière équivalente d’AES 256 bits avec HMAC-SHA2-256, mode UDP
- IPERF3 a été utilisé et les résultats ont été moyennés sur 30 minutes.


VPN 10Gbs – Nouvelle technologie d’encapsulation des paquets
Un article de Tailscale détaille des améliorations significative apportées à WireGuard permettant d’atteindre plus de 10 Gb/s de débit.
Actuellement wireguard fonctionne de manière à chiffrer chaque paquet segmentés un par un :

Un par un les paquets sont chiffrés
Mais Tailscale à fait une modification importante au niveau du noyaux Linux qui permet de faire des progrès au niveau du réseau.
Ces progrès sont obtenus grâce à l’optimisation de la segmentation UDP et des vérifications de sommes de contrôle, ce qui réduit le nombre d’appels système et optimise l’utilisation des ressources CPU. En d’autres thermes, plusieurs paquets sont combinés afin de chiffrer qu’un seul gros paquets de données.

Néanmoins, Tailscale indique que pour arriver à de tels performances il fallait disposer d’un serveur dédié et non pas un VPS, qui mutualise les ressources CPU.
De plus, il y a fort à parier qu’encapsuler des gros paquet de données serait préjudiciable si la connexion VPN est instable. En effet, modifier la taille des paquets reviendrait en quelque sorte à modifier du MTU wireguard, ce qui pourrait le rendre instable.
Quoi qu’il en soit, ces progrès ne sont pas encore intégrés au noyau Linux et, par conséquent, ne sont pas non plus intégrés à VyOS (cela concerne uniquement ceux qui utilisent la blackbox).
Je continuerai à faire de la veille sur ces technologies, et je n’hésiterai pas à mettre à jour ces articles à l’avenir si une actualité importante venait à se présenter.

![[VIP] Supprimez les logs de votre VPS/VPN](https://secret-defense.net/wp-content/uploads/2024/10/20c85c4b-7642-4d10-a94d-211d544ebdc1-150x150.webp)