Neste artigo procuro mostrar a estrutura - tabelas, cadeias e regras - a configuração, a criação de regras do firewall Netfilter/Iptables - nativo do Linux desde a versão 2.4.0 do kernel - bem como suas principais opções para criação de regras de firewall.
A estrutura lógica do Netfilter/Iptables é composta de tabelas, que são parte do Netfilter, ou seja, existem no kernel do Linux. Cadeias ou chains são a subdivisão lógica das tabelas, para melhor tratamento das regras de firewall.
4.1 Tabelas
As tabelas são parte da divisão do Netfilter onde as regras do Iptables são colocadas. Elas são utilizadas de acordo com a utilização do computador: workstation, gateway ou router, por exemplo.
No Netfilter atualmente existem três tabelas:
filter
Tabela padrão. Contém três cadeias básicas: INPUT, FORWARD e OUTPUT;
nat
Tabela para pacotes que queiram criar uma nova conexão, utilizada em um computador funcionando como gateway ou roteador. Tem as cadeias PREROUTING, OUTPUT e POSTROUTING;
mangle
Tabela utilizada para alterações nos pacotes. Desde o kernel 2.4.18 tem as cadeias PREROUTING, OUTPUT, INPUT, FORWARD e POSTROUTING.
4.2. Cadeias
No Netfilter/Iptables existe o conceito de cadeias ou "chains". Essas cadeias nada mais são que a divisão das regras do iptables em conjuntos mais lógicos, para melhorar o entendimento de como o Netfilter processa os pacotes. Este conceito foi implementado já no Ipchains, mas foi melhorado no iptables.
No iptables existem as seguintes cadeias:
INPUT
Utilizada em pacotes que estão chegando ao host
FORWARD
Utilizada para pacotes roteados pelo host
OUTPUT
Utilizada para pacotes originados no host
PREROUTING
Utilizada para alterar pacotes que estão chegando ao host
POSTROUTING
Utilizada para alterar pacotes que estão saindo do host
4.3. Regras
As regras são constituídas de um conjunto de classificadores e uma ação, política de firewall. Um pacote ao se deparar com uma regra é testado com os classificadores, se ele passar é definida uma ação ou política para aquele pacote, se ele não passar é comparado à próxima regra chegando até a regra padrão da cadeia em que ele se encontra.
[1] Comentário enviado por PCMasterPB em 29/10/2005 - 22:10h
Cara, seu artigo está ótimo, e qdo li ele finalmente entendi as benditas chains PREROUTING, POSTROUTING, INPUT, OUTPUT e FORWARD e qual a lógica delas. Muito bom mesmo.
[4] Comentário enviado por fabio em 30/10/2005 - 01:18h
Bom, como não tenho tempo nem dinheiro de sobra pra comprar e ler "vários" livros, esse artigo foi uma mão na roda, foi direto ao ponto. Muito bem escrito e explicado, meus parabéns!
Em tempo, você é do contra mesmo heim wrochal?!?! Ops. confundi... é articulador.
[5] Comentário enviado por removido em 30/10/2005 - 12:35h
Fábio,
Acho que vc esta me confudindo, estou apenas falando meu ponto de vista diante o artigo, que tudo que ele disse esta igual e similar o que esta escrito nos livros.
[6] Comentário enviado por removido em 30/10/2005 - 19:16h
estando ou não em um livro, é inegável que a abordagem de kilocan é bastante objetiva e esclarecedora, além do mais o próprio autor informa da bibliografia que a informação saiu das páginas de manual e devemos lembrar que nem todos dominam o idioma yankee.
excelente artigo!