Estrutura do Iptables

INPUT, OUTPUT, PREROUTING, POSTROUTING... Afinal, o que são estes nomes e em quais circunstâncias uma regra deve ir em um ou outro? E as tabelas filter, nat e mangle? Como o iptables é estruturado?

[ Hits: 324.087 ]

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


Conclusão



Este artigo teve como motivação apenas mostrar a estrutura interna do iptables e não ensinar a escrever regras sintaticamente corretas e poderosas.

Através do entendimento correto de como o iptables atua, pode-se determinar onde e de que forma pacotes devem ser filtrados:
  • Se estou configurando um firewall pessoal, na minha máquina desktop ou no meu servidor, sendo que ela não é roteador: as regras para filtrar o conteúdo deverão ir na tabela filter, na lista INPUT para filtrar o que está entrando na minha máquina, destinada ao IP dela e na tabela filter, lista OUTPUT para os pacotes gerados pela minha máquina.
  • Se estou configurando um firewall de rede, que filtra todo o conteúdo que entra e sai da minha rede para o mundo: as regras irão todas na tabela filter, lista FORWARD. Para representar o destino (está entrando ou está saindo) posso usar o parâmetro -i interface ou -o interface (o FORWARD é o único que permite -i e -o na mesma regra, querendo dizer, se estiver entrando por aqui e saindo por ali...).
  • Se meu firewall é um firewall de rede, mas também possui alguns serviços nele, como proxy ou de email, devo inserir regras tando no filter INPUT/OUTPUT para definir a política dele enquanto servidor, como no filter FORWARD para proteger minha rede. Regras adicionadas no filter FORWARD não atuam sobre pacotes destinados ao número IP de uma máquina.
  • Se desejo alterar características de ip ou porta, trocando-as, devo usar a tabela nat e para isto preciso aguardar o próximo artigo. :-D

Página anterior    

Páginas do artigo
   1. Introdução: o que esperar deste artigo
   2. Por onde passa um datagrama
   3. Ganchos do netfilter
   4. Enfim, as tabelas
   5. A tabela filter
   6. Conclusão
Outros artigos deste autor

Túneis cifrados com SSH

Iptables protege contra SYN FLOOD?

Criptografia assimétrica com o RSA

Parâmetros interessantes do scanf e do printf em C

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

Leitura recomendada

Recuperar a senha de root iniciando através do init=/bin/bash e alterando o arquivo /etc/shadow

Segurança em redes wireless

Portal de autenticação wireless (HotSpot)

Cheops: uma ótima ferramenta de rede

OUTGUESS: Oculte mensagens em fotos

  
Comentários
[1] Comentário enviado por baxman em 13/07/2007 - 08:33h

Excelente artigo. Mostra com muita clareza todos os aspectos envolvidos tanto no protocolo TCP/IP, como nas tabelas do netfilter.

[2] Comentário enviado por loammy em 13/07/2007 - 08:53h

Otimo artigo. Elgio, pode ter certeza que o seu artigo vai ajudar muitos usuarios iniciantes a entender como funciona o Netfilter/Iptables, fazendo com que eles mesmos criem regras personalizadas para cada caso. E muitos deles não precisaram ficar copiando scripts sobre Netfilter/Iptables de terceiros.

E finalmente alguem escreveu um artigo com muita clareza sobre a essencia do Netfilter/Iptables. Parabens...

[3] Comentário enviado por fag_oliv em 13/07/2007 - 08:54h

Excelente artigo professor ; ) . Agora tem que fazer o de nat, e demonstrar algumas regrinhas do mesmo (conforme seu artigo, nao e o seu foco).


Abraços ....

[4] Comentário enviado por V3rM3 em 13/07/2007 - 10:14h

Parabens pelo ótimo artigo! irá servir como base para muitos que queiram começar a estudar ipatables =D

[5] Comentário enviado por dailson em 13/07/2007 - 10:24h

Parabéns!! Um artigo excelente!

[6] Comentário enviado por m4rc310 em 13/07/2007 - 10:42h

Muito bom o artigo e muito bem explicado. As figuras ilustrativas mostrando os ganchos são informações valiosas. Parabéns.

[7] Comentário enviado por julianlinuxer em 13/07/2007 - 14:03h

Mostrou fácil, fácil a lógica do iptables pra galera, tem até coisa que eu não sabia, meus parabéns, Té+!!!

[8] Comentário enviado por fe.pinky em 13/07/2007 - 15:25h

Muito bom o artigo!
Esclarecedor e contribui muito para aprimorar os prévios conhecimentos!
[]´s

[9] Comentário enviado por zilli em 13/07/2007 - 16:48h

Tchê ! Parabéns .
Essa é a diferença entre didática e receita de bolo.
Continue assim, espero que seja o primeiro de vários.

Abraços,
Daniel




[10] Comentário enviado por an_drade em 13/07/2007 - 17:07h

Muito bom artigo!!! Muito explicativo, simples, conciso e curto. Excelente material p/ quem está começando a aprender iptables, e até mesmo noções de roteamente.

Merece ser repassado!!!

Aguardo pelos prómixos artigos!!!!

Carlos

[11] Comentário enviado por doliver em 14/07/2007 - 10:45h

Otimo Artigo!

Parabéns !!

[12] Comentário enviado por gersonraymond em 14/07/2007 - 12:12h

Meu caro amigo seu artigo e show de bola !! você define os processos de uma forma bastante clara e objetiva, parabéns.

[13] Comentário enviado por bitencourt em 15/07/2007 - 15:55h

Ae professor, muito legal o artigo, parabens, soh para variar bem feito e com muita qualidade como suas aulas!!


Abracos

[14] Comentário enviado por marcrock em 16/07/2007 - 14:27h

Excelente artigo!!!!
Claro e objetivo!!!

Valew.

[15] Comentário enviado por forkd em 17/07/2007 - 09:11h

Muito bom o artigo!
Só senti falta de referências... :(

[16] Comentário enviado por elgio em 17/07/2007 - 09:45h

"falta de referências"

Realmente, falha minha.
Quando fui estudar o ipfilter/iptables fui direto na fonte, lendo os howto e os tutoriais publicados:

http://www.netfilter.org/documentation/HOWTO//netfilter-hacking-HOWTO-3.html#ss3.1
Howto do netfilter, onde mostra os caminhos de um pacote.

http://iptables-tutorial.frozentux.net/iptables-tutorial.html
Tutorial do iptables. Destaque para a introdução sobre redes. Legal que ele inclusive descreve o novo protocolo SCTP, uma evolução do TCP, digamos assim.

ftp://ftp.registro.br/pub/gts/gts0103/gts-2003-artur_jarbas-iptables.pdf
Slides sobre o netfilter, muito completo, embora desatualizado (já se passaram 4 anos e muitos novos módulos do iptables foram amadurecidos ou construidos)



[17] Comentário enviado por forkd em 17/07/2007 - 11:18h

Como já respondi via email, muito obrigado!

[18] Comentário enviado por forkd em 17/07/2007 - 11:50h

Cara,

muito bom o tutorial de IPTables, heim? Tô lendo ele aqui!
Agora sim! Excelente referência pra um ótimo artigo!
Era isso que eu estava querendo há algum tempo!
Aguardo os próximos artigos da série!

Obrigado!

[19] Comentário enviado por hugoalvarez em 17/07/2007 - 20:28h

Gostei das figuras,

parabéns. hehehe

[20] Comentário enviado por adrianoturbo em 18/11/2007 - 22:01h

Interessante ter falado sobre as tabelas parabéns professor.

[21] Comentário enviado por juliocm em 15/01/2008 - 22:52h

Eita...Você copiou quase tudo do livro do Iptables...e mundo hacking...

[22] Comentário enviado por elgio em 17/01/2008 - 11:23h

Julio.

Tá bom, tá bom.
Tu realmente não gostou de minha manifestação no seu artigo (http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7393)

Faz um favor para o Vol: manda ai o link de onde "eu copiei" este meu artigo que escrevi. Sim, porque linha por linha do que está aqui eu escrevi de meu próprio punho.

Agora tu vai começar a me perseguir no Vol?
Vai ser divertido... :-D

[23] Comentário enviado por lipecys em 04/04/2008 - 09:38h

Simplesmente muito bom.

[24] Comentário enviado por felipe_pepii em 14/04/2008 - 22:40h

hahaah cada coisa que soh acontece aqui.. (comentarios acima)

Parabens, como sempre otimos artigos e esse nao eh diferente!!!
Abraços

[25] Comentário enviado por marcosfilho em 29/07/2008 - 12:41h

simplismente o melhor artigo que já vi de iptables. não adianta nada saber a sintaxe de criação de regras se não souber o conceito. parabéns!

[26] Comentário enviado por nuvem_negra em 01/09/2008 - 16:21h

Muito bom sem mais comentários.

[27] Comentário enviado por carlosdias98 em 28/10/2008 - 23:27h

Parabéns, muito bem explicado !

[28] Comentário enviado por carlaliliane em 15/11/2008 - 16:06h

Realmente muito bom....e muito útil também!!!!!! Parabéns!

[29] Comentário enviado por jonathan bispo em 02/01/2009 - 14:44h

Excelente artigo.
Era justamente essa explicação que eu estava buscando na internet.
Agora ficou muito mais simples entender as regras do iptables e configurá-las da forma que eu precisar.
Parabéns!!!


[30] Comentário enviado por andriopj em 06/03/2009 - 15:59h

cara
precisa falar mais alguma coisa?
acho q todo mundo ja disse

otimo tutorial

[31] Comentário enviado por schipfer em 27/03/2009 - 08:54h

parabéns

ótimo artigo

[32] Comentário enviado por jose.freitas.rj em 24/04/2009 - 12:16h

olá elgio! pelo que tenho visto, você saca muito de iptables e eu estou começando agora e estou com dúvidas. tenho 1 ADSL velox com ip dinâmico. tenho um servidor de internet com duas placas de rede. meu servidor está normalíssimo, mas meu único problemas é fazer meu ssh ser acessado pelo pessoal de fora da empresa, ou seja, pela internet, coisa que não estou conseguindo! neste servidor tenho uma placa de rede interna ligada na rede com o ip 192.168.3.252. já na placa que está ligada direto no modem ADSL o ip é 192.168.254.1 e o modem tem o ip 192.168.254.254.
minha dúvida é:
qual seria a regra de iptables pra liberar o pessoal de fora da empresa pela internet pra acessar meu servidor de vendas na porta 22 ssh que está atrás de servidor firewall? pelo fato de eu ter 2 placas rede, sendo uma ligada direto na rede e outra direto na porta WAN do modem não estou conseguindo cara! meu ajuda pelo amor de DEUS... ah! não tenho nem noção de como seria essa regra de direcionamento já que tenho 2 placas de rede!

abraços...

[33] Comentário enviado por jose.freitas.rj em 29/04/2009 - 13:45h

elgio, não precisa! já fiz e funcionou! :D
o comando "echo 1 > /proc/sys/net/ipv4/ip_forward" já faz o que eu quero!
ele é quem manda no DNAT e SNAT, sendo assim coloquei essas regras com a ajuda de um parceiro de linux chamado sylvio que me passou esses regras:

#DIRECIONANDO SSH DA INTERNET
iptables -A INPUT -i eth0 -s 0/0 -d 0/0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth0 -s 0/0 -d 0/0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -s 0/0 -p tcp --dport 22 -j DNAT --to 192.168.3.1:22


abraços...

[34] Comentário enviado por beckenjunior2002 em 17/09/2011 - 09:34h

artigo muito bom e bem didático...

[35] Comentário enviado por victormredes em 09/09/2012 - 22:09h

Excelente artigo, fiz questão de logar para comentar, clareou muito meu conceito sobre iptables.
Obrigado, abraço

[36] Comentário enviado por px em 18/07/2013 - 22:34h

Estava lendo os seus trabalhos, como o colega acima comentou, fiz questão de logar para votar tbm 10!




---
Atenciosamente, Pedro.

[37] Comentário enviado por malokagc em 24/07/2013 - 10:44h

Ajudou pra caramba... Acabei de entrar no Linux e hoje comecei a ler sobre a iptables e segurança. O VOl parece que adivinha tudo,..rs

[38] Comentário enviado por removido em 20/01/2014 - 21:10h

So para complementar,

O iptables possui uma caracteristica interessante que o seu antecessor ipchains não possuia, que a capacidade de STATE-FULL dos pocotes que correm nas chains que torna o firewall mais seguro entre outros beneficios.

Recentemente tive a oportunidade de estudar algumas ferramentas desenvolvidas pelo pessoal da netfilter.org e gostei muito das ferramentas de extenção do iptables para sincronismo de estados de conexões, muito util em ambiente de firewalls balanceados.


Att,

Tiago Eduardo Zacarias
LPIC-1

[39] Comentário enviado por segment em 19/07/2014 - 08:24h

Dei valor ao artigo...É isso ai ! Excelente

[40] Comentário enviado por wagnerfs em 10/09/2014 - 10:17h

Muito bom o artigo. Parabéns!

[41] Comentário enviado por danilofugi em 17/12/2014 - 14:15h

Excelente!! Esclareceu muito!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts