Ceci est un petit tuto sur les fondamentaux réseau en IPv4 (partie 1) et en IPv6 (partie 2). Il permet d’avoir les bases nécessaires pour comprendre les enjeux de la sécurité.
IP
Dans l’ancien monde d’IPv4 chaque machine d’internet avait une adresse publique. Elles pouvaient ainsi échanger directement. On affectait aussi des adresses privées à certaines machines qui ne pouvaient dialoguer qu’entre elles et pas avec les machines ayant des adresses publiques.
Ce mode de fonctionnement a quasiment disparu depuis longtemps.
Box
En IPv4, les box internet ont généralement une adresse publique c’est-à-dire visible sur Internet [1]. N’importe qui peut les joindre et s’y connecter, du moins si des services sont exposés, ce qui n’est pas le cas par défaut.
Cette adresse publique est visible en allant dans l’interface de la box ou des services comme Mon IP.
NAT
Le réseau local derrière la box est défini sur une autre plage d’adresses allouées des adresses privées, c’est-à-dire non visibles sur Internet.
Quand une machine (avec une adresse privée) veut accéder à une adresse (publique) sur Internet, par exemple une page web,
- la machine envoie un paquet avec l’adresse destination du site web et comme adresse source son adresse privée.
- La box ré-écrit l’adresse source du paquet, la remplace par l’adresse publique de la box et mémorise l’association entre la machine et ce paquet.
- Le serveur Web reçoit la requête venant de la box et répond à cette même adresse.
- La box reçoit cette réponse, consulte sa table de correspondances pour retrouver l’adresse privée ayant envoyé la requête, l’écrit dans l’adresse destination du paquet et transmet le paquet sur le réseau local.
- La machine reçoit le paquet comme s’il venait directement du serveur Web alors que ce dernier n’a jamais vu la vraie adresse (privée) de la machine, mais uniquement l’adresse publique de la box.
Ce mode de fonctionnement s’appelle NAT ou NAT-PAT et permet aux machines du réseau local de recevoir des réponses alors qu’elles n’ont pas d’adresse publique.
Il faut noter que le serveur Internet (bienveillant ou malveillant) n’a pas connaissance de la vraie adresse (privée) de la machine l’ayant contacté.
Le NAT permet certes aux machines de recevoir des réponses, mais pas d’être contactées directement puisqu’elles n’ont pas d’adresse publique. Comment faire pour que mon serveur soit visible sur Internet ?
Redirection de port
Le service NAT qui gère la table de correspondances permet également de définir des entrées statiques. On définit par exemple que tout le trafic entrant vers le port 443 (https) doit être redirigé vers une machine dont on saisit l’adresse IP privée en dur dans la configuration de la box.
Le ou les services redirigés de notre serveur deviennent visibles sur internet avec l’adresse publique de la box, le serveur conservant son adresse privée.
Bilan (provisoire)
Avec IPv4 aucune des machines (PC, téléphone, imprimante, TV, brosse à dent, SmartXXXX) n’est visible d’internet tout en pouvant malgré tout dialoguer directement.
Si on regarde ceci sous l’œil de la sécurité, on voit que les personnes malveillantes ne peuvent pas accéder à notre réseau IPv4 local puisqu’il n’est pas joignable ni même visible. Il leur faut donc trouver d’autres stratégies, la plus efficace étant de demander à l’utilisateur de le laisser rentrer avec un simple phishing: “Mais j’avais un message indiquant que mon ordinateur est infecté et qu’il fallait que je clique sur le lien pour le réparer…”
Pour chaque machine que l’on veut rendre visible sur Internet il faut aller configurer le NAT de la box. Et donc comme on la rend visible elle devient … visible. Et donc la cible de multiples attaques.
UPnP
Donc on a vu que le NAT isolait notre réseau local du monde hostile d’internet, mais les gamers qui ont besoin d’ouvrir des ports trouvent ça pénible, tout comme certains vendeurs de SmartXXXX.
Pour “remédier” à cela on a le protocole UPnP qui permet à une machine d’aller ouvrir les ports à sa guise sur la box.
Bilan
Si le NAT nous isolait d’Internet, avec UPnp activé sur sa box, il suffit d’avoir un SmartXXXX pour avoir tout ou partie de notre réseau privé exposé.
Vous n’aimez pas ? Attendez de lire la partie sur IPv6. Vous allez encore moins aimer.
CGNAT [1]
Dans l’introduction je disais que “les box internet ont généralement une adresse publique”. Avec le CGNAT ce n’est plus le cas. Les box n’ont plus d’adresse publique mais sont dans un réseau privé de l’opérateur qui est lui à son tour NATé pour aller sur Internet.
Ainsi une machine de notre réseau local est NATée deux fois pour aller sur internet ; une fois par la box puis ensuite par le routeur de l’opérateur.
Par contre il n’est plus possible d’exposer un service sur internet car évidemment nous n’avons pas la main sur la configuration du NAT de l’opérateur.
Dans ce cas il suffit de demander à son opérateur de ne pas être en CGNAT, c’est gratuit.