Tutoriel nat pat

17
Dimitri LEMBOKOLO 1 I. Partie I : Les Protocoles IP de la couche réseau Forme des adresses IP Masque de réseau Les classes d’adresses Partie II : Les réseaux privées et la traduction d’adresses (NAT) Présentation des fonctions NAT et PAT Principes fonctionnalités de NAT et PAT NAT statique NAT dynamique PAT Partie III : Statique ou Dynamique Quand faire du NAT statique ? Quand faire du NAT dynamique Puis-je combiner ces deux méthodes Description horaire Partie IV : La sécurité et la NAT La NAT dynamique permet-elle d’améliorer ma sécurité ? Est-ce utile pour la sécurité d’utiliser un proxy La NAT est-elle compatible avec IPSEC Utilitaire pour faire du NAT Conclusion

description

ben! pour avoir reck une idée en NAT, PAT et routage

Transcript of Tutoriel nat pat

Page 1: Tutoriel nat pat

Dimitri LEMBOKOLO

1

I. Partie I : Les Protocoles IP de la couche réseau

Forme des adresses IP

Masque de réseau

Les classes d’adresses

Partie II : Les réseaux privées et la traduction d’adresses (NAT)

Présentation des fonctions NAT et PAT

Principes fonctionnalités de NAT et PAT

NAT statique

NAT dynamique

PAT

Partie III : Statique ou Dynamique

Quand faire du NAT statique ?

Quand faire du NAT dynamique

Puis-je combiner ces deux méthodes

Description horaire

Partie IV : La sécurité et la NAT

La NAT dynamique permet-elle d’améliorer ma sécurité ?

Est-ce utile pour la sécurité d’utiliser un proxy

La NAT est-elle compatible avec IPSEC

Utilitaire pour faire du NAT

Conclusion

Page 2: Tutoriel nat pat

Dimitri LEMBOKOLO

2

I. Le protocole IP de la couche Réseau

Le rôle fondamental de la couche réseau (niveau 3 du modèle OSI) est de déterminer la route que

doivent emprunter les paquets. Cette fonction de recherche de chemin nécessite une identification de

tous les hôtes connectés au réseau.

Le modèle TCP/IP utilise un système particulier d'adressage qui porte le nom de la couche réseau de

ce modèle : l'adressage IP. Le but de ce rapport est de présenter le fonctionnement de cet adressage

dans sa version la plus utilisée IPv4.

De façon académique, on débute avec le format des adresses IP. On définit ensuite les classes

d'adresses IP, le premier mode de découpage de l'espace d'adressage. Comme ce mode de découpage

ne convenait pas du tout au développement de l'Internet, on passe en revue aux améliorations

apportées depuis 1980 : les sous-réseaux ou subnetting, la traduction d'adresses ou Native Address

Translation (NAT).

Le format des adresses IP

Les adresses IP sont composées de 4 octets. Par convention, on note ces adresses sous forme de 4

nombres décimaux de 0 à 255 séparés par des points.

L'originalité de ce format d'adressage réside dans l'association de l'identification du réseau avec

l'identification de l'hôte.

La partie réseau est commune à l'ensemble des hôtes d'un même réseau ;

La partie hôte est unique à l'intérieur d'un même réseau.

Prenons un exemple d'adresse IP pour en identifier les différentes parties :

Tableau 1. Exemple : adresse IP 192.168.1.1

Adresse complète 192.168. 1. 1

Masque de réseau 255.255.255. 0

Partie réseau 192.168. 1.

Partie hôte 1

Adresse Réseau 192.168. 1. 0

Adresse de diffusion 192.168. 1.255

Le masque de réseau

Le masque de réseau sert à séparer les parties réseau et hôte d'une adresse. On retrouve l'adresse du

réseau en effectuant un ET logique bit à bit entre une adresse complète et le masque de réseau.

L'adresse de diffusion

Page 3: Tutoriel nat pat

Dimitri LEMBOKOLO

3

Chaque réseau possède une adresse particulière dite de diffusion. Tous les paquets avec cette

adresse de destination sont traités par tous les hôtes du réseau local. Certaines informations telles que

les annonces de service ou les messages d'alerte sont utiles à l'ensemble des hôtes du réseau.

Voici le même exemple obtenu avec l'affichage de la configuration des interfaces réseau d'un hôte

avec un système GNU/Linux :

1. Les informations qui nous intéressent sont placées sur cette ligne. L'adresse 10.10.1.4 est

l'adresse IP affectée à l'interface Ethernet eth1 ;

2. L'adresse de diffusion est 10.255.255.255 compte tenu du masque réseau ;

3. Le masque réseau à pour valeur : 255.0.0.0.

Les classes d'adresses

À l'origine, plusieurs groupes d'adresses ont été définis dans le but d'optimiser le cheminement (ou le

routage) des paquets entre les différents réseaux. Ces groupes ont été baptisés classes d'adresses IP.

Ces classes correspondent à des regroupements en réseaux de même taille. Les réseaux de la même

classe ont le même nombre d'hôtes maximum.

Deux adresses interdites

Il est interdit d’attribuer à une machine d’un réseau IP, l’adresse du réseau et l’adresse de broadcast.

Ce qui, pour le réseau 192.168.1.0/24, nous donne :

adresse du réseau : 192.168.1.0

adresse de broadcast : 192.168.1.255

Les classes A, B et C (obsolète)

Historiquement, le réseau Internet était découpé en classes d'adresses :

Classe A :

Le premier bit de ces adresses IP est à 0.

Le masque décimal associé est 255.0.0.0, soit les 8 premiers bits à 1.

Les adresses de ces réseaux ont la forme décimale a.0.0.0 avec a variant 0 à (27-1 =) 127.

Page 4: Tutoriel nat pat

Dimitri LEMBOKOLO

4

Cette classe détermine ainsi (127 - 0 + 1 =) 128 réseaux.

Le nombre de bits restant pour l'adressage des hôtes est de (32 - 8 =) 24.

Chaque réseau de cette classe peut donc contenir jusqu'à 224

-2 = 16 777 214 machines.

L’adresse de classe A 127 est réservée pour les tests de bouclage et les fonctions de diagnostic.

Classe B :

Les 2 premiers bits de ces adresses IP sont à 1 et 0 respectivement.

Le masque décimal associé est 255.255.0.0, soit les 16 premiers bits à 1.

Les adresses de ces réseaux ont la forme décimale a.b.0.0 avec a variant de (27 =) 128 à (2

7 +

26-1 =) 191 et b variant de 0 à 255.

Cette classe détermine ainsi [(191 - 128 + 1) × (255 - 0 + 1)]= 16 384 réseaux.

Le nombre de bits restant pour l'adressage des hôtes est de (32 - 16 )= 16.

Chaque réseau de cette classe peut donc contenir jusqu'à 216

-2 = 65 534 machines.

Classe C :

Les 3 premiers bits de ces adresses IP sont à 1, 1 et 0 respectivement.

Le masque décimal associé est 255.255.255.0, soit les 24 premiers bits à 1.

Les adresses de ces réseaux ont la forme décimale a.b.c.0 avec a variant de (27 + 2

6)= 192 à (2

7

+ 26 + 2

5-1)= 223, b et c variant de 0 et 255 chacun.

Cette classe détermine ainsi [(223 - 192 + 1) × (255 - 0 + 1) × (255 - 0 + 1)] = 2 097 152

réseaux.

Le nombre de bits restant pour l'adressage des hôtes est de (32 - 24 =) 8.

Chaque réseau de cette classe peut donc contenir jusqu'à 28-2 = 254 machines.

Classe D :

Les 4 premiers bits de ces adresses IP sont à 1, 1, 1 et 0 respectivement.

Le masque décimal associé par défaut est 240.0.0.0, soit les 4 premiers bits à 1.

Les adresses de cette classe ont la forme décimale a.b.c.d avec a variant de (27 + 2

6 + 2

5) = 224

à (27 + 2

6 + 2

5 + 2

4-)1 = 239, b, c et d variant de 0 et 255 chacun.

Cette classe est spéciale : elle est réservée à l'adressage de groupes de diffusion multicast.

Classe E :

Les 4 premiers bits de ces adresses IP sont (tous) à 1.

Le masque décimal associé par défaut est 240.0.0.0, soit les 4 premiers bits à 1.

Les adresses de cette classe ont la forme décimale a.b.c.d avec a variant de (27 + 2

6 + 2

5 + 2

4)=

240 à (28-1) = 255, b, c et d variant de 0 et 255 chacun.

Cette classe est également spéciale : elle est actuellement réservée à un adressage de réseaux

de recherche.

Calcul

Nombre total de sous-réseaux = 2nombre de bits empruntés

Nombre total d'hôtes = 2nombre de bits restants

Sous-réseaux utilisables = 2nombre de bits empruntés

- 2

Hôtes utilisables = 2nombre de bits restants

- 2

Page 5: Tutoriel nat pat

Dimitri LEMBOKOLO

5

La notion de classe d'adresses a été rendue obsolète pour l'adressage des nœuds du réseau Internet car

elle induisait une restriction notable des adresses IP affectables par l'utilisation de masques

spécifiques. Les documents RFC 1518 et RFC 1519 publiés en 1993 spécifient une nouvelle norme :

l'adressage CIDR (cf. supra). Ce nouvel adressage précise qu'il est possible d'utiliser un masque

quelconque appliqué à une adresse quelconque. Il organise par ailleurs le regroupement géographique

des adresses IP pour diminuer la taille des tables de routage des principaux routeurs du réseau

Internet.

II. Les réseaux privés et la traduction d'adresses (NAT)

Les réseaux privés se sont développés en «réaction» à deux évolutions de l'Internet : la mauvaise

utilisation de l'espace d'adressage IPv4 et les besoins de sécurisation des réseaux d'entreprises.

Ces évolutions on conduit à la conception de réseaux dits privés n'ayant que peu ou pas d'interfaces

exposées sur le réseau public l'Internet.

Pour planifier l'adressage d'un réseau privé, il faut distinguer deux cas de figure :

Si le réseau privé n'est jamais interconnecté avec d'autres réseaux (notamment l'Internet), on

peut utiliser n'importe quelle adresse.

Si le réseau privé peut être interconnecté avec d'autres réseaux via un routeur, on doit utiliser

les adresses réservées à cet usage. Ces adresses sont données dans le document RFC1918.

Dans la pratique, c'est le second cas de figure que l'on retrouve le plus souvent.

Tableau 2. Réseaux privés

Classe Masque réseau Plage d’dresses internes RFC 1918 Notation CIDR

A 255.0.0.0 10.0.0.0 - 10.255.255.255 10.0.0.0/8

B 255.240.0.0 172.16.0.0 - 172.31.255.255 172.16.0.0/12

C 255.255.0.0 192.168.0.0 - 192.168.255.255 192.168.0.0/16

Généralement, les FAI configurent généralement les routeurs périphériques de façon à empêcher le

transfert du trafic privé. Avec NAT, les sociétés individuelles peuvent attribuer des adresses privées à

certains ou tous leurs hôtes, et utiliser NAT pour leur procurer un accès à Internet.

Présentation des fonctions NAT et PAT

NAT est conçu pour conserver des adresses IP et permettre aux réseaux d’utiliser des adresses IP

privées sur les réseaux internes. Ces adresses internes privées sont traduites en adresses publiques

routables.

Un matériel compatible NAT fonctionne généralement à la périphérie d’un réseau d’extrémité. Quand

un hôte situé à l’intérieur du réseau d’extrémité souhaite émettre vers un hôte de l’extérieur, il

transfère le paquet au routeur périphérique frontière. Ce routeur périphérique frontière effectue le

processus NAT et traduit l’adresse privée interne d’un hôte en une adresse publique externe routable.

Page 6: Tutoriel nat pat

Dimitri LEMBOKOLO

6

Les termes ci-dessous, liés à NAT, ont été définis par Cisco :

Adresse locale interne – L’adresse IP attribuée à un hôte du réseau interne. Il s’agit

généralement d’une adresse privée RFC 1918.

Adresse globale interne – Une adresse IP légitime attribuée par InterNIC ou par le

fournisseur d’accès, et qui représente une ou plusieurs adresses IP locales internes pour le

monde extérieur.

Adresse locale externe – L’adresse IP d’un hôte externe telle que la connaisse les hôtes du

réseau interne.

Adresse globale externe – L’adresse IP attribuée à un hôte du réseau externe. C’est le

propriétaire de l’hôte qui attribue cette adresse.

Principales fonctionnalités NAT et PAT

Les traductions NAT peuvent avoir de nombreuses utilisations et peuvent indifféremment être

attribuées de façon statique ou dynamique.

NAT statique

La fonction NAT statique est conçue pour permettre le mappage biunivoque d’adresses locales et

globales. Ceci s’avère particulièrement utile pour les hôtes qui doivent disposer d’une adresse

permanente, accessible depuis Internet. Ces hôtes internes peuvent être des serveurs d’entreprise ou

des équipements de réseau.

Configuration

Traduction statique :

Etablir le mappage statique :

Router (config)#ip nat inside source static {@ IP locale} {@ IP globale}

Définir les interfaces :

Router (config-if)#ip nat inside L’interface connectée à l’intérieur

Router (config-if)#ip nat outside L’interface connectée à l’extérieur

NAT dynamique

La fonction NAT dynamique est conçue pour mapper une adresse IP privée sur une adresse publique.

Une adresse IP quelconque prise dans un groupe d’adresses IP publiques est attribuée à un hôte du

réseau.

Configuration

Définir une liste d’adresses IP globales à allouer :

Router (config)#ip nat pool {nom_pool} {@ IP début} {@ IP fin} netmask {masque de SR}

Définir une ACL standard autorisant les adresses qui doivent être traduites.

Etablir la traduction dynamique

Router (config)#ip nat inside source list {n° ACL} pool {nom_pool}

Définir les interfaces :

Page 7: Tutoriel nat pat

Dimitri LEMBOKOLO

7

Router (config-if)#ip nat inside L’interface connectée à l’intérieur

Router (config-if)#ip nat outside L’interface connectée à l’extérieur

Remarque :

Cisco recommande de ne pas configurer les listes d’accès référencées par des commandes

NAT à l’aide de la commande permit any. En effet, permit any peut mener la fonction NAT à

consommer trop de ressources routeur, ce qui peut occasionner des problèmes

Surcharge :

Il existe deux façons de configurer la surcharge, en fonction de la manière dont les adresses IP

publiques ont été allouées.

Un FAI ne peut allouer qu’une adresse IP publique à un réseau.

Définir une ACL standard autorisant les @ qui doivent être traduites.

Spécifier l’@ globale, en tant que groupe à utiliser par la surcharge :

Router (config)#ip nat pool {nom_pool} {@ IP début} {@ IP fin} netmask {masque de SR}

Etablir la traduction dynamique :

Router (config)#ip nat inside source list {n° ACL} interface {interface} overload

Définir les interfaces :

Router (config-if)#ip nat inside L’interface connectée à l’intérieur

Router (config-if)#ip nat outside L’interface connectée à l’extérieur

PAT

Avec la traduction d’adresses de ports (Port Address Translation - PAT), plusieurs adresses

IP privées peuvent être mappées sur une adresse IP publique unique.

La fonction PAT utilise des numéros de port source uniques sur l’adresse IP globale interne, de façon

à assurer une distinction entre les traductions.

Le numéro de port est encodé sur 16 bits. Le nombre total d’adresses internes pouvant être

traduites en une adresse externe peut théoriquement atteindre les 65 536 par adresse IP.

De façon plus réaliste, le nombre de port pouvant être attribués à une adresse IP unique

avoisine les 4000.

déjà utilisé, PAT attribue le premier numéro de port disponible en commençant au

début du groupe de ports approprié.

configurées, PAT sélectionne l’adresse IP suivante pour tenter d’allouer de

nouveau le numéro du port source initial.

Page 8: Tutoriel nat pat

Dimitri LEMBOKOLO

8

III. Statique ou dynamique ?

Quand faire du NAT statique ?

Nous avons vu que la NAT statique permettait de rendre disponible une machine sur Internet, mais

qu'il fallait par contre une adresse IP pour que ce serveur soit joignable.

Il est donc utile d'utiliser la NAT statique quand vous voulez rendre une application disponible sur

Internet, comme un serveur web, mail ou un serveur FTP.

Quand faire du NAT dynamique ?

La NAT dynamique permet d'une part de donner un accès à Internet à des machines possédant des

adresses privées, et d'autre part d'apporter un petit plus en terme de sécurité.

Elle est donc utile pour économiser les adresse IP, donner un accès à Internet à des machines qui n'ont

pas besoin d'être joignables de l'extérieur (comme la plupart des utilisateurs). D'autre part, même

quand on possède assez d'adresses IP, il est souvent préférable de faire de la NAT dynamique pour

rendre les machines injoignables directement de l'extérieur.

Par exemple, pour un usage personnel de partage de l'ADSL ou du câble, on utilise souvent la

NAT dynamique pour partager son accès, étant donné que les machines n'ont pas besoin d'être jointes

de l'extérieur.

Puis-je combiner ces deux méthodes ?

Oui, et c'est même souvent la meilleure solution lorsque l'on a à la fois des machines offrant un

service, et d'autres qui n'ont besoin que de se connecter à Internet.

Ainsi, on économisera les adresses IP grâce aux machines NATtées dynamiquement, et on utilisera

exactement le bon nombre d'adresses IP publiques dont on a besoin.

Il est donc très intéressant de combiner ces deux méthodes.

IV. La sécurité et la NAT

La NAT dynamique permet-elle d'améliorer ma sécurité ?

La NAT dynamique permet de rendre les machines d'un réseau local inaccessibles directement de

l'extérieur, on peut donc voir cela comme une sécurité supplémentaire. Mais cela n'est pas suffisant et

il est indispensable d'utiliser un filtrage si l'on veut obtenir un bon niveau de sécurité.

La NAT dynamique seule ne peut pas être considéré comme une sécurité suffisante

Est-ce utile pour la sécurité d'utiliser un proxy ?

Un proxy travaille au niveau 7 du modèle OSI, c'est à dire qu'il est capable d'interpréter et de modifier

les informations du protocole sur lequel il travaille. Ainsi, il peut vérifier le contenu de ce qui est reçu

de la part du serveur et en interdire ou modifier le contenu selon la politique choisie.

L'utilisation d'un proxy pour des protocoles critiques est donc souvent utile si on veut avoir une bonne

vision de ce qui se passe.

Page 9: Tutoriel nat pat

Dimitri LEMBOKOLO

9

La NAT est-elle compatible avec IPSEC ?

Si on veut être précis, la réponse est oui. Cependant, la norme IPSEC ayant différentes

implémentations, ce n'est pas toujours le cas. D'ailleurs la plupart des constructeurs ont créé leurs

propres solutions IPSEC pour traverser de la NAT.

Le problème vient de l'encryptions de l'en-tête IP par les participants au tunnel IPSEC. Si l'adresse IP

est modifiée pendant le trajet du paquet, elle ne sera pas la même à l'arrivée que celle qui a été

encryptée au départ, et après comparaison, le paquet sera détruit.

Cependant, en se plaçant en mode ESP et en faisant du tunneling, c'est la totalité du paquet qui est

encryptée, et un nouvel en-tête est ajouté à celui-ci. Ainsi, la comparaison ne se fera pas sur l'en-tête

modifiée, mais sur celle contenue dans les données du paquet.

Utilitaires pour faire de la NAT

10.1 10.1 - Sous Windows

Voici quelques noms de produits qui permettent entre autres de faire de la NAT, une présentation plus

précise sera peut-être faite par la suite si cela s'avère utile.

Je n'ai pas testés ces produits, ;-)

Wingate, winroute lite, NAT32, TCPrelay...

10.2 10.2 - Sous Unix

IPchains, ipfilter, netfilter...

Page 10: Tutoriel nat pat

Dimitri LEMBOKOLO

10

Mise en œuvre

Architecture

NAT statique (Routeur CISCO 3700, IOS : c3745-ipvoicek9-mz.124-9.T)

Sur le Routeur NAT (RouteurNAT)

hostname RouteurNAT

!

interface FastEthernet0/0

ip address 10.10.1.254 255.255.255.0

ip nat inside

! --- Définit Ethernet 0/0 avec une adresse IP et déclarer l’interface interne du NAT !

interface Serial0/0

ip address 192.1.95.241 255.255.255.240

ip nat outside

clock rate 56000

! --- Définit Serial 0/0 avec une adresse IP et déclarer l’interface externe du NAT

!

ip nat inside source static 10.10.1.3 192.1.95.243

ip nat inside source static 10.10.1.4 192.1.95.244

!

! ---Etats --- que tout paquet reçu sur l'interface à l'intérieur avec une adresse IP source de --- 10.10.1.3 est traduit par 192.1.95.243. ! ---Etats --- que tout paquet reçu sur l'interface à l'intérieur avec une adresse IP source de --- 10.10.1.4 est traduit par 192.1.95.244

Page 11: Tutoriel nat pat

Dimitri LEMBOKOLO

11

Sur le Routeur Internet (RouteurInternet)

hostname RouteurInternet

!

interface FastEthernet0/0

!

interface Serial0/0

ip address 192.1.95.242 255.255.255.240

Sur les Machines

Page 12: Tutoriel nat pat

Dimitri LEMBOKOLO

12

Vérification

Visualiser les translations d'adresses :

Activer le debug NAT :

Page 13: Tutoriel nat pat

Dimitri LEMBOKOLO

13

Architecture

NAT statique (Routeur CISCO 7200, IOS : c7200-advipservicesk9-mz.124-2.T)

Sur le Routeur NAT (RouteurNAT)

hostname R1

!

interface FastEthernet1/0

ip address 10.10.1.1 255.0.0.0

ip nat inside !---- Déclarer l’interface interne du NAT---: !

interface Serial2/0

ip address 192.1.65.241 255.255.255.240

ip nat outside !----Déclarer l’interface externe du NAT--- !

clock rate 54120

!

!

!---- Déclaration de votre pool d'adresses publiques--- ip nat pool tpnat 192.1.65.243 192.1.65.254 netmask 255.255.255.240

!

!

!---- Configurer l'ACL qui autorise les réseaux internes à utiliser le NAT---- ip nat inside source list 7 pool tpnat

access-list 7 permit 10.0.0.0 0.255.255.255

Page 14: Tutoriel nat pat

Dimitri LEMBOKOLO

14

!

!--- Déclarer le PAT sur l'interface de sortie --- ip nat inside source list 7 interface Serial2/0 overload

!

!

ip nat translation timeout 7200 !--- Temps en seconde ---

Sur le Routeur Internet (RouteurInternet)

hostname R2

!

interface Serial1/0

ip address 192.1.65.242 255.255.255.240

!

Sur les machines

Page 15: Tutoriel nat pat

Dimitri LEMBOKOLO

15

Vérification

Ping routeur R1 vers les machines

Page 16: Tutoriel nat pat

Dimitri LEMBOKOLO

16

Ping machine vers routeurs

Ping routeur R2 vers R1

Page 17: Tutoriel nat pat

Dimitri LEMBOKOLO

17

Afficher les statistiques de traduction

Conclusion

La NAT est aujourd'hui un élément important en réseau étant donné son énorme déploiement à

travers le monde suite à l'annonce de la pénurie d'adresses IPv4. Certes, il y a le IPv6 pour palier à ce

problème mais très peu l’utilise dans la sous régions.

J'ai essayé de rendre la compréhension de cette technique la plus accessible possible.

Cependant, il faut impérativement avoir quelques notions en réseau pour pouvoir bien comprendre les

points délicats qu'elle comporte.

Il y a et il y aura sûrement encore beaucoup de choses à dire sur le sujet. Vos remarques sont donc

encore et toujours les bienvenues, aussi bien pour y ajouter des idées, que pour enlever le superflu.