Pular para o conteúdo

Estrutura do IPTables 2: a tabela nat

Quais os poderes da tabela nat existente no iptables? E as listas PREROUTING, POSTROUTING, para que servem?
Elgio Schlemer elgio
Hits: 253.020 Categoria: Linux Subcategoria: Firewall
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 3: Lista nat POSTROUTING

Nesta lista irão as regras com poder de alterar um pacote após o roteamento. É a última etapa antes do pacote deixar a interface de rede em direção ao "mundo".

No POSTROUTING não tem sentido algum alterar parâmetros de destino, pois ao alterá-los o pacote poderia assumir um novo destino, o que é IMPOSSÍVEL, pois a decisão de roteamento já ocorreu (observe a posição do gancho POSTROUTING na figura 1).

Assim sendo, nesta lista só é possível alterar características de origem de um pacote, seja ip ou seja porta. Também não tem sentido o uso de -i interface (entrando pela interface), pois o pacote necessariamente está saindo! Somente o "-o interface" pode ser empregado.

A ação (-j) que permite alterar parâmetros de origem é SNAT, sendo que no POSTROUTING também é aceito a ação DROP e LOG:

iptables -t nat -A POSTROUTING -p tcp -s 10.1.0.4 -j SNAT --to 10.1.0.1

Neste exemplo está se trocando o ip de origem para 10.1.0.1 em todos os pacotes tcp que estiverem saindo por qualquer interface e que tinham o ip de origem como 10.1.0.4.

Alterar parâmetros de origem é necessário quando se deseja empregar a técnica de NAT estático ou dinâmico (dinâmico é também conhecido como mascaramento de ip) para resolver o problema de ips privados poderem acessar a Internet.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução: ganchos do netfilter
   2. Lista nat PREROUTING
   3. Lista nat POSTROUTING
   4. Lista nat OUTPUT
   5. Exemplo: proxy transparente
   6. Conclusão
   7. Leituras recomendadas

Fundamentos da criptografia assimétrica

Sinais em Linux

Cuidado com números em Ponto Flutuante

Criptografia assimétrica com o RSA

A mágica do dc

Firewall iptables em cinco minutos e compartilhamento de conexão

Dominando o iptables (parte 1)

Criando firewalls dinâmicos com Iptables Recent

Firewall e NAT em FreeBSD com controle de banda e redirecionamento de portas e IPs

Configurando firewall básico para compartilhar internet

#1 Comentário enviado por edirlf em 20/07/2007 - 02:58h
Cara, que massa seu artigo. Muito bom mesmo, Parabéns.
Já tá nos favoritos.
#2 Comentário enviado por adrianoturbo em 20/07/2007 - 08:41h
Show de bola a descrição de tabelas do Iptables bem explicada.

Parabéns amigo.
#3 Comentário enviado por balani em 20/07/2007 - 11:46h
muito bom, são informações muito importantes a serem relevadas antes de confeccionar um script. Parabens.
#4 Comentário enviado por marcelows em 24/07/2007 - 00:50h
Artigo muito bem escrito... Valeu Prof...

Uma dúvida existe uma forma de testar uma regra antes de realmente efetiva-la? Algo do tipo se estiver roteando um pacote a um outro servidor e este nao responder eu pulo para uma outra regra...

Obs.: Desculpe-me se a pergunta for meio tola.... Fui aluno seu na minha graduacao em ciencias da computador.

Desde ja agradeco... E parabens pelo artigo...
#5 Comentário enviado por peace em 24/07/2007 - 16:44h
Li seus dois artigos sobre iptables e realmente devo lhe dar os parabéns.
Muito bem escrito e vai nos pontos que realmente importam para começar a entender sobre iptables e construir firewalls (que não é uma tarefa das mais fáceis).
Explicar o conceito é muito mais importante do que apenas listar os comandos, e você fez isto aqui muito bem.
Estou entendendo e me familiarizando muito mais com iptables e suas tabelas, que até pouco tempo faziam alguma confusão na minha cabeça.

