Archives de catégorie : Réseaux

Tutoriel Linux : Installer un serveur DNS récursif sur son VPS avec Unbound

Le DNS (Domain Name System) est un service fondamental sur Internet, puisque c’est lui qui permet à notre ordinateur de joindre une machine dont on ne connait que le nom.

Dans une configuration typique, si l’on ne touche à aucun paramétrage particulier, le fait de taper par exemple https://cnn.com dans la barre d’URL du navigateur de notre laptop va entraîner la séquence suivante :

– Le laptop va faire une requête DNS (protocole UDP, port 53) à la Livebox (« Quelle est l’adresse IP de la machine cnn.com ? »)

– La Livebox (adresse IP 192.168.1.1 généralement) va répercuter cette demande à l’infrastructure du FAI (exemple d’Orange dans la figure ci-dessus)

– Soit l’infrastructure du FAI a déjà la réponse, parce qu’elle a déjà questionné les serveurs racines du DNS sur Internet, auquel cas elle répond. Soit elle n’a pas la réponse et elle questionne récursivement les serveurs DNS racine sur Internet, qui eux vont fournir la réponse

– La réponse (l’adresse IP de la machine cnn.com) fait le trajet en sens inverse jusqu’au laptop

– Le laptop ouvre une connexion avec la machine en utilisant l’adresse IP qu’elle a reçue en réponse.

Les serveurs racine du DNS sur Internet sont des serveurs qui sont les points d’entrée d’un système hiérarchique, c’est pourquoi on parle de récursivité. Concrètement, si l’on souhaite l’adresse IP de la machine toto.cnn.com, le serveur racine du domaine .com sera consulté en premier, puis le serveur du domaine cnn.com.

Bref, on utilise ainsi le DNS en permanence sans même s’en douter.

Cependant cette configuration pose problème. En effet, le FAI est régulièrement sommé par les autorités d’effacer certaines machines du DNS. Techniquement c’est facile à faire : si les autorités demandent d’effacer la machine cnn.com (exemple fictif), alors le FAI paramètre son architecture DNS pour renvoyer comme réponse 127.0.0.1 en IPv4, ::1 en IPv6, au lieu de la vraie adresse IP, quand une requête DNS demandant l’adresse IP de cette machine est reçue.

127.0.0.1 et ::1 sont des adresses IP locales, qui ne permettront pas au laptop demandeur d’en faire quoi que ce soit. La machine cnn.com est ainsi invisibilisée (mais elle est toujours là) d’Internet.

Continuer la lecture

Tutoriel Linux : créer un réseau VPN Nebula

Nebula est né d’une difficulté d’ingénierie bien concrète. Vers la fin de 2016, le réseau de production de Slack connaissait une expansion rapide, et la solution IPSec utilisée alors pour relier les serveurs entre les régions commençait à montrer ses limites. Chaque paquet traversant les régions devait passer par un hôte tunnel IPSec, ajoutant un saut de latence sans contrepartie.

Plus problématique encore : à mesure que le réseau s’étendait sur plusieurs fournisseurs de cloud et des dizaines de sites, les « groupes de sécurité » propres à chaque fournisseur devenaient incompatibles entre eux, et les règles de pare-feu se réduisaient à une gestion grossière par plages d’adresses IP.

Nate Brown et Ryan Huber ont évalué toutes les solutions disponibles à l’époque. Aucune ne satisfaisait simultanément les exigences de Slack en matière de performance, d’échelle et de simplicité opérationnelle. Ils ont donc décidé de construire la leur. Le résultat de cette décision s’appelle Nebula, un système de réseau superposé qui, depuis le milieu de l’année 2017, porte l’essentiel du trafic réseau de Slack en interne, et qui n’a été basculé en open source qu’en novembre 2019.

Le principe de conception central de Nebula peut se résumer ainsi : intégrer l’identité numérique directement dans le tunnel chiffré, afin d’éliminer ce problème de distribution des clés qui empoisonne les architectures VPN traditionnelles. En effet, dans la plupart des réseaux superposés bâtis sur WireGuard, le chiffrement est assuré par WireGuard, mais la gestion des clés, l’authentification et le contrôle d’accès reposent sur un système latéral construit séparément. Cela signifie que lorsqu’une nouvelle machine rejoint le réseau, le service de coordination doit prévenir tous les nœuds existants pour qu’ils mettent à jour leur configuration. À l’échelle de Slack, c’est-à-dire plus de cinquante mille machines de production, chaque nouveau nœud impliquait d’informer cinquante mille nœuds de son existence, une approche intenable.

La solution de Nebula consiste à faire porter l’identité par des certificats PKI. Chaque machine reçoit, avant de rejoindre le réseau, un certificat signé par une autorité de certification, dans lequel sont encodés son adresse IP au sein du réseau superposé, son nom, ainsi que son appartenance à des groupes de sécurité définis par l’utilisateur. Lorsque deux machines communiquent pour la première fois, elles échangent et vérifient directement leurs certificats, confirment mutuellement leur identité, puis établissent un tunnel chiffré. Ce processus ne nécessite aucune distribution préalable de clés par un tiers, ni l’intervention d’un plan de contrôle pour coordonner les échanges. Selon les mots de Ryan Huber, ils voulaient un protocole qui traite directement l’identité et le transport, plutôt que d’accoler une identité à un VPN distinct.

Cette logique de décentralisation se retrouve également dans le mécanisme de découverte des nœuds. Il existe dans un réseau Nebula une catégorie de nœuds appelés Lighthouse (phare en français), dont l’unique fonction est de servir d’annuaire : indiquer à une machine comment en trouver une autre. Les Lighthouse ne communiquent pas entre eux et ne participent à aucun transfert de données. Si un réseau compte six Lighthouse et que cinq d’entre eux tombent en panne, le dernier continue de fonctionner normalement, et les chemins de trafic de l’ensemble du réseau restent inchangés.

Continuer la lecture

Tutoriel Linux : auto-héberger Ntfy, le service de notification de smartphones

Lorsqu’on développe une application web qui ambitionne de tourner sur mobile, on n’a que peu d’accès au matériel du smartphone (notifications, GPS, etc.), contrairement à une application mobile native.

Accéder à une notification des clients sur smartphones depuis une application web n’est pas impossible, mais au prix de circonvolutions et de ruses de Sioux techniques.

Heureusement, on peut laisser de côté la recherche de cet exploit technique puisqu’il existe un service clé en main qu’on peut utiliser pour faire notifier des smartphones depuis une application web : Ntfy (prononcer notify).

Ntfy est un service de notification. Il ne fait que cela, mais il le fait très bien. Ce service existe sous forme de SaaS ou auto-hébergeable gratuitement. C’est cette version gratuite auto-hébergée que nous allons mettre en place dans ce tutoriel.

Prix des plans payants de la version SaaS
Continuer la lecture

Tutoriel Linux : obfusquer le trafic Wireguard

Mettre en place un tunnel Wireguard entre des machines et un serveur est très utile mais cela n’est pas discret.

En effet, s’il est impossible pour un intervenant extérieur de visualiser en clair le trafic vu qu’il est chiffré, la nature Wireguard du trafic est par contre très facile à déterminer.

Dans un environnement réseau sous surveillance interdisant le trafic Wireguard, celui-ci sera facilement bloqué. La solution pour passer quand même est d’obfusquer le trafic en l’encapsulant dans un tunnel d’obfuscation.

Celui que nous allons utiliser dans ce tutoriel est wg-obfuscator, qui obfusque le trafic pour le faire ressembler à une visio-conférence, soit une nature de trafic moins sujet à des filtrages.

Rappel : l’installation de Wireguard sans obfuscation a déjà été couverte dans cet article.

Continuer la lecture

Tutoriel Linux : auto-héberger IT-tools, une boîte de +80 outils IT indispensables

IT-tools est une boîte contenant plus de 80 outils IT indispensables aux personnes travaillant dans le domaine de l’IT. Il est auto-hébergeable sur un serveur en ligne via docker et programmé par le français Corentin Thomasset (ingénieur INSA Lyon).

Une instance en ligne est utilisable directement sur it-tools.tech pour ceux qui auraient la flemme de l’auto-héberger.

Indépendamment de disposer d’une interface web moderne ultra-léchée, la boîte à outil est incroyablement simple à auto-héberger sous docker.

Installation d’IT-tools avec docker compose

Créez un répertoire ittools-docker et mettez-y un fichier docker-compose.yml qui contient :

services:
    it-tools:
        image: ghcr.io/corentinth/it-tools:latest
        ports:
            - "8080:80"
        restart: unless-stopped
        container_name: it-tools

Lancez le service par :

docker compose up -d

Et voilà, c’est installé. Il n’y a plus qu’à se rendre sur http://serveur:8080 pour accéder à la boîte à outils.

Les outils mis à disposition

Le paramétrage de l’interface propose 8 langues, dont bien sûr le français.

Au niveau des outils mis à disposition, c’est le feu d’artifice.

Chaque rubrique propose au moins une dizaine d’outils utilisables d’un clic. Les rubriques couvrent la cryptographie, la conversion de formats, les outils web, la génération de qr codes, le développement, les réseaux, les maths, les mesures, les manipulations de textes, les données.

A chaque mise à jour de l’image docker, on bénéficie d’outils supplémentaires.

Bémol

Attention, la configuration du docker-compose.yml présentée ici aboutit non seulement à un outil en http et non en https, mais aussi un outil accessible à n’importe quel internaute qui connaîtrait l’URL du service.

La seule manière de rendre ce service privé serait de le cacher derrière un reverse proxy présentant à l’internaute une authentification basique.

Tutoriel Linux : TorServ le serveur web Tor qui tient dans un binaire

TorServ est un serveur web statique « durci » (hardened) qui a une particularité unique : il intègre nativement le réseau Tor et se configure tout seul pour devenir un service caché (hidden service) .

Concrètement, il vous suffit de lancer le programme dans un dossier contenant vos fichiers HTML, et en quelques secondes, votre site est accessible via une adresse en .onion​ sur le dark web, sans aucune configuration complexe.

L’objectif principal est de permettre la publication anonyme et la résistance à la censure, même dans des environnements à haut risque. Le projet est open-source et écrit en Go .

Les caractéristiques qui le rendent unique

TorServ ne se contente pas de « simplifier » la configuration d’un service Tor. Il est conçu dès le départ avec la sécurité et l’anonymat comme priorités absolues.

  • Zéro configuration : C’est sa promesse phare. L’outil contient tout le nécessaire (le binaire de Tor est inclus). On décompresse et on exécute .
  • Sécurité et anonymat avancés :
    • Aucune journalisation (No logs) : Par conception, TorServ n’enregistre aucune requête, ce qui le rend muet même en cas de compromission .
    • Pas d’exposition sur le clearnet : Le serveur web n’écoute que sur votre propre machine (127.0.0.1​). Il est donc impossible d’y accéder directement par une adresse IP classique .
    • Nettoyage des métadonnées : Il supprime automatiquement les données EXIF des images (JPEG, PNG, GIF, BMP) avant de les servir, évitant ainsi les fuites d’informations .
    • Obfuscation du trafic : Pour contrer l’analyse du trafic, il ajoute un délai aléatoire (entre 50 et 200ms) sur les réponses et uniformise la taille des paquets de données .
    • Piège à robots : Si un robot scanne votre site à la recherche de dossiers inexistants, TorServ lui renvoie lentement des données sans intérêt au lieu d’une erreur 404 classique .
    • Headers HTTP sécurisés : Il supprime les en-têtes qui pourraient fournir des informations sur le serveur (comme Date​, ETag​, Last-Modified​) .
  • Simplicité d’utilisation : Une fois lancé, le programme vous affiche directement votre nouvelle adresse .onion​. Vous n’avez rien d’autre à faire .
  • Sandboxing automatique : Si firejail​ est installé sur votre système, TorServ s’y exécutera automatiquement pour limiter les dégâts en cas de faille de sécurité .

Limitations importantes à connaître

