Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: luar com slackware
Por Dante_20
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Comunidades

Comunidade Linux Home Participar da comunidade Linux Participar Fórum Linux Fórum Membros LinuxMembros RSS do fórum

<< Primeira | Anterior Próxima | Última >>

Redirecionamento de portas [RESOLVIDO]

[1] Enviado em 05/12/2007 - 15:37h Redirecionamento de portas [RESOLVIDO]
Linux user: Darlei Fabricio Pereira
dfpereira

(usa Debian)


Boa tarde!
Tenho um servidor de testes com Debian instalado e coloquei um regra no iptables para redirecionar as conexões na porta 3389, para uma determinada máquina na rede local.

A regra foi a seguinte:
iptables -t nat -I PREROUTING -d 192.168.1.86 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.29:3389

onde: 192.168.1.86, é o IP da rede interna do meu servidor de testes.
192.168.1.29, é a máquina que eu quero redirecionar os pacotes.

Detalhes: isso é só um teste dentro da rede interna, justamente pra testar a regra do iptables. O serviço na máquina destino está rodando perfeitamente.

Fiz algo errado, ou isso não funcionaria na rede interna??

Obrigado!

 

  


Linux user: Elgio Schlemer
elgio

(usa OpenSuSE)

Melhor resposta

[2] Enviado em 05/12/2007 - 15:56h:
NÃO FUNCIONA!

Esta dúvida, inclusive, é bem reincidente e difícil de entender o motivo, mas NÃO FUNCIONA. Vou ver se consigo formalizar uma explicação fácil de entender até para usar como referência para outras perguntas.

Tens o seguinte cenário (hipotético):

Maq A (10.1.0.2) Maq B (10.1.0.3)

Roteador (10.1.0.1)

Máq A e Maq B estão no mesmo domínio de broadcast, logo se comunicam SEM GATEWAY, sem passar pelo roteador (DIRETO)

Digamos que eu coloquei a seguinte regra no roteador, direcionando a porta 3339 para a máquina B:

iptables -t nat -I PREROUTING -d 10.1.0.1 -p tcp --dport 3389 -j DNAT --to-destination 10.1.0.3:3389
(quase igual a sua)

Acontece que quando a máquina A for enviar um pacote para a 10.1.0.1 na porta 3389, o roteador VAI FAZER SIM O NAT. Vamos chamar este pacote de PACOTE A:

Dados do pacote A:
Ip origem: 10.1.0.2
Ip destino: 10.1.0.1
Porta Origem: XX
Porta Destino: 3389

O pacote A passa pelo roteador e é alterado pela regra do Iptables virando o que vamos chamar de pacote A1:

Dados do pacote A1:
Ip origem: 10.1.0.2
Ip destino: 10.1.0.3 (O roteador TROCOU)
Porta Origem: XX
Porta Destino: 3389

É o pacote A1 quem chega na máquina B. A máquina B aceita o pacote e o responde. Contudo como a origem (10.1.0.2) é rede local a máquina B não usa o gateway!! Ela responde DIRETO para máquina A no que irei chamar de pacote A1R (resposta do pacote A1):

Dados do pacote A1R:
Ip origem: 10.1.0.3
Ip destino: 10.1.0.2
Porta Origem: 3389
Porta Destino: XX

Ora, a máquina A simplesmente joga fora este pacote pois NUNCA estabeleceu contato com o IP 10.1.0.3 na porta 3389! Ela o fez com o 10.1.0.1 e continua aguardando o que ela entende ser a resposta do pacote A (vindo do 10.1.0.1!!!)

Isto acontece porque a RESPOSTA não passa pelo roteador, que seria o cara que faria a troca novamente (ele se lembra do que trocou e destroca no retorno).

Logo, NÃO FUNCIONA!!

Algumas gambiarras poderiam ser feitas como um duplo nat onde o roteador também troca o seu IP de origem, mas ai já é bruxaria.

 

[3] Enviado em 05/12/2007 - 16:18h Re: Redirecionamento de portas [RESOLVIDO]
Linux user: Darlei Fabricio Pereira
dfpereira

(usa Debian)


Cara, sua explicação foi ótima, faz total sentido!
Não sei como não tinha pensando nisso antes, parece muito óbvio agora!
Obrigado e parabéns pela didática!

 

  
<< Primeira | Anterior Próxima | Última >>
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.