Mais uma vez, parabéns pelo excelente artigo.

Um abraço,

Tiago
#6 Comentário enviado por Bique em 25/07/2007 - 06:37h
Parabens pelo artigo, afinal por vezes implementamos e não conhecemos algumas funcionalidades básicas.

Um abraço
#7 Comentário enviado por capitainkurn em 29/07/2007 - 13:08h
Ótimo artigo, muito didático... Eu mesmo que não sou novo toda hora erro meus scripts por trocar o PRE por POST e vice-versa. Tendo que sempre consultar o pai-dos-burros (Guia foca cap. 10 módulo avançado), não sou bom em memorizar coisas repetitivas.
#8 Comentário enviado por removido em 30/07/2007 - 18:22h
Parabéns pelo artigo ! :-)
#9 Comentário enviado por kabalido em 04/12/2007 - 19:00h
Sensacional cara. Parabéns!!! Com certeza um dos melhores artigos que já li aqui no VOL.
Esse artigo me tirou muitas dúvidas sobre iptables.
Parabéns mais uma vez.
#10 Comentário enviado por irado em 01/09/2008 - 16:24h
wowwww... só na primeira olhada que dei na figura de estrutura eu compreendi COMO se processa a filtragem de pacotes, que pega quem... caramba, parabéns pra vc é pouco, que tal uma cerva geladinha? eu pago, não se preocupe, afinal tô convidando é pq me fez um grande bem os seus dois artigos (nem vou falar naquêle de mascara de rede - tão simples que ATÉ EU consegui entender - risos).

parabéns grandão, garoto :) quando crescer vou querer saber tanto quanto vc.
#11 Comentário enviado por rogerio_gentil em 10/03/2009 - 11:16h
Parabéns Elgio. Este artigo está sensacional. Gostei muito do primeiro artigo (1ª parte) sobre a tabela filter. Porém, este sobre a tabela nat é o que eu estava buscando para compreênde-la. Gostaria de enfatizar à você e a todos os contribuidores de artigos a importância de descrever as refências. Nada vem da cabeça! Tudo tem um ponto de partida ... e o meu começou aqui!
Abraços.
#12 Comentário enviado por fernandofranco em 05/11/2009 - 16:25h
Amigo como faço pra proteger essa regra contra ataques. Estou recebendo um mote de virus quando faço esse direcionamento.

Por favor, preciso de ajuda.......

##########################
## TABELA NAT ##
##########################
### DIRECIONAMENTO SQL 1433 ##
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1433 -j DNAT --to 192.168.0.101
iptables -t nat -A PREROUTING -i eth1 -p udp --dport 1433 -j DNAT --to 192.168.0.101
#13 Comentário enviado por schenkmh em 15/10/2010 - 10:23h
Olá Elgio

Em primeiro lugar parabéns pelos artigos. Li alguns e estão me ajudando muito a ter uma compreensão melhor sobre firewall e iptables. Gostaria de me aprofundar mais sobre as tabelas filter, nat e mangle. Principalmente sobre a tabela mangle que me parece um assunto mais avançado no que diz respeito aos recursos do iptables.
Não encontrei nenhum material que explique a fundo esta tabela, teria alguma dica? Como posso entender melhor suas funções?

Agradeço a atenção, abraço

Marco


#14 Comentário enviado por wagneralves em 08/05/2012 - 12:58h
Parabéns pelo artigo!
#17 Comentário enviado por elgio em 05/11/2013 - 21:46h
Estranhamente a tabela nat passou a atuar no gancho INPUT a partir do kernel 2.6.36.
Ainda não consegui entender qual a necessidade disto. Se alguém souber, fico grato.
#19 Comentário enviado por donr em 06/05/2015 - 12:06h

Excelente artigo

Contribuir com comentário

Entre na sua conta para comentar.