Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Ce que protège un tunnel VPN (WireGuard)

Après cette leçon: Je peux expliquer ce que protège un VPN.

Leçon de 50 min7 commandesLab WireGuard : construire un tunnel VPN entre deux sites dans le navigateur

Deux pizzerias, une seule liste de commandes

Une petite enseigne a deux pizzerias, une à Lille et une à Arras. Les caisses des deux restaurants doivent lire la même liste de commandes.

Entre les deux, il y a internet. Celui qui gère un câble sur le trajet pourrait lire ce qui passe.

Il faut un chemin privé à travers un lieu public. Ce chemin, c’est un VPN.

À la fin de cette leçon

Remarque

Je peux expliquer ce que protège un VPN.

Mots clés

MotCe que ça veut dire
Chiffrementbrouiller des données pour que seul le détenteur de la clé puisse les lire
Cléla valeur secrète qui verrouille ou déverrouille les données
Clé privéela moitié d’une paire de clés qu’on ne donne jamais
Clé publiquela moitié d’une paire de clés qu’on peut donner à tous
Tunneldes paquets transportés dans d’autres paquets, entre deux points
VPNun réseau privé virtuel : un tunnel avec du chiffrement

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Deux réseaux, internet au milieu

Le lab a deux sites. Le site A est 10.1.0.0/24 et le site B 10.2.0.0/24. Leurs passerelles se rejoignent sur un lien internet, 203.0.113.0/24.

Les deux sites utilisent des adresses privées. Aucun routeur du lien internet ne connaît donc le chemin vers l’autre site.

Découvre les quatre machines

Commande
wglab status

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Ping du site A vers le site B

Commande
sudo ip netns exec a1 ping -c 2 -W 1 10.2.0.2

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lis la table de la passerelle A

Commande
sudo ip netns exec gwA ip route

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Demande à gwA où il enverrait le paquet

Commande
sudo ip netns exec gwA ip route get 10.2.0.2

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

La passerelle A n’a aucun chemin

Le ping affiche deux fois From 10.1.0.1 ... Destination Net Unreachable. 10.1.0.1, c’est la passerelle A.

Sa table a deux lignes : son site, 10.1.0.0/24, et le lien internet, 203.0.113.0/24. Aucune ligne pour 10.2.0.0/24, et pas de route par défaut. C’est pourquoi ip route get répond Network is unreachable.

Chiffrer demande une clé

Le chiffrement transforme des données lisibles en charabia. Seul celui qui a la bonne clé peut revenir en arrière.

Un vieil exemple est le chiffre de César : avancer chaque lettre de trois places. Avec la clé 3, CHAT devient FKDW.

Le chiffrement moderne utilise des clés énormes et des calculs malins. Deviner la clé prendrait plus qu’une vie.

Exemple travaillé : César avec un décalage de 3

Lettre claireOn avance de 3Lettre secrète
CD, E, FF
HI, J, KK
AB, C, DD
YZ, A, BB

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Chaque passerelle a sa paire de clés

WireGuard donne deux clés à chaque passerelle. La clé privée reste secrète sur sa passerelle. La clé publique est calculée à partir d’elle et donnée à l’autre côté.

Chaque passerelle connaît la clé publique de l’autre. C’est ainsi que chacune vérifie qu’elle parle au bon partenaire.

Fabrique une clé privée jetable

Commande
wg genkey

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Vois qui peut ouvrir le dossier des clés

Commande
sudo ip netns exec gwA ls -ld /etc/wireguard

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Demande l’état des tunnels de gwA

Commande
sudo ip netns exec gwA wg show

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une clé est un fichier secret

Le premier Run affiche une ligne de 44 lettres, chiffres et signes, qui finit par =. La tienne est différente de celle des autres. Elle n’a pas été enregistrée : elle a disparu.

La ligne du dossier commence par drwx------ et nomme deux fois root. Seul root peut l’ouvrir, c’est normal pour des clés secrètes.

wg show n’affiche rien : aucun tunnel n’existe encore.

Ce que le tunnel cache ou montre

Quand le tunnel marche, la passerelle A emballe chaque paquet pour le site B. Elle le chiffre et l’envoie dans un nouveau paquet vers la passerelle B.

Sur le lien internet, un curieux ne voit que les adresses des deux passerelles et des données brouillées. Les adresses internes et le contenu sont cachés.

Un VPN ne cache pas que les deux passerelles se parlent. Il n’enlève pas non plus un virus d’une caisse.

Une erreur fréquente

Attention

Beaucoup pensent qu’un VPN rend invisible. Il protège seulement le trafic à l’intérieur du tunnel. Les deux bouts restent visibles, et les appareils de chaque côté peuvent toujours être attaqués.

Pour aller plus loin : casser un message

Quelqu’un t’envoie OD FDLVVH HVW RXYHUWH sans dire le décalage.

Écris une boucle qui appelle ta fonction decesar avec chaque décalage de 1 à 25 et affiche chaque résultat. Quelle ligne est du français ? Pourquoi cela montre-t-il que César est faible ?

À propos de ce labo et de sa source: Lab WireGuard : construire un tunnel VPN entre deux sites dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.