Estrutura do IPTables 2: a tabela nat

Quais os poderes da tabela nat existente no iptables? E as listas PREROUTING, POSTROUTING, para que servem?

[ Hits: 249.844 ]

Por: Elgio Schlemer em 20/07/2007 | Blog: https://profelgio.duckdns.org/~elgio


Conclusão



Saber identificar onde cada tabela com suas respectivas listas atua e o poder que cada uma delas tem, é essencial para a correta construção de regras de firewall.

A figura 2 reúne todas as listas das tabelas filter e nat, identificando onde cada uma atua. A precedência das regras também está expressa na figura, pois em ganchos onde um pacote passa por mais de uma lista (como no exemplo do OUTPUT que passa pela nat OUTPUT e depois pela filter OUTPUT), saber qual delas será aplicada primeiro pode ser essencial.


Figura 2


Considerando que a tabela nat tem poder para reescrever números de ip e porta, deve-se ter em mente:

1. Para alterar ip ou porta de destino:

Isto deve NECESSARIAMENTE ser realizado antes da etapa de roteamento, pois o roteamento depende dos parâmetros de destino. Logo, as regras que alteram um pacote devem ser colocadas no nat PREROUTING, para pacotes que estão entrando na máquina, ou no nat OUTPUT, exclusivo para pacotes gerados por processos locais (pois eles não passam pelo PREROUTING). A ação básica (-j) que realiza esta alteração é DNAT (ou REDIRECT, para o IP do firewall).

2. Para alterar ip ou porta de origem:

Isto deve ser feito NECESSARIAMENTE após a etapa de roteamento, antes do pacote deixar a máquina em direção "ao mundo". Todos os pacotes que deixam a máquina, sejam os repassados ou os gerados localmente, passam pelo gancho POSTROUNTING, sendo que é neste local que se deve colocar as regras para alterar parâmetros de origem. A ação básica (-j) que realiza esta alteração é SNAT.

Também existem outras tabelas, como o mangle ou a raw, mas, por serem de uso muito particular, optei por não abordar nestes dois artigos. Contudo, só para não deixar passar, as listas da tabela raw vem antes de todas as demais, seguidas das listas da mangle e só depois vem as do nat e filter. Mangle atua em todos os ganchos.

Por fim, não poderia deixar de mencionar que isto é a ponta do iceberg sobre iptables. Por ser um filtro statefull, permite escrever regras muito interessantes e complexas, como limitar conexões, dropar pacotes randomicamente, realizar balanceamento de carga, e muito mais.

Página anterior     Próxima página

Páginas do artigo
   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
Outros artigos deste autor

Cuidado com números em Ponto Flutuante

Parâmetros interessantes do scanf e do printf em C

Introdução a criptografia

Criptografia assimétrica com o RSA

Mecanismo de firewall e seus conceitos

Leitura recomendada

Firewall rápido e seguro com iptables

Squid + iptables (método ninja)

Automatizando Firewall com IDS Snort e SnortSam

Firewall funcional de fácil manipulação

Script de firewall e análise de log

  
Comentários
[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!

[15] Comentário enviado por ntnbrito em 13/05/2013 - 10:36h

Muito bom! Parabéns cara.


ntnbrito
http://www.cursodelinux.org

[16] Comentário enviado por gargamel em 21/05/2013 - 10:35h

http:/ /www.gilix.com.br/rafael_cambui/tag/configuracao-de-um-firewall-com-iptables/

[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.

[18] Comentário enviado por elgio em 05/11/2013 - 21:47h


[16] Comentário enviado por gargamel em 21/05/2013 - 10:35h:

http:/ /www.gilix.com.br/rafael_cambui/tag/configuracao-de-um-firewall-com-iptables/


O item "Proteção contra Syn Flood" deve ser sumariamente REMOVIDO deste artigo. É um "atentado" ( # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT)

Referência: http://www.vivaolinux.com.br/artigo/Iptables-protege-contra-SYN-FLOOD

[19] Comentário enviado por donr em 06/05/2015 - 12:06h


Excelente artigo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts