Redirecionar Ip externo para outro ip externo

1. Redirecionar Ip externo para outro ip externo

Joao Carlos
joaocx

(usa Ubuntu)

Enviado em 20/01/2012 - 02:32h

Bom dia Galera,

Consigo o redirecionar assim:

iptables -t nat -A PREROUTING -p tcp --dport 5080 -j DNAT --to IP_EXT:5080
iptables -t nat -A POSTROUTING -d IP_EXT -p tcp --dport 5080 -j SNAT --to IP_INT

Só que conecta com o IP da maquina que esta redirecionando por causa do SNAT.

Tem como manter o ip real do cliente ao ser redirecionado ?

Desde ja grato


  


2. Re: Redirecionar Ip externo para outro ip externo

Phillip Vieira
phrich

(usa Slackware)

Enviado em 20/01/2012 - 09:03h

Vamos pensar um pouco:

SNAT = Source NAT - Faz o roteamento com o endereço de origem do host que faz o roteamento ( o próprio firewall

DNAT = Destination NAT - Faz o roteamento para um endereço especificado...


Sendo assim acho que a melhor opção para vc seria a segunda...



Então se vc remover a segunda linha, ele sairá com o IP "real".


3. Re: Redirecionar Ip externo para outro ip externo

Joao Carlos
joaocx

(usa Ubuntu)

Enviado em 20/01/2012 - 17:49h

phrich escreveu:

Vamos pensar um pouco:

SNAT = Source NAT - Faz o roteamento com o endereço de origem do host que faz o roteamento ( o próprio firewall

DNAT = Destination NAT - Faz o roteamento para um endereço especificado...


Sendo assim acho que a melhor opção para vc seria a segunda...



Então se vc remover a segunda linha, ele sairá com o IP "real".



Olá
Ja tentei somente a primeira linha, não deu certo

Alguma solução ?


4. Teste

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 20/01/2012 - 19:23h

iptables -t nat -A PREROUTING -p tcp -i ethx --dport 80 -j DNAT --to-destination xxx.xx.xx.xxx:80

ethx=Ip externo


5. Re: Redirecionar Ip externo para outro ip externo

Joao Carlos
joaocx

(usa Ubuntu)

Enviado em 20/01/2012 - 19:26h

andrecanhadas escreveu:

iptables -t nat -A PREROUTING -p tcp -i ethx --dport 80 -j DNAT --to-destination xxx.xx.xx.xxx:80

ethx=Ip externo


iptables -t nat -A PREROUTING -i ethx -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.x:80

Também não resolveu

Alguma outra alternativa ?


6. Duvida:

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 20/01/2012 - 19:43h

O titulo do post é IP externo para IP externo

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 777 -j DNAT --to-destination 200.221.2.45:80

eth1 é minha placa externa.

No exemplo acima estou direcionando tudo que chegar na minha placa externa na port 777 para o uol.com.br na porta 80 (Testado e funcinando)
Lembrando que o INPUT nesta porta tem que estar aberto:
Ex:
/sbin/iptables -A INPUT -i eth1 -p tcp -m tcp --dport 777 -j ACCEPT

Agora se quer redirecionar para um IP interno da sua rede é:

/sbin/iptables -A INPUT -i eth1 -p tcp -m tcp --dport 5080 -j ACCEPT

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 5080 -j DNAT --to-destination 192.168.0.3:5080

Substitua eth1 pela placa que tem o ip externo
e 192.168.0.3:5080 (Coloque o ip da maquina na sua rede)

Se não funcionar o problema deve estar nas regras do seu firewall.


7. Re: Redirecionar Ip externo para outro ip externo

Joao Carlos
joaocx

(usa Ubuntu)

Enviado em 20/01/2012 - 19:51h

andrecanhadas escreveu:

O titulo do post é IP externo para IP externo

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 777 -j DNAT --to-destination 200.221.2.45:80

eth1 é minha placa externa.

No exemplo acima estou direcionando tudo que chegar na minha placa externa na port 777 para o uol.com.br na porta 80 (Testado e funcinando)
Lembrando que o INPUT nesta porta tem que estar aberto:
Ex:
/sbin/iptables -A INPUT -i eth1 -p tcp -m tcp --dport 777 -j ACCEPT

Agora se quer redirecionar para um IP interno da sua rede é:

/sbin/iptables -A INPUT -i eth1 -p tcp -m tcp --dport 5080 -j ACCEPT

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 5080 -j DNAT --to-destination 192.168.0.3:5080

Substitua eth1 pela placa que tem o ip externo
e 192.168.0.3:5080 (Coloque o ip da maquina na sua rede)

Se não funcionar o problema deve estar nas regras do seu firewall.


Andre Não deu certo.

Talvez eu não soube explica direito

A Maquina de IP_A_Externo servira só para direcionar o cliente ao IP_B_Externo

Consigo redirecionar assim:

iptables -t nat -A PREROUTING -p tcp --dport 5080 -j DNAT --to IP_B_Externo:5080
iptables -t nat -A POSTROUTING -d IP_B_Externo -p tcp --dport 5080 -j SNAT --to IP_A_Externo

Com a regra acima o cliente consegue conexao com o IP_B_Externo só que o ip do cliente é registrado com o ip IP_A_Externo(Maquina que serve apenas para direcionar) por causa do SNAT

Oque eu preciso é manter o ip real do cliente ao ser redirecionado. A Regra que falo acima redireciona mais não mostra o ip do cliente.



8. POSTROUTING

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 20/01/2012 - 20:04h

Usa o PREROUTING no segundo tambem e ve se resolve.
O pre envia direto o post primeiro passa pelo firewall.

(PREROUTING ) <-----------------> (PREROUTING )
(POSTROUTING) > Firewall > (POSTROUTING)




9. Re: Redirecionar Ip externo para outro ip externo

Joao Carlos
joaocx

(usa Ubuntu)

Enviado em 20/01/2012 - 20:38h

andrecanhadas escreveu:

Usa o PREROUTING no segundo tambem e ve se resolve.
O pre envia direto o post primeiro passa pelo firewall.

(PREROUTING ) <-----------------> (PREROUTING )
(POSTROUTING) > Firewall > (POSTROUTING)



Como ?

iptables -t nat -A PREROUTING -p tcp --dport 5080 -j DNAT --to IP_B_Externo:5080
iptables -t nat -A PREROUTING -d IP_B_Externo -p tcp --dport 5080 -j SNAT --to IP_A_Externo

assim ?

tentei e olha o erro

iptables: Invalid argument. Run `dmesg' for more information.

[email protected]:~# dmesg
ip_tables: SNAT target: bad hook_mask 1


10. DNAT

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 20/01/2012 - 21:34h

joaocx escreveu:

andrecanhadas escreveu:

Usa o PREROUTING no segundo tambem e ve se resolve.
O pre envia direto o post primeiro passa pelo firewall.

(PREROUTING ) <-----------------> (PREROUTING )
(POSTROUTING) > Firewall > (POSTROUTING)



Como ?

iptables -t nat -A PREROUTING -p tcp --dport 5080 -j DNAT --to IP_B_Externo:5080
iptables -t nat -A PREROUTING -d IP_B_Externo -p tcp --dport 5080 -j SNAT --to IP_A_Externo

assim ?

tentei e olha o erro

iptables: Invalid argument. Run `dmesg' for more information.

[email protected]:~# dmesg
ip_tables: SNAT target: bad hook_mask 1


Sim mas usando o DNAT pois voce esta direcionando algo para outro lugar

iptables -t nat -A PREROUTING -d IP_B_Externo --dport 5080 -j DNAT --to-destination 192.168.0.x:5080

Mas se precisar enviar a resposta de volta como IP_B_Externo vai precisar de:

iptables -A POSTROUTING -t nat -s 192.168.0.x -j SNAT --to IP_B_Externo

Pois vc quer que seu pacotes saim de IP_B_Externo




11. Re: Redirecionar Ip externo para outro ip externo

Joao Carlos
joaocx

(usa Ubuntu)

Enviado em 20/01/2012 - 22:16h

andrecanhadas escreveu:

Sim mas usando o DNAT pois voce esta direcionando algo para outro lugar

iptables -t nat -A PREROUTING -d IP_B_Externo --dport 5080 -j DNAT --to-destination 192.168.0.x:5080

Mas se precisar enviar a resposta de volta como IP_B_Externo vai precisar de:

iptables -A POSTROUTING -t nat -s 192.168.0.x -j SNAT --to IP_B_Externo

Pois vc quer que seu pacotes saim de IP_B_Externo



Esse também não deu certo.

esse está fazendo a mesma opção da primeira linha
iptables -t nat -A PREROUTING -d IP_B_Externo --dport 5080 -j DNAT --to-destination 192.168.0.x:5080

Eu não preciso de retorno pra maquina A, eu sou preciso que o cliente passa por ela e seja direcionado para a maquina B e fique nela

Existe outra maneira de fazer sem ser por Iptables ? OBS: as 2 maquinas são vps fora da minha rede então teria quer ser ou iptables ou algum software.

Tem como fazer ?





12. MASQUERADE

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 20/01/2012 - 23:02h

No IP EXTERNO "A" tem alguma regra de firewall para compartilhar internet?

Tipo:
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE
onde ethx é a placa ligada no link de internet



01 02 03