Redirecionammento de portas com iptables e SNAT

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

[ Hits: 36.481 ]

Blog: https://github.com/adaoraul

 


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"

Visão geral do LDAP

Code Highlight

giFT utilzando OpenFT, Gnutella, OpenNap e FastTrack

Redirecionammento de portas

Leitura recomendada

Bloquear TeamViewer e LogMeIn

Livre-se dos scripts/propagandas no Firefox

Criar um túnel ssh

Gravando sessão de terminal com o ttyrec

Encriptar arquivos utilizando ENCFS e FUSE

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts