NAT com iptables [RESOLVIDO]

1. NAT com iptables [RESOLVIDO]

Fernando Rodrigues de Sá
rodfer

(usa Debian)

Enviado em 08/09/2011 - 19:27h

Olá pessoal!
Tenho em servidor com webmin instalado e preciso acessá-lo pela internet, passando por um firewall.
Estou tentando fazer uma NAT, mas não estou conseguindo.
Minha rede está da seguinte forma:
Firewall:
IP de internet: 189.x.x.x
Interface externa: eth0
IP da rede interna: 10.232.16.1
Interface interna: eth1
Servidor com Webmin:
IP do servidor: 10.232.22.1
Interface de rede: eth0
Porta do Webmin: 20000

O que preciso é, ao acessar https://189.x.x.x:20000 em meu navegador, pela internet, ser direcionado pelo firewall para o IP 10.232.22.1 de meu servidor do Webmin, na rede interna, na porta 20000.

O que preciso fazer?
Obrigado!



  


2. Resp1: nat com iptables

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/09/2011 - 19:44h

só para esclarecer...

voce tem um servidor (com o endereço 10.232.22.1)na sua rede interna com o webmin rodando na porta 20000, e seu firewall está com endereço externo de 189.x.x.x e interface externa eth0 e interface interna eth1 ip da interna 10.232.16.1.

solução1 proposta:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000 -j DNAT --to 10.232.22.1:20000

OBS: se tiver um firewall já configurado na sua rede, veja se tem alguma regra bloqueando essa regra que descrevi acima.

posta ai o resultado se deu certo ótimo e se não vamos continuar tentar a resolver o problema, abraço



3. Re: NAT com iptables [RESOLVIDO]

Fernando Rodrigues de Sá
rodfer

(usa Debian)

Enviado em 08/09/2011 - 19:57h

Olá!
Obrigado pela pronta resposta, mas ainda não funcionou!
O firewall está habilitado, porém, não há regras que vão de encontro a esta.

Nas chains, tenho o seguinte:
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:20000
ACCEPT udp -- anywhere anywhere udp dpt:20000
DROP 0 -- anywhere anywhere

Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:20000 to:10.232.22.1:20000
DNAT udp -- anywhere anywhere udp dpt:20000 to:10.232.22.1:20000

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination


Obrigado!
Abraço!


4. Resp2: nat com iptables

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/09/2011 - 20:16h

A faixa de endereços ip da rede interna é 10.232.16.0 ou 10.232.22.0, pois o servidor de firewall e o servidor que roda o webmin está com faixa de ips diferentes?

O redirencionamento está habilitado?

echo "1" > /proc/sys/net/ipv4/ip_forward

* se não estiver habilite.

iptables -A FORWARD -i eth0 -d 189.x.x.x -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000 -j DNAT --to 10.232.22.1:20000

OBS: voce está conseguindo acessar livremente o webmin localmente pela porta 20000?
como está as regras padrões de entrada de dados (chain INPUT), ACCEPT ou DROP da tabela filter?

posta ai o resultado, por favor responde minhas perguntas para maiores esclarecimentos.


5. Re: NAT com iptables [RESOLVIDO]

Fernando Rodrigues de Sá
rodfer

(usa Debian)

Enviado em 08/09/2011 - 20:56h

A faixa de endereços ip da rede interna é 10.232.16.0 ou 10.232.22.0, pois o servidor de firewall e o servidor que roda o webmin está com faixa de ips diferentes?
Sim, na verdade são dois servidores de independentes, que trabalham na rede 10. O primeiro tem conexão à internet e o segundo utiliza o primeiro para acessá-la.
Com um traceroute a partir do 10.232.16.1, tenho o seguinte:
# traceroute 10.232.22.1
traceroute to 10.232.22.1 (10.232.22.1), 30 hops max, 40 byte packets
1 10.232.16.200 (10.232.16.200) 0.568 ms 0.441 ms 0.424 ms
2 10.232.22.1 (10.232.22.1) 0.459 ms 0.430 ms 0.417 ms


O redirencionamento está habilitado?
Sim, está habilitado

iptables -A FORWARD -i eth0 -d 189.x.x.x -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000 -j DNAT --to 10.232.22.1:20000
Infelizmente, continua sem funcionar...

OBS: voce está conseguindo acessar livremente o webmin localmente pela porta 20000?
Acesso normalmente a partir de qualquer máquina da rede 10.

como está as regras padrões de entrada de dados (chain INPUT), ACCEPT ou DROP da tabela filter?
INPUT: DROP
OUTPUT: ACCEPT

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT 0 -- 10.232.22.1 anywhere
ACCEPT 0 -- localhost.localdomain anywhere
ACCEPT 0 -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT 0 -- 189."meu_ip_na_internet" anywhere
DROP 0 -- anywhere anywhere

É isso!


6. RE: outra alternativa..

Fernando Rodrigues de Sá
rodfer

