
Tailscale comme colonne vertébrale : tout en privé, joignable de partout
La meilleure façon de sécuriser un service, c'est de ne pas le publier. Un réseau privé maillé comme Tailscale (ou son équivalent auto-hébergé, Headscale) relie votre portable, votre téléphone et vos serveurs où qu'ils soient, comme s'ils partageaient un même réseau local. Dans notre labo, la plupart des services vivent seulement là. Voici ce qui y passe, et comment.
Ce que vous y gagnez. Tout votre labo dans la poche, depuis n'importe quel réseau, sans rien ouvrir sur votre box : la passerelle de modèles, la console sur téléphone, la diffusion de jeux, les consoles d'administration. Chaque service du réseau privé reçoit une vraie adresse HTTPS, et l'internet public n'en voit aucun.
Un peu d'histoire
Pendant des décennies, joindre la maison depuis l'extérieur voulait dire un serveur VPN, un port ouvert et des certificats à gérer, ou une redirection de port par service. WireGuard, écrit par Jason Donenfeld et intégré au noyau Linux en 2020, a rendu les tunnels chiffrés petits, rapides et simples. Tailscale, fondé en 2019, a ajouté ce que WireGuard vous laisse faire : échanger les clés, trouver chaque appareil derrière sa box, nommer les machines. Chaque appareil parle directement aux autres ; un serveur de coordination ne fait que les présenter. Headscale est une réimplémentation libre de ce serveur de coordination, pour qui veut l'héberger aussi. Les adresses viennent d'une plage réservée en 2012 aux opérateurs (RFC 6598), si bien qu'elles n'entrent jamais en collision avec votre réseau local.
1. Ce qui ne vit que sur le réseau privé ici
- La passerelle de modèles : elle n'écoute que sur l'interface du réseau privé.
- L'API derrière la console sur téléphone, et les sessions des agents.
- Le relais d'empreinte qui valide un sudo sur le serveur.
- La diffusion de jeux depuis le PC de jeu sans écran.
- Les rapports de santé du portable quand il est loin de la maison : ils rejoignent le labo par le réseau privé, pas par une adresse publique.
- Les consoles d'administration : derrière le proxy, elles ne répondent qu'au réseau local et au réseau privé (voir l'audit).
2. Publier un service avec un vrai HTTPS, en privé
tailscale serve --bg --https=443 http://127.0.0.1:8460
Le service continue d'écouter sur la machine elle-même ; Tailscale lui donne une adresse de la forme https://machine.votre-tailnet.ts.net avec un certificat valide, joignable par vos seuls appareils. Pas de proxy, pas de port ouvert, pas de certificat à renouveler à la main.
3. Ouvrir un port au seul réseau privé
ufw allow in on tailscale0 to any port 4000 proto tcp
Les règles sur l'interface tailscale0 ne s'appliquent jamais au réseau local ni à internet. Combinées à un service attaché à l'adresse privée, une erreur dans une couche est rattrapée par l'autre.
4. Resserrer les réglages par défaut
- Les règles d'accès : la politique par défaut laisse chaque appareil joindre tous les autres. Écrivez des règles par étiquette : le téléphone peut joindre la console et la passerelle, un appareil invité rien.
- Les noms : activez MagicDNS, et sur le téléphone « utiliser les réglages DNS de Tailscale », sinon les noms ne se résolvent pas.
- Les listes blanches ailleurs : la plage d'adresses du réseau privé (dans le bloc
100.64/10) peut être autorisée dans les listes d'accès de votre proxy, l'ignoreipde fail2ban et vos limites de débit.
Pièges
Une machine endormie ne répond même pas à un tailscale ping. Réveillez-la d'abord (voir dormir et se réveiller) avant de conclure que le réseau est cassé.
Ne confondez pas « sur le réseau privé » et « en sécurité » : un portable compromis y est aussi. Gardez les connexions, et gardez des règles d'accès serrées.
Sources
Utile ? Dites-nous ce qu'il faut mesurer ensuite.