objectif
Rediriger un port de l’IP publique vers une machine interne et NATer les flux sortants.
code minimal
sudo nft add table ip nat
sudo nft add chain ip nat prerouting { type nat hook prerouting priority -100; }
sudo nft add chain ip nat postrouting { type nat hook postrouting priority 100; }
# DNAT: 203.0.113.10:443 -> 10.0.0.10:443
sudo nft add rule ip nat prerouting ip daddr 203.0.113.10 tcp dport 443 dnat to 10.0.0.10:443
# masquerade sur l'interface wan0
sudo nft add rule ip nat postrouting oifname "wan0" masquerade
utilisation
# vérifier la table nat
sudo nft list table ip nat
# tester depuis l'extérieur
curl -I https://203.0.113.10/
variante(s) utile(s)
# redirection de plage de ports
sudo nft add rule ip nat prerouting ip daddr 203.0.113.10 tcp dport 30000-30100 dnat to 10.0.0.10
# SNAT vers une IP spécifique si plusieurs IP publiques
sudo nft add rule ip nat postrouting oifname "wan0" ip saddr 10.0.0.0/24 snat to 203.0.113.10
notes
- chargez aussi des règles
filterpour autoriser le trafic redirigé. - ajustez interfaces et adresses à votre environnement.
- la redirection locale peut nécessiter
sysctl net.ipv4.ip_forward=1.