Redirecionammento de portas com iptables e SNAT

Publicado por Adão S. Raul Neto em 25/04/2005

[ Hits: 31.864 ]

Blog: http://dowcore.me

 


Redirecionammento de portas com iptables e SNAT



Muitas vezes precisamos fazer com que um cliente externo acesse um servidor existente na nossa rede interna. Para isto utilizamos o redirecionamento de portas. Para isto utilizamos o iptables juntamente coma as tabelas SNAT (nat de origem) e DNAT (nat de destino).

Exemplo:

Temos o nosso servidor interno de WEB (IP 192.168.4.3 :80) e que deve ser acessado a partir do endereço IP da interface externa eth0 (10.0.0.0):

1 - Primeiramente, temos que direcionar a ENTRADA para o WEB Server:

# iptables -t nat -A PREROUTING -p tcp -d 10.0.0.0 --dport 80 -j DNAT --to 192.168.4.3

2 - Agora redirecionaremos a resposta para a máquina cliente, que acessou o servidor:

# iptables -t nat -A POSTROUTING -p tcp -s 192.168.4.3 --sport 80 -j SNAT --to 10.0.0.0

Outras dicas deste autor

Baixando fotos de uma câmera digital na "unha"

Code Highlight

Instalando o Mercury (cliente MSN)

Code Igniter - Programando com segurança e velocidade

Visão geral do LDAP

Leitura recomendada

Quebrando tudo: HPC com Cluster Debian e John The Ripper

Primeira Conferencia Hacker no Brasil

TrueCrypt: Open Source para criptografia

Bloqueando Tor de maneira diferente no CentOS 6.5

Quanto tempo para quebrar sua senha?

  

Comentários
[1] Comentário enviado por d00m em 12/05/2005 - 17:57h

Seguinte, tenho uma máquina que vai ficar como roteador, essa máquina tem uma interface com um ip válido e uma outra que ficará na rede interna.
O que preciso fazer é passar as requisições que cheguem na porta 80 do roteador, va direto para uma outra máquina, até ai bastante simples.

iptables -t nat -A PREROUTING -d 200.180.X.X -p tcp --dport 80 -j DNAT --to-destination 192.168.200.251:80

A questão está no retorno que esta máquina fará, estou usando o SNAT para isso.

iptables -t nat -A POSTROUTING -s 192.168.200.251 --p tcp --sport 80 -j SNAT --to-source 200.180.X.X

Normalmente ao invés de utilizar o SNAT eu definia o router como GW padrão da máquina com o server WEB, porém desta vez não é possível.

Utilizando o tcpdump eu vi que a requisição chega no meu servidor WEB, porem não faz retorno algum.

Eu coloquei um LOG no postrouting do router e não aparece nada...


No web por enquanto não há nenhuma regra ou policy de firewall que possa estar bloqueando, em um teste com default GW para o router, funcionou perfeitamente...


Fico grato por qualquer ajuda :)

[2] Comentário enviado por jacardoso em 18/05/2007 - 10:32h

e se eu quizer usar todas as portas.... vc sitou apenas a porta 80 (web)
se eu quizer usar 3389 (terminal service), 5800 e 5900 (VNC) etc....

[3] Comentário enviado por srf em 07/01/2008 - 22:41h

Olá

tenho a seguinte regra:

iptables -t nat -A PREROUTING -d 201.60.10.26 -p tcp --dport 8080 -j DNAT --to 192.168.0.252:80

Esta regras faz toda requisição que chega de fora do firewall na pota 8080 ser direcionada para o webserver 192.168.0.252 na porta 80

Esta funcionando 100% o povo de fora acessa http://201.60.10.26:8080/ Blz...

O que preciso é que fazer os usuários de dentro da rede interna acessarem o mesmo link...

Isso é possivel?

[4] Comentário enviado por reng.unip em 22/09/2008 - 12:00h

Acredito que a solução seria você instalar e configurar um DNS para sua rede interna.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts