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: 248.949 ]

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

Autenticação por desafio e resposta no SSH

255.255.255.0: A matemática das máscaras de rede

Estrutura do Iptables

Parâmetros interessantes do scanf e do printf em C

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

Leitura recomendada

Instalando um firewall mínimo em Debian

Firewall para o dia a dia

Entendendo TCP/IP (Parte 5) - Portas TCP/UDP

Fail2ban - Bloqueio de Peer-to-Peer (Ares, uTorrent) e Proxies (UltraSurf e Tor)

Como construir um firewall de baixo custo para sua empresa (parte 2)

  
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