www.MC-Group.fr

 
 
   

Forum
Chat
Liens
Dossier / Service
Actualité




  

   Introduction

Les traducteurs d'adresses réseau, ou NAT, permettent aux ordinateurs de réseaux privés d'accéder à des ressources Internet sans être directement accessibles par Internet. Les NAT permettent la réutilisation de l'espace d'adresses IPv4 privées (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) de réseaux privés, évitant l'utilisation d'adresses IPv4 publiques pour chaque nœud souhaitant accéder aux ressources Internet. Bien que l'utilisation des NAT apporte son lot d'avantages, elle comporte également des inconvénients.

À l'origine, Internet était conçu pour un espace d'adresses uniques globales. Toutes les interfaces qui se connectent à Internet possèdent une adresse unique basée sur le sous-réseau auquel l'interface était reliée. Quel que soit le mode de regroupement des sous-réseaux sur les réseaux privés directement reliés à Internet, l'interface est toujours accessible via son adresse unique globale.

L'utilisation de NAT et de l'espace d'adresses privées constitue une violation d'un espace d'adresses uniques globales. L'espace d'adresses privées est réutilisé pour chaque réseau utilisant un NAT. Cela signifie que plusieurs interfaces connectées à différents réseaux peuvent présenter la même adresse. Bien que ces réseaux adressés de manière privée ne soient pas visibles depuis Internet, ils peuvent l'être entre eux, et combiner plusieurs réseaux privés en un seul réseau peut entraîner des conflits d'adresses (plusieurs sous-réseaux présentant le même préfixe d'adresse ou des entrées de table de routage ambiguës).

Par exemple, la Société A et la Société B utilisent l'espace d'adresses privées 10.0.0.0/8. Si les Sociétés A et B fusionnent, il est fort probable que des conflits d'adresses surviennent. La société fusionnée doit alors renuméroter une partie du réseau combiné, ce qui entraîne une perte de temps et d'argent. Dans ce cas, l'utilisation du protocole DHCP (Dynamic Host Configuration Protocol) est une solution pour la plupart des nœuds IP basés sur des hôtes, mais les nœuds configurés de façon statique, tels que les serveurs, doivent être reconfigurés manuellement et l'infrastructure de routage doit être repensée.

Fonctionnement des NAT

Un NAT de base, fonctionne comme suit :

Pour les paquets sortants, le NAT transforme l'adresse source privée en adresse source publique et définit la valeur du numéro de port TCP (Transmission Control Protocol) ou UDP (User Datagram Protocol) source. Pour les paquets entrants, il modifie l'adresse publique de destination en lui donnant la valeur de l'adresse privée d'origine et rétablit la valeur d'origine du numéro de port TCP ou UDP de destination.

Sur le NAT, une table de traduction facilite le mappage entre les adresses publiques et privées et les numéros de port TCP/UDP. Le NAT rejette tout trafic entrant non destiné à une adresse qui lui est attribuée et ne correspondant à aucune entrée de la table de traduction.

Lorsqu'un ordinateur situé derrière un NAT, c'est-à-dire connecté à un sous-réseau séparé d'Internet par le NAT, établit une communication avec un nœud sur Internet, le NAT crée automatiquement l'entrée de table de traduction appropriée pour permettre le transfert du trafic de réponse vers cet ordinateur. C'est le cas, par exemple, lorsqu'un client Internet navigue sur le Web. Le trafic DNS (Domain Name System) et HTTP (Hypertext Transfer Protocol) initié par l'ordinateur client crée automatiquement des entrées de table de traduction, permettant à cet ordinateur d'accéder à des ressources Internet sans connexion directe accessible via Internet. Par conséquent, les ordinateurs clients utilisant un NAT peuvent généralement accéder sans problèmes à des ordinateurs serveur directement accessibles sur Internet.

Pour que des ordinateurs serveur situés derrière un NAT soient accessibles depuis Internet, vous devez configurer le NAT avec des entrées de table de traduction statiques.

NAT et sécurité

Dans la mesure où les NAT rejettent tout trafic ne correspondant à aucune entrée de table de traduction, ils sont considérés comme des périphériques de sécurité. Toutefois, ils ne remplacent pas les pare-feu. Il existe généralement deux ensembles de ports TCP et UDP ouverts sur le NAT :

L'ensemble des ports correspondant au trafic traduit, comme spécifié dans la table de traduction, c'est-à-dire les ports dynamiques ouverts par des clients situés derrière le NAT et les ports statiques configurés pour des serveurs situés derrière le NAT.

L'ensemble des ports correspondant aux applications et services s'exécutant sur le NAT.

Les ports statiques configurés pour des serveurs situés derrière le NAT et les ports correspondant aux applications et services s'exécutant sur le NAT rendent le NAT vulnérable aux attaques. Les ports dynamiques ne sont pas aussi dangereux parce qu'il est difficile pour un intrus de prévoir leur ouverture. Si le NAT est un ordinateur, et non un périphérique dédié tel qu'une passerelle Internet, il est vulnérable aux attaques.

Par conséquent, il est recommandé d'utiliser un NAT conjointement avec un pare-feu, et il est préférable que les clients du réseau privé utilisent également des pare-feu basés sur des hôtes pour empêcher la propagation de logiciels malveillants sur ce réseau.

Problèmes liés à l'utilisation d'un serveur derrière un NAT

Comme décrit précédemment dans cet article, les ordinateurs clients utilisant un NAT qui accèdent à des ordinateurs serveur connectés à Internet ne rencontrent généralement aucun problème. Toutefois, des problèmes peuvent survenir lorsque des serveurs sont situés derrière un NAT dans les situations suivantes :

Applications multi-utilisateurs

Applications d'homologue à homologue

NAT-T IPSec

Applications multi-utilisateurs

Les applications multi-utilisateurs mettent en œuvre plusieurs ordinateurs qui acceptent de communiquer entre eux à des fins spécifiques via un serveur central. Il peut s'agir, par exemple, d'une application informatique de collaboration ou d'un jeu réseau à plusieurs participants. Lorsque le serveur central et certains des clients sont situés derrière le NAT, l'utilisation d'adresses privées peut entraîner des problèmes de configuration.

Par exemple, un serveur informatique de collaboration est situé derrière un NAT et certains clients sont situés derrière le même NAT alors que d'autres se trouvent sur Internet. Puisque l'espace d'adresses privées utilisé et le serveur se situent derrière le NAT, vous devez configurer les éléments suivants :

Les entrées de table de traduction statiques qui mappent les adresses publiques du NAT et des numéros de port de l'application serveur à l'adresse privée du serveur et des numéros de port de l'application serveur.

Pour que les clients connectés à Internet accèdent au serveur à l'aide de son nom DNS, vous devez ajouter des entrées au DNS Internet pour que le nom du serveur (par exemple : collabsrv.exemple.com) puisse être résolu en l'adresse publique du NAT.

Pour que les clients connectés au réseau privé accèdent au serveur à l'aide de son nom DNS, vous devez ajouter des entrées au DNS du réseau privé pour que le nom du serveur puisse être résolu en l'adresse privée du serveur.

La configuration du DNS est inutile si vous utilisez l'adresse publique ou privée en cours du serveur lorsque les ordinateurs clients établissent la connexion. Toutefois, l'utilisation d'adresses IPv4 pour les connexions aux serveurs est complexe pour les utilisateurs finaux, et vous devez demander aux clients Internet d'utiliser l'adresse publique et aux clients derrière le NAT d'utiliser l'adresse privée.

Même lorsque cette configuration est en place, les clients derrière le NAT et ceux connectés à Internet ne s'entendent pas sur les adresses IPv4 du serveur. Si l'application informatique de collaboration doit utiliser, pour le serveur, la même adresse IPv4 pour la configuration, la synchronisation ou la sécurité, des problèmes de communication peuvent survenir.

