Sommaire
Comprendre le NAT et le PAT, leur rôle dans les réseaux modernes, et les configurer avec iptables et pfSense.
🎯 Objectifs de la fiche
- Principe du NAT — Traduction d'adresses, types de NAT
- PAT (Port Address Translation) — Masquerade, partage d'une seule IP publique
- NAT statique et redirection de port — DNAT, port forwarding
- Configurer le NAT avec iptables — Masquerade, DNAT sous Linux
- 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.
| Type | Direction | Description | Usage |
|---|---|---|---|
| SNAT (Source NAT) | LAN → WAN | Modifie l'IP source — les machines privées sortent avec l'IP publique | Accès Internet depuis le LAN |
| DNAT (Destination NAT) | WAN → LAN | Modifie l'IP destination — redirige le trafic entrant vers une machine interne | Port forwarding, DMZ |
| PAT / Masquerade | LAN → WAN | SNAT dynamique — partage une IP publique entre de nombreux clients via les ports | Box Internet, pfSense |
| NAT 1:1 (Full NAT) | WAN ↔ LAN | Association complète d'une IP publique avec une IP privée | Serveurs 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.
- ☐ Différence SNAT / DNAT / PAT maîtrisée
- ☐ ip_forward activé sur le routeur Linux
- ☐ Règle MASQUERADE configurée
- ☐ Trafic LAN vers Internet fonctionnel via NAT
- ☐ Port forwarding testé (accès depuis WAN vers serveur interne)
- ☐ iptables -t nat -L affiche les règles NAT
Que fait le MASQUERADE dans iptables ?
✅ 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 ?
✅ Réponse : net.ipv4.ip_forward
Qu'est-ce que le DNAT ?
✅ 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 ?
✅ Réponse : Par les numéros de port source
Dans pfSense, où configure-t-on le NAT sortant ?
✅ Réponse : Firewall > NAT > Outbound
- RFC 3022 — Traditional IP NAT — https://www.rfc-editor.org/rfc/rfc3022
- iptables NAT HOWTO
- Documentation NAT pfSense