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.825 ]

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


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.

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

Guerra Infinita, uma análise da Ciência da Computação

Armazenamento de senhas no Linux

Iptables protege contra SYN FLOOD?

Criptografia chave simétrica de bloco e de fluxo

Leitura recomendada

Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).

Firewall Linux - Roteamento avançado usando iproute2 e iptables (load balance)

IPtables - Trabalhando com Módulos

Firewall/Proxy (solução completa)

Trabalhando com CARP nos BSD's

  
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