Applications d'homologue à homologue

Les NAT entraînent également des problèmes au niveau des applications d'homologue à homologue. Dans le modèle de communication d'homologue à homologue, les homologues peuvent agir en tant que client ou serveur et communiquer en s'envoyant directement des paquets. Si un homologue se situe derrière un NAT, deux adresses lui sont associées : l'adresse privée et l'adresse publique. Supposons une configuration simple dans laquelle des NAT peuvent provoquer des problèmes au niveau des applications d'homologue à homologue. La figure suivante illustre un réseau privé bordé par un NAT.

Private Network

Dans une application d'homologue à homologue s'exécutant sur tous les homologues, Homologue 1 peut démarrer une session avec Homologue 2 (accessible directement sur son sous-réseau) et Homologue 3. Toutefois, Homologue 1 ne peut pas informer Homologue 3 de l'adresse publique d'Homologue 2 car il ne la connaît pas. En outre, Homologue 3 ne peut pas démarrer de session avec Homologue 1 ou Homologue 2 sans configurer manuellement le NAT à l'aide d'une entrée de table de traduction statique afin de traduire les paquets de demandes de connexion entrants envoyés à l'adresse privée et au port d'Homologue 1 ou Homologue 2. Même avec l'entrée de table de traduction statique, Homologue 3 ne peut pas démarrer de session avec Homologue 1 et Homologue 2 simultanément parce que les deux hôtes utilisent la même adresse IPv4 publique et le même numéro de port d'application.

Pire, il arrive souvent que des homologues Internet soient situés derrière deux NAT différents. Par exemple, dans la figure précédente, Homologue 3 est également situé derrière un NAT. Pour garantir que l'application d'homologue à homologue puisse fonctionner dans n'importe quelle configuration utilisant un NAT, elle doit être modifiée pour devenir compatible NAT, ce qui la rend plus complexe.

NAT-T IPSec

NAT-T (NAT traversal) IPSec (Internet Protocol security) permet aux homologues IPSec situés derrière des NAT de détecter la présence de NAT, de négocier des associations de sécurité (AS) IPSec et d'envoyer des données protégées par ESP (Encapsulating Security Payload) même en cas de modification des adresses des paquets IPv4 protégés par IPSec.

NAT-T IPSec est pris en charge par Microsoft® Windows Server™ 2003, Service Pack 2 Windows XP (SP2), Service Pack 1 Windows® XP et Windows 2000. Toutefois, en raison du comportement d'IPSec et des NAT, Windows XP SP2, par défaut, ne prend plus en charge l'établissement d'AS NAT-T IPSec avec des serveurs situés derrière des NAT afin d'éviter tout risque pour la sécurité. La figure ci-dessous fournit un exemple de configuration.

Private Network 2

Pour garantir que Serveur 1 est accessible derrière le NAT pour le trafic IPSec, vous devez configurer le NAT avec des entrées de traduction statiques qui mappent le trafic IKE (Internet Key Exchange) (à l'aide du port UDP 500) et NAT-T IPSec (à l'aide du port UDP 4500) à Serveur 1.

Dans cette configuration, la situation suivante se produit :

1.

Client 1, situé sur Internet, utilise NAT-T IPSec pour établir des AS bidirectionnelles avec Serveur 1. Le NAT transmet le trafic IKE et NAT-T IPSec entre Serveur 1 et Client 1 en raison des entrées de table de traduction statiques configurées manuellement.

2.

Client 2 utilise NAT-T IPSec pour établir des AS bidirectionnelles avec Client 1. Lorsque Client 2 établit une communication avec Client 1, le NAT crée un ensemble d'entrées de table de traduction dynamiques, permettant l'échange du trafic IKE et NAT-T IPSec entre Client 2 et Client 1.

3.

Si le NAT supprime les entrées de table de traduction dynamiques créées par Client 2 et que Client 1 se voit obligé de rétablir les AS avec Client 2, la situation suivante peut se produire :

Client 1 envoie le trafic IKE à l'adresse IP publique du NAT et au port UDP 500. Puisque ce trafic correspond à l'entrée de table de traduction statique du trafic IKE vers Serveur 1, le NAT transmet le trafic IKE au Serveur 1 et non à Client 2. Dans la mesure où Client 1 rétablit les AS, il débute la négociation de mode principal IPSec et pourrait finir par établir des AS avec Serveur 1 plutôt qu'avec Client 2. Le risque pour la sécurité réside dans le fait que Client 1 peut établir des AS bidirectionnelles avec un homologue non souhaité.

Cette situation n'est pas courante, mais pour l'éviter, le comportement par défaut des ordinateurs exécutant Windows XP avec SP2 est d'éviter d'établir toute AS basée sur NAT-T IPSec avec des serveurs situés derrière un NAT.

Pour modifier le comportement de NAT-T IPSec sur un ordinateur exécutant Windows XP avec SP2, vous devez créer et définir la valeur de Registre AssumeUDPEncapsulationContextOnSendRule. Toutefois, vous devez au préalable contacter l'administrateur réseau ou le personnel chargé de la sécurité.

Pour ajouter et configurer la valeur de Registre AssumeUDPEncapsulationContextOnSendRule, procédez comme suit :

1.

À partir du Bureau de Windows XP, cliquez sur Démarrer, puis sur Exécuter. Tapez regedit.exe, puis cliquez sur OK.

2.

Dans l'arborescence de la console de l'Éditeur du Registre, ouvrez la clé de Registre suivante : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSEC

3.

Dans le menu Edition, cliquez sur Ajouter une valeur, puis ajoutez la valeur suivante :

Value Name: AssumeUDPEncapsulationContextOnSendRule
Data Type: REG_DWORD
Data Value: 0, 1, or 2

                                                                            

0 = aucune AS ne peut être établie avec des serveurs situés derrière des NAT (valeur par défaut)

1 = des AS peuvent être établies avec des serveurs situés derrière des NAT à condition que le client possède une adresse publique

2 = des AS peuvent être établies si le client et les serveurs sont situés derrière des NAT (comportement pour Windows XP avec Service Pack 1 et Windows XP sans Service Pack)

Remarque : La valeur AssumeUDPEncapsulationContextOnSendRule respecte la casse.

Vous devez redémarrer Windows XP avec SP2 pour que la configuration prenne effet.

Définir la valeur AssumeUDPEncapsulationContextOnSendRule sur 1 ou 2 permet à un ordinateur exécutant Windows XP avec SP2 de se connecter à un serveur situé derrière un NAT, notamment un serveur de réseau privé virtuel (VPN, Virtual Private Network) exécutant Windows Server 2003.

Résumé

Les NAT représentent un moyen de fortune pour allonger la durée de vie de l'espace d'adresses IPv4 publiques et ne constituent en aucune façon une solution au problème de cet espace. Ils conviennent davantage à la réutilisation de l'espace d'adresses privées pour les ordinateurs clients. La plupart des ordinateurs serveur requièrent encore des adresses publiques non ambiguës. Les homologues d'une communication d'homologue à homologue peuvent être placés derrière un NAT. Toutefois, pour son utilisation générale, il convient de modifier l'application d'homologue à homologue lorsqu'il existe plusieurs homologues derrière un seul NAT ou lorsque des homologues sont séparés par plusieurs NAT, et ce, à des fins de compatibilité NAT. Un serveur peut être placé derrière un NAT. Cependant, le NAT doit être configuré manuellement à l'aide d'une entrée de table de traduction statique pour traduire les paquets de demandes de connexion entrants en port et adresse privée du serveur. Pour NAT-T IPSec, cette entrée de table de traduction statique peut provoquer des résultats non souhaités dans certaines configurations.