
Fiz encaminhamento de porta seguindo este tutorial: http://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/
iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111
iptables -t nat -A POSTROUTING -j MASQUERADE
Mas quero MASCARAR apenas as portas com os encaminhamentos, pois no mesmo servidor tenho um servidor web e se eu MASCARAR todo o tráfego o servidor web para de funcionar.
Qualquer ideia?
SOLUÇÃO:
iptables -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 1111 -j SNAT --to-source 2.2.2.1
Responder1
se vocêrealmentequiser fazer um MASQUERADE
, então a maneira correta de fazer isso é assim:
iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111
iptables -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 1111 -j MASQUERADE
desta forma MASQUERADE
será aplicada apenas a pacotes editados por DNAT.
Observe, entretanto, que MASQUERADE
se destina principalmente a casos de IP dinâmico (como dial-up) e, no caso de um IP estático, SNAT
deve ser usado exatamente da maneira que você propôs. Da iptables
página de manual:
Ele só deve ser usado com conexões IP (dialup) atribuídas dinamicamente: se você tiver um endereço IP estático, deverá usar o destino SNAT. O mascaramento equivale a especificar um mapeamento para o endereço IP da interface pela qual o pacote está saindo, mas também faz com que as conexões sejam esquecidas quando a interface fica inativa. Este é o comportamento correto quando é improvável que a próxima conexão dial-up tenha o mesmo endereço de interface (e, portanto, quaisquer conexões estabelecidas serão perdidas de qualquer maneira).
há uma ressalva para ambos MASQUERADE
e SNAT
: não funcionará se 2.2.2.2 for VIP na mesma máquina.