← Retour au portail

Fiche 8 - NAT et PAT — Principes et configuration

Comprendre le NAT et le PAT, leur rôle dans les réseaux modernes, et les configurer avec iptables et pfSense.

Intermédiaire — SISR 1ère année ⏱️ 20 min 📁 Réseau

🎯 Objectifs de la fiche

  1. Principe du NAT — Traduction d'adresses, types de NAT
  2. PAT (Port Address Translation) — Masquerade, partage d'une seule IP publique
  3. NAT statique et redirection de port — DNAT, port forwarding
  4. Configurer le NAT avec iptables — Masquerade, DNAT sous Linux
  5. NAT dans pfSense — Outbound NAT, Port Forward

Prérequis

Connaître les bases de l'adressage IP (RFC 1918, masques). Notions sur le routage. Pour la partie pratique, Debian avec deux interfaces réseau ou pfSense.

1. Principe du NAT

Le NAT (Network Address Translation) modifie les adresses IP dans les en-têtes des paquets lors de leur transit par un routeur. Il permet aux machines du réseau privé (adresses RFC 1918) d'accéder à Internet via une seule adresse IP publique.

TypeDirectionDescriptionUsage
SNAT (Source NAT)LAN → WANModifie l'IP source — les machines privées sortent avec l'IP publiqueAccès Internet depuis le LAN
DNAT (Destination NAT)WAN → LANModifie l'IP destination — redirige le trafic entrant vers une machine internePort forwarding, DMZ
PAT / MasqueradeLAN → WANSNAT dynamique — partage une IP publique entre de nombreux clients via les portsBox Internet, pfSense
NAT 1:1 (Full NAT)WAN ↔ LANAssociation complète d'une IP publique avec une IP privéeServeurs en DMZ

2. Le PAT (Port Address Translation)

Le PAT est la forme de NAT la plus courante. Il permet à des centaines de machines de partager une seule adresse IP publique en distinguant les connexions grâce aux numéros de port. C'est ce que fait votre box Internet à la maison.

Exemple de table PAT (simplifiée) :

IP privée       Port src  IP publique    Port PAT  Destination
192.168.1.10    45231  →  203.0.113.1    60001  →  8.8.8.8:53
192.168.1.11    45232  →  203.0.113.1    60002  →  8.8.8.8:53
192.168.1.12    52100  →  203.0.113.1    60003  →  142.250.75.100:443

Le routeur NAT remplace l'IP source privée par l'IP publique + un port unique.
Quand la réponse arrive sur le port 60001, il sait la renvoyer à 192.168.1.10:45231.

3. Configurer le NAT sous Linux (iptables)

3.1 Activer le routage IP

# Activer temporairement le routage IP
sudo sysctl -w net.ipv4.ip_forward=1

# Rendre permanent
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.d/99-nat.conf
sudo sysctl -p /etc/sysctl.d/99-nat.conf

3.2 NAT Masquerade (PAT) — LAN vers Internet

# eth0 = interface WAN (Internet), eth1 = interface LAN

# Règle MASQUERADE : les machines du LAN sortent avec l'IP de eth0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Autoriser le trafic LAN → WAN
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# Autoriser les réponses (connexions établies)
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Rendre les règles persistantes
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

3.3 Port Forwarding (DNAT) — Redirection de port

# Rediriger le port 80 entrant (WAN) vers le serveur web interne (192.168.1.10:80)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
  -j DNAT --to-destination 192.168.1.10:80

# Autoriser ce trafic dans la chaîne FORWARD
sudo iptables -A FORWARD -i eth0 -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT

# Voir les règles NAT actives
sudo iptables -t nat -L -n -v

4. NAT dans pfSense

4.1 NAT sortant (Outbound NAT)

Firewall > NAT > Outbound

Mode par défaut : Automatic Outbound NAT
(pfSense crée automatiquement les règles MASQUERADE pour tous les réseaux locaux)

Pour personnaliser : passer en mode "Hybrid" ou "Manual"
Ajouter une règle :
  Interface   : WAN
  Source      : 192.168.10.0/24 (réseau LAN)
  Destination : any
  Translation : Interface address (IP WAN)

4.2 Redirection de port (Port Forward)

Firewall > NAT > Port Forward > Add

Interface          : WAN
Protocol           : TCP
Destination        : WAN address
Destination port range : 80
Redirect target IP : 192.168.1.10
Redirect target port : 80
Description        : Serveur Web HTTP
→ Save + Apply Changes

pfSense crée automatiquement la règle de pare-feu correspondante.
Que fait le MASQUERADE dans iptables ?
  • Bloque les connexions entrantes
  • Remplace l'IP source privée par l'IP publique de l'interface de sortie
  • Redirige les connexions vers un serveur interne
  • Chiffre le trafic réseau

✅ Réponse : Remplace l'IP source privée par l'IP publique de l'interface de sortie

Quel paramètre doit être activé pour qu'une machine Linux fasse du routage/NAT ?
  • net.ipv4.tcp_forward
  • net.ipv4.ip_forward
  • net.ipv4.nat_enable
  • kernel.routing

✅ Réponse : net.ipv4.ip_forward

Qu'est-ce que le DNAT ?
  • La traduction de l'adresse source
  • La traduction de l'adresse destination — utilisé pour le port forwarding
  • Le NAT dynamique avec PAT
  • Le NAT entre deux réseaux privés

✅ Réponse : La traduction de l'adresse destination — utilisé pour le port forwarding

Comment le PAT distingue-t-il les connexions de plusieurs clients partageant une IP publique ?
  • Par l'adresse MAC
  • Par les numéros de port source
  • Par les numéros de séquence TCP
  • Par le VLAN

✅ Réponse : Par les numéros de port source

Dans pfSense, où configure-t-on le NAT sortant ?
  • Firewall > Rules
  • Interfaces > WAN
  • Firewall > NAT > Outbound
  • Services > DHCP

✅ Réponse : Firewall > NAT > Outbound