Avant de vous lancer, il est crucial de comprendre les cas d’usage de TorServ et ses limites :

  • Contenu statique uniquement : Oubliez WordPress, PHP, bases de données ou formulaires interactifs. TorServ ne sert que des fichiers HTML, CSS, JavaScript et images .
  • Pas de support des PDF : Par mesure de sécurité (à cause des métadonnées et scripts potentiels), TorServ refuse de servir les fichiers PDF .
  • Pas de compression HTTPS/Gzip : La compression est désactivée pour prévenir certains types d’attaques (comme BREACH). Le chiffrement est de toute façon assuré par le réseau Tor .
  • Projet récent : Bien que fonctionnel, il n’a pas la maturité et la base d’utilisateurs d’un serveur comme Apache ou Nginx .

Guide d’installation et d’utilisation sur Ubuntu

Continuer la lecture

Fiche technique : le Wifi 8

Alors que le Wi-Fi 7 commence à peine à se déployer dans les équipements haut de gamme, la prochaine génération de la technologie sans fil pointe déjà son nez.

Le Wi-Fi 8, officiellement désigné sous le nom de IEEE 802.11bn Ultra High Reliability (UHR), ne ressemble à aucune des générations précédentes. Là où le Wi-Fi 7 misait tout sur la course aux débits avec son concept d’Extremely High Throughput (EHT), le Wi-Fi 8 change fondamentalement de philosophie.

La caractéristique la plus marquante du Wi-Fi 8 est ce recentrage stratégique. Les générations successives, du Wi-Fi 4 au Wi-Fi 7, ont toutes poursuivi un même objectif, celui d’augmenter les débits théoriques maximaux.

Le Wi-Fi 8 rompt avec cette logique en ne cherchant plus à atteindre des vitesses de pointe toujours plus élevées, mais en garantissant des connexions stables, une latence prévisible et une fiabilité sans faille, même dans les environnements les plus denses et les plus saturés.

MediaTek, l’un des principaux concepteurs de puces, résume ainsi cette évolution en expliquant que le Wi-Fi 7 est une « machine à débit » tandis que le Wi-Fi 8 se conçoit comme un « tissu de fiabilité ». Cette distinction n’est pas un simple argument marketing, car elle cache un changement d’architecture radio profond.

Sur le plan des performances brutes, le Wi-Fi 8 ne devrait pas surpasser significativement son prédécesseur. Il conserve les mêmes blocs de 320 MHz maximum, les mêmes bandes de fréquences en 2,4 GHz, 5 GHz et 6 GHz, ainsi que la même modulation 4096-QAM, si bien que le débit théorique maximal reste aligné sur celui du Wi-Fi 7, soit environ 23 Gbit/s.

En revanche, le gain se situe ailleurs. Selon les premières estimations, le débit effectif en conditions réelles pourrait être amélioré d’environ 25 % par rapport au Wi-Fi 7, tandis que la latence serait réduite d’autant. Certains fabricants évoquent même des débits théoriques proches de 100 Gbit/s, mais ces chiffres restent à prendre avec précaution, car l’essentiel est ailleurs : ce qui importe pour l’utilisateur, c’est une connexion fiable de 500 Mbit/s à travers deux murs, et non une vitesse théorique de 5,8 Gbit/s mesurée en laboratoire.

Continuer la lecture

Le protocole IP pour les nuls

Tous les appareils présents sur Internet, que ce soient des PC, des serveurs, des smartphones, ou des objets connectés, doivent utiliser les protocoles universellement adoptés pour communiquer. Ils doivent être conforme au modèle OSI.

Le modèle OSI (Open Systems Interconnection), normalisé par l’ISO en 1984, décrit sept couches superposées. Chaque couche fournit un service à la couche supérieure et utilise les services de la couche inférieure. Ce découpage permet de faire évoluer une couche indépendamment des autres.

Couche 1, physique : Se charge de la transmission des bits sur un support (câble cuivre, fibre optique, ondes radio). Elle définit les tensions électriques, les débits, les modulations.

Couche 2, liaison : Se charge de l’organisation des bits en trames, de la détection d’erreur, de l’adressage sur le lien local (adresses MAC pour Ethernet). Protocoles de couche 2 : Ethernet, Wi-Fi, PPP.

Continuer la lecture