Pour les étudiants en BTS CIEL ou SIO, le NAT est une notion essentielle pour :
- permettre l’accès Internet à un réseau privé
- publier des services internes
- comprendre le fonctionnement des routeurs et box
Cette fiche couvre :
- NAT (SNAT / MASQUERADE)
- PAT (DNAT / port forwarding)
- configuration avec nftables
- configuration avec UFW

Configuration NAT / PAT (nftables) — bloc unique
# =========================================================
# ACTIVER LE ROUTAGE (IP FORWARD)
# =========================================================
echo 1 > /proc/sys/net/ipv4/ip_forward
# Persistance
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
# =========================================================
# CONFIGURATION NFTABLES
# =========================================================
nano /etc/nftables.conf
table ip nat {
chain postrouting {
type nat hook postrouting priority 100;
# NAT sortant
oif "eth0" masquerade
}
chain prerouting {
type nat hook prerouting priority 0;
# PAT HTTP
tcp dport 80 dnat to 192.168.1.10:80
# PAT SSH
tcp dport 2222 dnat to 192.168.1.10:22
}
}
# =========================================================
# ACTIVER
# =========================================================
systemctl enable nftables
systemctl restart nftables
nft list ruleset
Configuration NAT / PAT avec UFW
UFW ne gère pas directement le NAT via commandes
il faut modifier les fichiers internes
Configuration UFW — bloc unique
# =========================================================
# ACTIVER ROUTAGE
# =========================================================
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
# =========================================================
# CONFIG NAT
# =========================================================
nano /etc/ufw/before.rules
# Ajouter AVANT la ligne *filter :
*nat
:POSTROUTING ACCEPT [0:0]
# NAT sortant
-A POSTROUTING -o eth0 -j MASQUERADE
# PAT HTTP
-A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
# PAT SSH
-A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.10:22
COMMIT
# =========================================================
# AUTORISER LE FORWARD
# =========================================================
nano /etc/default/ufw
# Modifier :
DEFAULT_FORWARD_POLICY="ACCEPT"
# =========================================================
# OUVERTURE DES PORTS
# =========================================================
ufw allow 80/tcp
ufw allow 2222/tcp
# =========================================================
# REDEMARRER UFW
# =========================================================
ufw disable
ufw enable
Explication détaillée
NAT (SNAT / MASQUERADE)
- traduit l’adresse IP source
- utilisé pour accès Internet
Exemple :
masquerade
PAT (DNAT / redirection)
- redirige un port vers une machine interne
Exemple :
tcp dport 80 → 192.168.1.10:80
Différence
| Type | Fonction |
|---|---|
| NAT | traduction IP |
| PAT | traduction IP + port |
Cas pratiques
Accès Internet pour un LAN
-A POSTROUTING -o eth0 -j MASQUERADE
Publier un serveur web
-A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.10:80
Accès SSH sécurisé
-A PREROUTING -p tcp --dport 2222 -j DNAT --to 192.168.1.10:22
Vérification
nft list ruleset
ufw status verbose
Bonnes pratiques
- activer IP forwarding
- limiter les ports exposés
- utiliser fail2ban en complément
- éviter d’exposer SSH directement
- documenter les redirections
Récapitulatif des fichiers importants
| Fichier | Rôle |
|---|---|
| /etc/nftables.conf | NAT nftables |
| /etc/ufw/before.rules | NAT UFW |
| /etc/sysctl.conf | routage |
| /etc/default/ufw | forwarding |
| nft list ruleset | règles nftables |
| ufw status | état firewall |
Conclusion
Le NAT et le PAT permettent :
- de connecter un réseau privé à Internet
- de publier des services internes
- de contrôler les flux
La combinaison :
- nftables ou UFW
- fail2ban
- bonnes pratiques
constitue une base solide de sécurité réseau.
