Re: Não funciona DNAT/SNAT...
Imagino que seja legal começar os testes definindo melhor as regras, adicione a placa de rede nas linhas do IP tables...
-i ETH_externa
e -i ETH_interna
Veja se isso já pode ajudar de alguma forma... porque os pacotes parecem estar se perdendo.
Att
Re: Não funciona DNAT/SNAT...
Acrescentei as interfaces e ficou da seguinte forma:
$ipt -t nat -A PREROUTING -p tcp -m tcp -i eth0 -d 200.20.20.20/32 --dport 3389 -j DNAT --to 192.168.3.7:3389
$ipt -t nat -A POSTROUTING -p tcp -m tcp -o eth1 -s 192.168.3.7/32 --sport 3389 -j SNAT --to 200.20.20.20:3389
Onde:
eth0 = Wan
eth1 = Lan
Mas, não funcionou ...
Estou fazendo testes com host dentro da subrede do Firewall mesmo:
Firewall
eth0=200.20.20.20
eth1=192.168.2.254
Servidor 2003=192.168.2.1
$ipt -t nat -A PREROUTING -p tcp -m tcp -i eth0 -d 200.20.20.20/32 --dport 3389 -j DNAT --to 192.168.2.1:3389
$ipt -t nat -A POSTROUTING -p tcp -m tcp -o eth1 -s 192.168.2.1/32 --sport 3389 -j SNAT --to 200.20.20.20:3389
Por enqto. sem sucesso...
Obrigado pelas respostas....
Re: Não funciona DNAT/SNAT...
Me diz uma coisa,
O que você quer é... acessar o servidor WTS de fora da sua rede? remotamente é isso?
Se esta for a ideia Acesso remoto WTS, você não precisa de SNAT.
Outro detalhe é que o "-o eth1" (aqui é a interface de saida).
Mas arranca a regra de SNAT.
Seguinte, o pacote entra em sua rede na porta 3389 e é redirecionado para 192.168.2.1 e depois para 192.168.3.7 certo? então no caminho de volta ele sai de 192.168.3.7 passa para 192.168.2.1 e ai sim chega ao firewall para sair...
Em sua regra de SNAT vc coloca que a origem é 192.168.3.7 porem no meio do caminho sua origem foi alterada para 192.168.2.1 que é um router.
Por isso imagino que a regra de SNAT esta ferrando tudo.
Retire o SNAT deve funcionar. e no nat a interface da linha deve ser a da internet.
Boa sorte.
Re: Não funciona DNAT/SNAT...
Coloca um tcpdump no teu roteador 192.168.2.1 e cola aqui, assim é mais facil de analisar.
Você só vai precisar utilizar SNAT se o gateway da tua rede 192.168.3.0 NÃO for o roteador que conecta com a rede 192.168.2.0 ou se o gateway desse roteador NÃO for 192.168.2.254.
Cola as rotas do roteador 192.168.2.1.
Miguel Xavier
Re: Não funciona DNAT/SNAT...
Aproveito o tópico pois meu problema é parecido, explicarei da maneira mais detalhada possível.
Tenho um server com 3 placas de rede (os endereços obviamente não são estes):
eth0 - 192.168.1.1 rede 192.168.1.0/24
eth1 - 200.200.200.200 (CTBC)
eth2 - 201.201.201.201 (Virtua)
Tenho um servidor interno cujo IP é 192.168.1.10 e que possui um servidor WWW respondendo na porta 80 para conexões que entram pelo link da CTBC.
A regra que eu uso é a seguinte:
iptables -t nat -I PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to-dest 192.168.1.10
Possuo regras de SNAT nass interfaces eth1 e eth2.
O problema está no fato de que os desenvolvedores precisam testar a aplicação acessando pelo IP externo da CTBC mesmo estando dentro da rede local.
Criei portanto a seguinte regra de DNAT:
iptables -t nat -I PREROUTING -p tcp --dport 80 -i eth0 -d 200.200.200.200 -j DNAT --to-dest 192.168.1.10
A partir desse momento os pacotes passaram a chegar no servidor, porém eles chegam no server com o endereço de origem da rede 192.168.1.0, o que faz com que o servidor responda diretamente ao computador de origem, que descarta o pacote, pois não espera nenhuma resposta de 192.168.1.10 e sim de 200.200.200.200.
Tentei algumas regras de SNAT, a última delas foi a seguinte:
iptables -t nat -I POSTROUTING -d 192.168.1.10 -j SNAT --to-source 200.200.200.200
A ideia é forçar o retorno desses pacotes para o servidor, porém mesmo assim não está funcionando.
Sinto que estou deixando passar batido algo banal, gostaria muito de uma ajuda de vocês para ver onde está o furo.
Agradeço pela atenção.