objectif
Rediriger le trafic entrant sur l’IP publique vers une machine interne en sécurité.
code minimal
# variables
PUB_IF=eth0
DST_IP=192.0.2.10
DST_PORT=8080
SRC_PORT=80
# activer le forward IP
sudo sysctl -w net.ipv4.ip_forward=1
# DNAT vers la cible interne
sudo iptables -t nat -A PREROUTING -i "$PUB_IF" -p tcp --dport "$SRC_PORT" -j DNAT --to-destination "$DST_IP:$DST_PORT"
# autoriser le forward et masquerade la sortie
sudo iptables -A FORWARD -p tcp -d "$DST_IP" --dport "$DST_PORT" -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o "$PUB_IF" -j MASQUERADE
utilisation
# tester depuis l'extérieur
curl -sS http://VOTRE_IP/ -I
variante(s) utile(s)
# restreindre à une source spécifique
sudo iptables -A FORWARD -p tcp -s 198.51.100.0/24 -d "$DST_IP" --dport "$DST_PORT" -j ACCEPT
notes
- préférez nftables si disponible; iptables demeure répandu.
- persistez vos règles via iptables-save/restore (voir snippet dédié).