Existem muitos guias sobre como instalar o NAT no Linux com "iptables". Eles contêm uma linha
iptables --table nat --append POSTROUTING --out-interface $UPLINK --jump MASQUERADE
em que UPLINK
é o nome da interface de rede conectada à Internet. O que eu não vejo é uma regra que traduz os pacotes IP para trás, isto é, traduz endereços IP globais para endereços locais. Deve ser assim.
iptables --table nat --append PREROUTING --in-interface $UPLINK $ARGS
Onde a direção de retorno está ativada?