Ceci est une ancienne révision du document !


Théorie

IP NAT MASQUERADE

Architecture du travail terminé

Topologie de la connexion

Mise en garde

Les adresses IP définies sur le schéma sont données à titre d'exemple…

Réseau privé

Bien entendu, tout fonctionne avec TCP/IP, vous configurez donc votre réseau privé avec des adresses privées. Les réseaux 192.168.xxx.yyy  sont des réseaux destinés à cet usage. Ce ne sont pas les seuls, mais comme vous avez peu de chances d'avoir plus de 254 machines sur votre réseau privé, une classe C devrait vous suffire. Vous n'avez déjà rien compris à ce que j'ai raconté ? Alors, vous devriez commencer par lire les chapitres sur TCP/IP(v4) et IP et le Routage

Sur ce réseau privé, nous trouvons :

  • Tous vos postes clients (ici 1, 2 et 3) ;
  • Une interface réseau de votre passerelle GNU/Linux.

Attention !

Dans notre exemple, l'adresse 192.168.0.0 NE DOIT PAS être utilisée par une machine, elle représente l'adresse du réseau dans son ensemble. De même, l'adresse 192.168.0.255 est réservée au « broadcast ». Pour plus de détails, voir TCP/IP(v4) sur ce site.

Connexion au FAI

La deuxième carte réseau placée dans le serveur LINUX est directement connectée au modem-câble ou modem ADSL. Généralement, vous n'avez droit qu'à une adresse IP dynamique. C'est votre FAI qui vous la prête pour une durée qui, le plus souvent, ne dépassera pas 24h.

Théoriquement, une connexion par USB devrait aussi faire l'affaire, bien qu'avec les débits actuels, cette connectivité ne soit plus du tout souhaitable. Elle n'est pas traitée ici, mais si vous arrivez à faire fonctionner un modem en USB sous Linux, le reste de ce chapitre est certainement exploitable, avec un minimum d'interprétation.

Configuration des clients

Les clients (les postes du réseau privé) peuvent être de n'importe quelle nature, pourvu qu'ils disposent d'un OS réseau gérant le protocole TCP/IP.

Il faut donc installer TCP/IP et le configurer de la façon suivante:

  • Donner une adresse IP fixe dans un réseau privé (192.168.0.x dans notre exemple).
  • Indiquer comme passerelle par défaut l'adresse IP de la machine LINUX dans le réseau privé (Celle qui est attachée à eth0: 192.168.0.253 dans notre exemple).
  • Indiquer l'adresse du  DNS de votre fournisseur d'accès (vous pouvez la trouver en faisant un host -v ou encore, un dig sur la machine LINUX). Vous pourrez aussi construire votre propre DNS sur votre machine Linux, comme c'est indiqué dans le chapitre « DNS ».

Ceci devrait suffire. Le client PPPoE que nous allons utiliser est suffisamment performant pour résoudre tout seul l'épineux problème du MTU. Voir le chapitre sur PPPoE à ce sujet

Et après ?

Après, vous arrivez sur la passerelle de votre FAI. Elle ne fonctionne pas tout à fait comme celle que nous allons monter, mais presque (masquerade en moins, ici, nous avons des « vraies » adresses IP).

Nous n'allons pas ici entrer dans les détails du routage, c'est déjà fait ailleurs sur ce site, mais il faut en parler un petit peu tout de même. Lorsqu'une machine d'un réseau A (par exemple 192.168.0.0) veut communiquer avec une machine d'un réseau B (par exemple 192.168.1.0), même si ces deux machines sont physiquement connectées au même média, elles ne se verront pas. Il faut mettre en place une passerelle entre ces deux réseaux, c'est à dire une machine qui a un pied dans chaque réseau, un peu comme votre machine GNU/Linux. En plus, il faudra expliquer à cette machine qu'elle doit établir un passage entre les deux réseaux.

Une démonstration...

Trace l'itinéraire vers watteau.auteuil.cnrs-dir.fr [193.51.136.4]
avec un maximum de 30 tronçons :

Durée du ping Nom de la machine Adresse IP de la machine
1 <10 ms <10 ms <10 ms LINUX [192.168.0.253]
2 12 ms 12 ms 13 ms ca-ol-marseille-1-1.abo.wanadoo.fr [80.8.128.1]
3 12 ms 12 ms 35 ms 172.19.46.65 [172.19.46.65]
4 11 ms 12 ms 12 ms GE1-1-811.ncmar301.Marseille.francetelecom.net [193.252.227.82]

C'est pas la peine d'aller plus loin:

  1. Ma passerelle. Elle s'appelle poétiquement LINUX, son IP dans mon réseau: 192.168.0.253
  2. La 1° passerelle du FAI, je parle pas de son nom, son IP: 80.8.128.1
  3. La Passerelle de sortie du FAI: 172.19.46.65

La route complète aurait pu être tracée, nous aurions vu alors toutes les passerelles d'interconnections de réseaux. Vous ferez la manip. vous même:

  • tracert <nom de la machine> sous Windows (console)
  • traceroute <nom de la machine> sous LINUX.

Le masquage d'adresses

(encore appelé « camouflage d'adresses »)

Un peu de logique

Nous devons être quelques millions dans le monde (et peut-être plus…) à utiliser les même classes privées, elles sont faites pour ça ! Ces adresses ne transitent JAMAIS sur l'internet. Mais alors comment faire? C'est l'objet de la fonction de masquage, appelée MASQUERADE chez LINUX. Génériquement, c'est du NAT (Network Address Translation), associé à du PAT (Port Address Translation). Par extension, on parle systématiquement de NAT.

L'opération de masquage (ou camouflage)

  1. récupère votre socket,
  2. remplace votre adresse IP par la sienne, côté extérieur
  3. remplace votre port de réponse X par un qu'il choisit lui-même (Y)
  4. tient à jour une table avec votre socket et le numéro de port Y.
  5. transmet la requête à votre place, avec le socket qu'il a construit.
  6. récupère la réponse sur son port Y
  7. remet dans la réponse votre adresse à la place de la sienne
  8. vous transmet la réponse sur votre port X

Simple non?

Avantages

  • Votre machine est inaccessible directement depuis l'Internet puisque votre IP est inconnue, seule celle du camoufleur est visible.
  • Vous n'avez besoin que d'une seule IP “officielle”, celle fournie par votre FAI, pour accéder à l'Internet depuis toutes les machines de votre réseau privé.
  • L'opération est complètement transparente pour le client de votre réseau privé, il suffit de configurer correctement votre pile IP. (adresse IP interne, masque de sous réseau qui, dans notre cas serait 255.255.255.0, et adresse du DNS de votre FAI pour avoir la résolution des noms).

Inconvénients

Mais en est-ce un ? Votre machine est inaccessible (par IP) directement depuis l'Internet puisque votre IP est inconnue, seule celle du camoufleur est visible. Vous ne pouvez donc pas placer un serveur derrière votre passerelle, du moins pas très simplement. Des solution existent cependant, comme nous le verrons avec Netfilter.

Attention toutefois, cette protection ne vous met pas à l'abri de toutes les formes d'intrusions. Si un malveillant ne peut accéder directement par IP à votre poste de travail, il peut toujours arriver à vous faire installer une « porte dérobée » par un moyen où un autre, qui lui donnera tout de même l'accès à votre machine. Mais pour intéressante que soit cette question, elle ne fait pas partie du sujet qui nous occupe ici.