Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux



» Screenshot
Linux: Kurumim
Por heder.to
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper


Artigo

Estrutura do Iptables
Linux user
elgio
13/07/2007
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?
Por: Elgio Schlemer
[ Hits: 119232 ]
Conceito: 9.4   34 voto(s)34 voto(s)34 voto(s)34 voto(s)34 voto(s) + quero dar nota ao artigo

Introdução: o que esperar deste artigo

Ao contrário de outros artigos e tutoriais sobre iptables, este não se dispõe a ensinar sua sintaxe, como construir regras e como bloquear este ou aquele tipo de pacote. Artigos meus futuros poderão passear por este caminho, muito embora já se tenha muito material na Internet sobre isto.

Ele se destina a explicar a origem dos termos "tabelas" do iptables, o que é e para que servem as tabelas nat, filter e mangle. Onde, ou seja, em qual tabela se deve colocar as regras para este ou aquele objetivo.

Este artigo aproveita também para esclarecer algumas diferenças interessantes, como para que serve o REJECT e qual a diferença dele para o DROP?

Algumas definições serão relevantes e merecem serem citadas antes da leitura:

Quando falo de "nível" no artigo (ex: nível de Enlace) estou me referindo ao modelo de camadas TCP/IP, composto por apenas QUATRO camadas e não SETE como no modelo OSI. No modelo TCP as camadas são o ENLACE, onde se tem na sua imensa maioria o padrão de rede Ethernet como referência:
  • O nível de REDE, responsável pelo roteamento, onde se tem o IP na sua versão 4 como mais significativo;
  • O nível de TRANSPORTE, com seus pacotes UDP e TCP, dentre outros;
  • O o nível de aplicação, com os protocolos FTP, HTTP, etc;
  • O nível FÍSICO não faz parte do modelo de camadas TCP/IP, pois é restrito ao fabricante da placa.

Em termos de nomenclatura geralmente se generaliza chamando tudo de pacote. Porém, quando se quer deixar mais específico em qual nível estamos lidando, pode-se se usar a nomenclatura "quadro" para o nível de Enlace, "datagrama" ip para o nível de rede e "pacote" para o de transporte (sendo que o TCP muitas vezes usam a palavra "segmento"). Na aplicação o que tem são dados.

Mas como o iptables atua em princípio nas camadas de rede, ip de origem ou de destino, e na de transporte (porta origem e destino), o pacote pode ser considerado, neste artigo, como um termo genérico (OBS: é certo que o iptables também permite atuar no enlace e até mesmo na aplicação, com os devidos módulos adicionados).

Próxima página >>


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

Leitura recomendada

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 Gerson Raymond 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 jlojunior 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 jlojunior em 17/07/2007 - 11:18h:

Como já respondi via email, muito obrigado!

[18] Comentário enviado por jlojunior 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 cbolovo em 20/04/2009 - 21:27h:

Artigo obrigatório! Parabéns!

[33] Comentário enviado por bento.linux 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...

[34] Comentário enviado por bento.linux 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...


Contribuir com comentário
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Copyleft 2002-2009 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.