elgio
(usa OpenSuSE)
Enviado em 04/04/2008 - 14:08h
Ufa, muitos comentários durante meu almoço.
marlonreck: sua observação do FORWARD procede. Pode ser realmente isto, pois o pacote irá voltar para o IP de origem sendo roteado pela máquina.
E a tua observação me fez meditar sobre OUTRO PROBLEMA e se BATER, acho que DESCOBRIMOS.
Teu cenário é de um IP público (também chamado de válido) acessando de fora, da Internet, o teu IP Interno.
Acredito, ainda mais por não acreditar em galinhas pretas, que isto está FUNCIONANDO completamente, pois as regras são estas.
Só que o que tu criou?
Tu fez um IP público conversar com o IP privado 10.1.1.130 (ficou mais claro pra mim depois que tu abriu mais o jogo).
Estas fazendo um forward de porta, mas mantendo o IP de origem. Ora, a 10.1.1.130 vai responder para o IP público, logo precisas fazer mascaramento para o que sai para a Internet.
Vi que estás fazendo, a principio por esta regra:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Só que veja que ANTES DELA tu dá um FLUSH no POSTROUTING anulando qualquer chance da minha dica funcionar. Coloque o FLUSH ANTES e torne a testar como sugeri:
iptables -t nat -A PREROUTING -p tcp --dport 10010 -i eth0 -j DNAT --to 10.1.1.130:23
iptables -t nat -I POSTROUTING -d 10.1.1.130 -p tcp --dport 23 -j MASQUERADE
Esta solução APOSTA no fato do teu servidor FINAL estar bloqueando ips públicos, só aceitando da rede Interna