Traduzindo as regras inglesas para as regras do iptables, somente esta regra é necessária:
iptables -t nat -A PREROUTING -s 10.20.10.14 -i ppp0 -j DNAT --to-destination 192.168.1.4
A porta de destino não é alterada (e a porta de origem também não deve ser, exceto casos raros, quando o cliente se conecta simultaneamente ao servidor).
Nada impede que o cliente adicione manualmente uma rota a 192.168.1.4
via 10.20.10.4
e acesse diretamente o servidor. Se você não quiser isso, para manter o IP do servidor oculto, você também pode adicionar esta regra:
iptables -I FORWARD -s 10.20.10.14 -i ppp0 -d 192.168.1.4 -m conntrack ! --ctstate DNAT -j DROP
Isso derrubará um acesso direto ao servidor que não foi DNATed.
Para remover essas regras, basta usar -D
:
iptables -D FORWARD -s 10.20.10.14 -i ppp0 -d 192.168.1.4 -m conntrack ! --ctstate DNAT -j DROP
iptables -t nat -D PREROUTING -s 10.20.10.14 -i ppp0 -j DNAT --to-destination 192.168.1.4
Observações aleatórias:
-
O
- encaminhamento de IP deve estar ativado no gateway, já que a conexão DNAT é encaminhada. O mais fácil de fazer isso seria
echo 1 > /proc/sys/net/ipv4/ip_forward
. - o servidor precisa, é claro, de uma rota para o cliente aceitar suas conexões, por exemplo, ter o Gateway (
192.168.1.1
) como gateway padrão. -
-i ppp0
é opcional e pode ser removido (ou substituído por-d 10.20.10.4
na regra PREROUTING, se preferir). Isso pode causar problemas se não for substituído por-i ppp+
(+
sendo um caractere curinga): quando há uma falha / reconexão do link rápido, a nova interface do ppp pode ser chamadappp1
seppp0
não foi arrancada antes. As regras do iptables não combinariam mais. - fluxos já estabelecidos não serão afetados quando a regra DNAT for removida, fluxos mais recentes serão (ou seja, não atingirão o servidor).