Como alterar IP com NAT em ligações em curso [RESOLVIDO]

1. Como alterar IP com NAT em ligações em curso [RESOLVIDO]

calvin b m
calvinb

(usa Fedora)

Enviado em 23/07/2013 - 23:56h

Meu ambiente é o seguinte (tem que ser MESMO este):

Cliente 1(192.168.5.2)<->Router 1(192.168.3.2)--NET<->Router 2(192.168.4.2)<-> Cliente 2 (192.168.6.2)

Onde, Cliente 1 e 2 fazem parte de uma rede interna, sem acesso direto a internet.

E eu tenho as seguintes regras nos router 1 e tbm no router 2 de acordo com os IPs acima:

#Aceitando todos os pacotes TCP e UDP
iptables -I INPUT -p ALL -i em1 -j ACCEPT");

#Redireciona todos os pacotes com destino ao router 1 para o cliente 1 na porta 22
iptables -t nat -I PREROUTING -p tcp --dport 222 -j DNAT --to-destination 192.168.5.2:22

#Altera a origem dos pacotes de 5.2 (cliente 1) para o IP da interface atual da placa de rede
iptables -t nat -A POSTROUTING -s 192.168.5.2 -o em1 -j MASQUERADE

Até aqui, tudo bem, estou redirecionando todos os pacotes com destino aos routers para os clientes e quando os pacotes saem do cliente e chegam ao router, o endereço IP de origem é modificado para o endereço real da placa de rede do router.

O PROBLEMA É O SEGUINTE:

Realizo um telnet do Cliente 2 (6.2) para o router 1 (3.2) na porta 222. De acordo com as regras acima, o acesso será direcionado para o cliente 1. Perfeito. Agora, com o telnet sempre em curso, eu altero o endereço IP do router 2 (de 4.2 para 8.2), e neste mesmo instante adiciono as seguintes regras no router 1 (3.2) para sanar o problema:


# No router 1, altero o destino do pacote vindo do cliente 1 de 4.2 para 8.2 (endereço real do router 2 agora)
iptables -t nat -A PREROUTING -d 192.168.4.2 -i p4p1 -j DNAT --to 192.168.8.2



# No router 1, altero a origem do pacote de 8.2 para 4.2 e envio para o cliente 1, para que não perceba a alteração do IP do router 2, ou seja, pra ele, ele continuará recebendo pacotes do 4.2 e não do 8.2

iptables -t nat -A POSTROUTING -s 192.168.8.2 -o p4p1 -j SNAT --to 192.168.4.2


AGORA O PROBLEMA É: As regras acima (DNAT e SNAT)não funcionam, ou seja, pelo que eu entendi, a tabela NAT do iptables não realiza alterações nas ligações em curso, antes do início das regras, é isso? Ou tem alguma solução e eu não estou conseguindo enxergar?

Agradeço aí pessoal, se puderem dar uma esclarecida se souberem.



  


2. MELHOR RESPOSTA

leonardo Souza
lejoso

(usa Debian)

Enviado em 24/07/2013 - 17:39h

Boa Tarde,

Realmente não funcionarão as mesmas.
Qualquer regra a ser aplicada na tabela nat apenas será efetuada no ida dos pacotes. Poderá ser aplicadas regras de DNAT e SNAT nessa ida sem problemas. Porém, depois que ele atravessou o firewall pela primeira vez, nenhuma regra da tabela nat não poderá ser aplicada dai por diante.
Você teria que estabelecer outra conexão telnet para o funcionamento.
A tabela nat trabalha diferentemente da tabela filter, que trata os pacotes individualmente. Já a nat trata a conexão como um todo e não os pacotes individualmente.

Att,

Lejoso





3. Re: Como alterar IP com NAT em ligações em curso [RESOLVIDO]

calvin b m
calvinb

(usa Fedora)

Enviado em 24/07/2013 - 21:19h

Obrigado Lejoso , era o que "temia", achava que teria alguma forma de alterar os fluxos em curso
pelo NAT, mas entendi sim.

Valeu.

Att,

Calvin


4. Re: Como alterar IP com NAT em ligações em curso [RESOLVIDO]

calvin b m
calvinb

(usa Fedora)

Enviado em 28/07/2013 - 20:15h

Eu consigo realizar o esses redirecionamentos de endereços através de marcações da tabela mangle?


5. Re: Como alterar IP com NAT em ligações em curso [RESOLVIDO]

leonardo Souza
lejoso

(usa Debian)

Enviado em 29/07/2013 - 01:00h

Não consegue, pois a mangle só serviria para fazer marcações mesmo,já que qualquer alteração de porta (origem ou destino) ou ip (origem ou destino) é feito apenas na nat.









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts