Duvida sobre DNAT

1. Duvida sobre DNAT

Vicente Camilo
carbhonn

(usa Slackware)

Enviado em 07/01/2008 - 12:27h

E ae amigos!

Bom eu entendi perfeitamente a intençao do SNAT,
o que ta me confundindo de fato é a DNAT.
Se um pacote vem da WAN ele tem como destino o ip da interface 200.200.217.40 que deve ser traduzido para o ip 192.168.1.2 para que esse host possa receber o pacote como se fosse da rede local.
Segundo o que estudei sobre o DNAT ele traduz o ip de destino do pacote entrante vindo da WAN para a LAN, e só pode ser configurada na chain PREROUTING pois é nela que sao tratados os pacotes vindos da internet para a rede local. Isso é o que eu entendi e me corrijam se estou enganado.
Mas vejam essa regra:

iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -j DNAT --to 200.200.217.40-200.200.217.50:1024:5000

Segundo essa regra os pacotes com ip de destino 192.168.1.0/24, isso é, qualquer maquina da rede local LAN, será traduzido para o ip 200.200.217.40.

A minha duvida é o seguinte: Isso não é uma contradiçao na regra uma vez que só podem ser traduzidos os IPs de pacotes que entram, nessa regra diz que será traduzido do ip de rede local para o ip da internet como se o pacote fosse sair para a internet. Eu simplesmente nao entendi a intençao dessa regra.
Vejam a próxima:

iptables -t nat -A PREROUTING -s 200.200.217.40 -i eth0 -j DNAT --to 192.168.1.2

Essa última me parece bem logica pois será traduzido o ip do pacote entrante - 200.200.217.40 da WAN para a LAN - 192.168.1.2
Isso é, o ip de destino pode ser esse em especifico ou a rede toda pondo um 0 no lugar do dois e a mascara na frente.
Mas a primeira regra nao parece ser logica, sendo que será traduzido o ip da LAN para a WAN como se ele fosse sair pra a internet, o que seria um contrasenço pois na chain PREROUTING só sao traduzidos IPs de destino da WAN(internet)da inerface do roteador para a LAN(rede local do roteador)

Eu quero entender isso pra poder proseguir nos meus estudos e nao passa pra proxima seçao so livro sem intender bem essa que estou um pouco travado. Valeu pelas futuras ajudas pessoal.


  


2. Re: Duvida sobre DNAT

Eduardo Pelizzari de Andrade
edupersoft

(usa Manjaro Linux)

Enviado em 07/01/2008 - 13:19h

iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -j DNAT --to 200.200.217.40-200.200.217.50:1024:5000

Vai entrar nesta regra, os pacotes que entrarem pela placa eth0 e que a origem for a rede interna.
A placa eth0 deve estar ligada na rede interna, então podemos traduzir que entra nesta regra, tudo que esta saindo da rede interna para a internet.

Neste caso, o ip destino vai ser mudado para um dos ips da faixa 200.200.217.40 até 200.200.217.50, desde que a porta destino seja uma das portas entre 1024 e 5000

iptables -t nat -A PREROUTING -s 200.200.217.40 -i eth0 -j DNAT --to 192.168.1.2

Neste segundo exemplo, tudo que vier de 200.200.21.40 e entrar em eth0, neste exemplo, eth0, deve estar ligada na internet. Estes pacotes serão encaminhados para 192.168.1.2;

Um exemplo prático de fácil entendimento seria o seguinte, imagine que você tenha uma máquina dentro da sua rede que vai responder solicitações http, chegando da internet na porta 80. Você poderia usar as seguintes regras para realizar o roteamento:

#iptables -t nat -A PREROUTING -p tcp -d 200.200.200.201 --dport 80 -j DNAT --to 192.168.0.1
#iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.1 --sport 80 -j SNAT --to 200.200.200.201

A primeira regra desvia tudo que está chegando da internet na porta 80 (porta geralmente usada para http) para o host 192.168.0.1 da rede interna, este seria um servidor http.
A segunda regra quando a origem for 192.168.0.1, o ip de origem vai ser alterado para 200.200.200.201 que é um ip válido para internet.

Uma boa leitura sobre iptables, você encontra no guia foca linux:

http://focalinux.cipsga.org.br/guia/avancado/ch-fw-iptables.html#s-fw-iptables-nat









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts