Fiche NAT / PAT : traduction d’adresses et redirection de ports (nftables + UFW)

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

TypeFonction
NATtraduction IP
PATtraduction 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

FichierRôle
/etc/nftables.confNAT nftables
/etc/ufw/before.rulesNAT UFW
/etc/sysctl.confroutage
/etc/default/ufwforwarding
nft list rulesetrè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.


Retour en haut