Muito já se escreveu sobre iptables. Eu mesmo possuo alguns artigos. Mas este artigo, em especial, descreve os conceitos, o que é um firewall e suas classificações.
Outra classificação importante quanto ao filtro de pacotes é a abrangência do mesmo. Ele pode ser considerado como um filtro de host, protegendo apenas e unicamente a máquina na qual se encontra (frequentemente chamado de firewall pessoal) ou filtro de rede, para proteger uma rede inteira. O iptables pode ser ambos.
Um filtro de host normalmente tem menos trabalho. Como ele está protegendo apenas uma única máquina, aquela na qual se encontra instalado, ele pode realizar filtragens mais robustas, pois tem tempo para isto. Uma análise mais detalhada de um pacote demanda processamento, mas como os pacotes que entram ou saem da máquina não seriam tantos assim, este processamento não é crítico.
No mundo proprietário algumas ferramentas conhecidas como firewall pessoal acabam realizando outras tantas tarefas que não são de firewalls. Algumas abrem anexos de emails para procurar vírus (seria um antivírus incorporado ao firewall), ou analisam os pacotes a procura de padrões de invasões (seria um IDS).
Já um filtro de rede precisa se preocupar com pacotes que entram e saem da rede. Dependendo do tamanho desta rede e da largura de banda dela, colocar muitas regras e/ou regras muito complexas pode transformar o filtro em um gargalo. Esta é, inclusive, algumas das poucas críticas ao iptables. Como ele tem muito poder de filtragem, permitindo até mesmo filtrar por palavras (strings na área de dados), alguns administradores tendem a se empolgar e transformar seu firewall em um limitador de banda. Claro que se você tem uma rede Ethernet 100Mbps e um link com a Internet de 10Mbps, qualquer máquina com um bom processador atual irá filtrar com folga teus pacotes de e para a Internet, pois 10Mbps já seria um gargalo.
[11] Comentário enviado por leo4b em 18/08/2012 - 00:21h
Elgio, primeiramente parabéns pelos artigos.
Sobre a a filtragem na camada de enlace, ele trabalha diretamente nessa camada, ou ele "abre" a PDU na camada acima, analisando o cabeçalho da camada de enlace e depois "remonta" e aplica a filtragem?