(usa Debian)

Enviado em 08/09/2011 - 21:13h

Inclui as regras abaixo, mas continua não funcionando:
iptables -A INPUT -i eth0 -d 189.x.x.x --dport 20000 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A POSTROUTING -d 10.232.22.1 -j SNAT --to 10.232.16.1

Uma dúvida: o SNAT do POSTROUTING não seria para 189.x.x.x?

Obrigado!


7. Resp3: nat com iptables

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/09/2011 - 21:23h

Obrigado pelos esclarecimentos...

insere estas regras abaixo e dá um retorno:

iptables -I INPUT -i eth0 -p tcp --dport 20000 -j ACCEPT
iptables -I INPUT -i eth0 -p udp --dport 20000 -j ACCEPT
iptables -I FORWARD -o eth1 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 2000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A POSTROUTING -d 10.232.22.1 -j SNAT --to 10.232.16.1

aguardo sua resposta..


8. Re: NAT com iptables [RESOLVIDO]

Fernando Rodrigues de Sá
rodfer

(usa Debian)

Enviado em 08/09/2011 - 21:34h

Tá hot... rsrs

Descarreguei todas as regras do firewall, deixei a política em ACCEPT, coloquei somente as regras acima... mas não funcionou!

Resultados:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:20000
ACCEPT tcp -- anywhere anywhere tcp dpt:20000

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:20000 to:10.232.22.1:20000
DNAT udp -- anywhere anywhere udp dpt:20000 to:10.232.22.1:20000

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT 0 -- anywhere 10.232.22.1 to:10.232.16.1

Chain OUTPUT (policy ACCEPT)
target prot opt source destination



9. pergunta?

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/09/2011 - 21:37h

voce consegue pingar entre as maquinas ou processar um traceroute?


10. Resp4: nat com iptables

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/09/2011 - 21:41h

vamos continuar tentando..

insere estas regras abaixo e dá um retorno:

iptables -I INPUT -i eth0 -p tcp --dport 20000 -j ACCEPT
iptables -I INPUT -i eth0 -p udp --dport 20000 -j ACCEPT
iptables -I FORWARD -o eth1 -s 189.x.x.x -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 2000 -j DNAT --to 10.232.22.1:20000
iptables -t nat -A POSTROUTING -d 10.232.22.1 -j SNAT --to 10.232.16.1

aguardo sua resposta..



11. Re: NAT com iptables [RESOLVIDO]

Fernando Rodrigues de Sá
rodfer

(usa Debian)

Enviado em 08/09/2011 - 21:41h

normalmente!
Estou na 10.232.22.1:
# ping 10.232.16.1
PING 10.232.16.1 (10.232.16.1) 56(84) bytes of data.
64 bytes from 10.232.16.1: icmp_req=1 ttl=63 time=0.507 ms
64 bytes from 10.232.16.1: icmp_req=2 ttl=63 time=0.543 ms
64 bytes from 10.232.16.1: icmp_req=3 ttl=63 time=0.535 ms
64 bytes from 10.232.16.1: icmp_req=4 ttl=63 time=0.546 ms
^C
--- 10.232.16.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.507/0.532/0.546/0.032 ms

# traceroute 10.232.16.1
traceroute to 10.232.16.1 (10.232.16.1), 30 hops max, 60 byte packets
1 10.232.16.1 (10.232.16.1) 0.754 ms 0.815 ms 0.968 ms

Estou na 10.232.16.1:
# ping 10.232.22.1
PING 10.232.22.1 (10.232.22.1) 56(84) bytes of data.
64 bytes from 10.232.22.1: icmp_seq=1 ttl=64 time=0.551 ms
64 bytes from 10.232.22.1: icmp_seq=2 ttl=64 time=0.491 ms
64 bytes from 10.232.22.1: icmp_seq=3 ttl=64 time=0.537 ms
64 bytes from 10.232.22.1: icmp_seq=4 ttl=64 time=0.522 ms

--- 10.232.22.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.491/0.525/0.551/0.027 ms

# traceroute 10.232.22.1
traceroute to 10.232.22.1 (10.232.22.1), 30 hops max, 40 byte packets
1 10.232.16.200 (10.232.16.200) 0.493 ms 0.417 ms 0.379 ms
2 10.232.22.1 (10.232.22.1) 0.446 ms 0.419 ms 0.397 ms



12. Resp4: nat com iptables

Fernando Rodrigues de Sá
rodfer

(usa Debian)

Enviado em 08/09/2011 - 21:46h

Não funcionou...

Agora percebi uma coisa: pelo tracerout, o caminho de ida está diferente da volta... isso teria algo a ver com o problema?

Mais um detalhe, pra tentar ajudar:
Quando digito no navegador https://189.x.x.x:20000, ele fica tentando carregar a página um tempão...
Se digito o IP com uma porta desabilitada, a mensagem de erro é imediata.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts