Les bases de NAT

15 septembre 2006

Télécharger en PDF


Sommaire

I.Qu'est-ce qu'une passerelle ? 1

II.Qu'est-ce que NAT ? 2

III.Types de NAT 2

a)NAT Statique 3

b)NAT dynamique/IP masquerading/PAT 4

c)Oui, mais ICMP n'a pas de port... 6

d)Et pour le FTP, je fais comment ? 6

IV.Qu'est-ce qu'un proxy ? 7

a)Définition 7

b)Fonctionnement 8

c)Fonctionnalités supplémentaires 8

1La fonction de cache 8

2Le filtrage 8

3L'authentification 9

V.Accéder au réseau interne depuis l'extérieur 9

a)Port forwarding 9

b)Port mapping 10

c)DMZ : une configuration de sécurité 11

1Fonctionnement 11

2Problèmes de sécurité 12

VI.Glossaire 12

VII.Logiciels de NAT/PAT/Port forwarding 13

VIII.Logiciels de Proxy 13

IX.Références 13


I.Qu'est-ce qu'une passerelle ?



Une passerelle est une machine qui n'est pas forcément un PC tournant sous Linux. Elle permet à un ensemble de machines clients de communiquer avec des machines qui se trouvent sur un autre réseau.



Elle permet aussi de faire masquer le nombre de machines derrière la passerelle. Pour le réseau extérieur, il ne verra que la passerelle.




Elle sont des moyens de routage des paquets car elles ont connaissance des réseaux auxquels elles ont accès et savent vers quel passerelle rediriger le paquet si elle ne connaissent pas le réseau destination.




II.Qu'est-ce que NAT ?



NAT signifie simplement Network Address Translation. Littéralement, on pourrait traduire par Traduction d'Adresse de réseaux. Strictement il s'agit de changer les adresses IPs dans les paquets IP. On parle couramment de deux types de NAT : le DNAT (on change l'adresse IP de destination) et le SNAT (on change l'adresse IP d'émetteur).


III.Types de NAT


Il existe plusieurs concepts de NAT :


a)NAT Statique


A n adresses internes, il existe n adresses externes. La seule chose à faire est de remplacer l'adresse IP source ou destination avec une IP choisie dans une classe C, par exemple, de façon aléatoire ou statique (affecté par l'administrateur). Le cheminement d'un paquet aller-retour vers l'extérieur (par exemple Internet si l'adresse externe associée par la passerelle à la machine interne, est publique) :






Lors de la transmission des paquets suivants, la passerelle n'a plus à choisir l'IP publique...elle fait simplement le NAT dans un sens et dans l'autre. Un timeout est associé à chaque entrée de la table NAT, de sorte que si le nombre de paquets de la connexion vient à se rarifier, l'entrée est supprimée pour ne pas encombrer la table avec des entrées dont la connexion est fermée.


Le problème de ce type de NAT est qu'il faut autant d'IP publiques que d'adresse IP internes. Dans ce cas, on pourrait simplement associer les IP publiques au machines internes.

Par contre, cela permet à une machine de l'extérieur de contacter une machine interne directement.

Cette solution ne permet pas de résoudre le problème de pénurie d'adresses IP publiques Ipv4.


Ceci est utile pour rendre accessible un serveur interne depuis l'extérieur.



b)NAT dynamique/IP masquerading/PAT


Le but est d'associer une adresse IP publique (ou plusieurs en théorie) à n adresses IP internes. Dans ce cas, il est à la fois nécessaire de changer les IP sources ou destinations, et aussi les ports TCP/UDP (PAT : Port Address Translation). Cette technique est principalement destinée aux protocoles TCP et UDP. Elle pose des problèmes avec certains autres protocoles.

Cela pose plusieurs problèmes :

Ainsi, cela permet de donner un accès Internet à un grand ensemble de machines privées. On reprend notre passerelle précédente : 172.20.0.10 privée et 194.57.109.1 publique et notre client 172.20.0.1 :





Lors de la transmission des paquets suivants, la passerelle n'a plus à choisir un port...elle fait simplement le SNAT et DNAT. Un timeout est associé à chaque entrée de la table NAT, de sorte que si le nombre de paquets de la connexion vient à se rarifier, l'entrée est supprimée pour ne pas encombrer la table avec des entrées dont la connexion est fermée.


Cette méthode permet de résoudre en partie le problème de pénurie d'adresses IP publique Ipv4 car elle permet de cacher de nombreuses machines derrière une seule IP publique.

Par contre, elle ne permet pas (directement) aux machines internes d'êtres jointes depuis l'extérieur car quand la passerelle reçoit un paquet avec son adresse IP et un port qu'il n'a pas dans sa table NAT, il ne sait pas vers quelle machine diriger le paquet. Ceci permet toutefois d'augmenter légèrement le niveau de sécurité.

Le port forwarding/mapping permet toutefois de régler partiellement ce problème.


c)Oui, mais ICMP n'a pas de port...


Les protocoles comme ICMP n'ont pas port TCP/UDP car ils sont à la place de TCP ou UDP au dessus de IP. Il faut donc une implémentation particulière de NAT pour ces protocoles. Cette implémentation se base sur l'identifiant ICMP. Il est aussi souvent nécessaire de modifier le contenu du message ICMP qui peut contenir des adresses IP.


d)Et pour le FTP, je fais comment ?


En y réfléchissant bien, vous savez que le protocole FTP est de niveau 5,6 et 7 et contient pourtant des informations sur les IPs et les ports utilisés....D'abord un peu de théorie...


Le protocole FTP fonctionne suivant deux modes :









Il pose deux types de problèmes :


Il faut donc une implémentation de NAT spéciale : un proxy.


IV.Qu'est-ce qu'un proxy ?

a)Définition



Un proxy est « une sorte de NAT de niveau 5 et plus ». Ce n'est pas de la NAT au sens propre du terme. Il permet simplement de faire un traduction, comme NAT, des IPs et numéros de ports contenu dans le protocole qu'il gère. Il faut donc un proxy par service : un pour le FTP, un pour le SMTP, un pour le POP, un pour l'IRC...Il assure seulement les changements nécessaire au passage sur un réseau différent. Et c'est tout. Contrairement à ce que beaucoup croient, ce n'est pas dans les fonctions d'un proxy d'assurer la mise en cache des données transférée pour accélérer les requêtes. Bien sûr, la plus part des proxy le font mais c'est une fonctionnalité en plus et non vitale.

Un proxy s'apparente à un pare-feu applicatif...


b)Fonctionnement


Le fonctionnement d'un proxy est le suivant :




c)Fonctionnalités supplémentaires

1La fonction de cache


La plupart des proxys assurent une fonction de cache : ils gardent en mémoire les pages les plus souvent demandées par les utilisateurs. Cela permet de fournir le contenu plus rapidement. Les pages en cache sont supprimées au bout d'un certain temps pour ne pas rater des modifications éventuelles. Le proxy peut alternativement consulter les la version en ligne des pages en cache pour les mettre à jour si besoin.

Cette fonctionnalité permet de

Cela ralentit toutefois le délai de récupération des documents si la page n'est pas en cache, car il faut une étape de plus qu'en connexion directe.

2Le filtrage



Un proxy peut aussi surveiller les connexions par des journaux (des logs) en enregistrant systématiquement les requêtes qu'il traite.

Il est ainsi possible de filtrer les connexions en analysant les requêtes qu'il reçoit et les réponses des serveurs.

Il existe trois types de filtrage :

3L'authentification



Dans la mesure où un proxy est souvent l'intermédiaire avec l'extérieur, il peut être intéressant pour l'administrateur de donner cet accès à un nombre de personnes réduites. Un proxy peut, pour cela, demander un nom d'utilisateur et un mot de passe pour autoriser les requêtes à sortir et encore plus filtrer qui demande quoi.

V.Accéder au réseau interne depuis l'extérieur

NAT c'est bien, mais seuls les machines du réseau intérieur peuvent accéder à l'extérieur. Et si je veux mettre mon serveur WEB, à l'intérieur de mon réseau local et qu'il soit accessible depuis l'extérieur. Eh bien, c'est simple, il faut faire du port forwarding ou mapping...



a)Port forwarding

On pourrait traduire cela par « redirection de port ». On indique, par exemple, que tout paquet arrivant sur le port 80 sera rediriger vers le serveur interne sur le port 8080.



Son fonctionnement est le suivant :






b)Port mapping

Le port mapping se différencie du port forwarding par le fait que l'on ne change pas le port de destination.






c)DMZ : une configuration de sécurité

1Fonctionnement




Pour faire une DMZ (DeMilitarized Zone), il faut deux passerelles et un certain nombre de règles :



Les trois types de connexions au travers des pare-feu :



Cela représente trois niveaux de sécurité :



2Problèmes de sécurité

Un des clients utilise un portable personnel pour se connecter sur le réseau local. Le soir, il rentre chez lui, et se connecte à Internet directement, péchant son lot quotidien de virus et autres vers. Le lendemain, il se reconnecte sur le réseau local...laissant potentiellement un accès par vers à votre réseau local...

VI.Glossaire



On peut combiner le NAT statique et dynamique pour avoir à la fois des serveurs internes exposés et les clients du réseau local ayant accès à Internet.

VII.Logiciels de NAT/PAT/Port forwarding


Il existe plusieurs logiciels pour faire du NAT :


VIII.Logiciels de Proxy


Il existe plusieurs logiciels pour servir de proxy :



IX.Références


Tirer de http://fr.comp.securite.free.fr/firewall.txt

sharevb