Informática Numaboa - Linux
Filtragem de pacotes no Linux 2.4
Qui 26 Abr 2007 17:47 |
- Detalhes
- Categoria: Como fazer configurações
- Atualização: Quinta, 01 Janeiro 2009 03:06
- Autor: vovó Vicki
- Acessos: 10300
Um filtro de pacotes é uma peça de software que examina os cabeçalhos dos pacotes para decidir o que fazer com eles.
O filtro pode decidir sumir com o pacote ('DROP' é descartar o pacote como se nunca o tivesse recebido), aceitar o pacote ('ACCEPT' é deixar o pacote passar) ou fazer alguma coisa um pouco mais complicada.
No Linux, a filtragem de pacotes fica embutida no kernel (como um módulo ou fazendo parte do próprio kernel). Existem coisas um pouco mais elaboradas que podem ser feitas com os pacotes, mas a função básica de verificar os cabeçalhos para decidir o que deve acontecer com os pacotes nunca muda.
Para que servem os filtros de pacotes?
A filtragem de pacotes possui três funções principais: controle, segurança e supervisão de tráfego.
Controle
Se o Linux estiver sendo usado para conectar uma rede interna com outra externa (a Internet, por exemplo), então existe a possibilidade de liberar ou bloquear determinados tipos de tráfego. Por exemplo: como o cabeçalho dos pacotes contém o endereço de destino, é possível impedir que um pacote vá para certos lugares na rede externa. Outro exemplo seria bloquear sistematicamente a propaganda vinda de determinado domínio (do doubleclick.net, por exemplo) para não perder tempo com este tipo de bobagem (nem você, nem o seu navegador). Se o filtro de pacotes for informado de que deve bloquear qualquer pacote recebido ou enviado para o endereço, o problema estará resolvido (existe uma forma mais eficiente de atingir o mesmo objetivo... dê uma olhada no Junkbuster).
Segurança
Se o Linux for a única barreira entre o caos da Internet e sua rede configurada no capricho, é muito bom saber que se pode restringir o que costuma atropelar a porta. É possível, por exemplo, liberar tudo o que sai da sua rede e, ao mesmo tempo, dar um tombo no conhecido 'Ping da Morte' que costuma ser enviado por 'estrangeiros' mal intencionados. Outro exemplo é impedir que seu Linux seja 'telnetado'. Talvez você também queira (como a maioria das pessoas) ser apenas um observador da Internet e não um servidor da mesma, sem seu conhecimento ou autorização. Neste caso, basta usar um filtro de pacotes para rejeitar pacotes que chegam para iniciar e ativar conexões - com isto você impede que qualquer mané se conecte.
Supervisão
Máquinas da rede local mal configuradas podem começar a esparramar pacotes por todos os lados. Neste caso, é uma mão na roda se o filtro de pacotes avisar quando alguma coisa anormal estiver ocorrendo para que possamos dar um jeito na máquina mal comportada. Além do mais, nos dá a chance de matar a curiosidade
Filtros de pacotes no Linux
Os kernels do Linux possuem filtros de pacotes desde a série 1.1. A primeira geração, baseada no ipfw do BSD, foi adapatada por Alan Cox no final de 1994. Esta foi melhorada por Jos Vos e colaboradores para o Linux 2.0, onde a ferramenta do espaço do usuário 'ipfwadm' controlava as regras de filtragem do kernel. Em meados de 1998, para o Linux 2.2, Rusty Russel, com a ajuda de Michael Neuling, remodelou o kernel e disponibilizou a ferramenta 'ipchains'. Finalmente, em meados de 1999, o kernel foi aperfeiçoado e apareceu uma ferramenta de quarta geração para o Linux 2.4: a 'iptables'. Este tutorial foca especificamente esta ferramenta.
Você vai precisar de um kernel que tenha a infraestrutura do netfilter. O netfilter (filtro de rede) é um framework genérico embutido no kernel que abre as portas para outras coisas - o módulo iptables, por exemplo. Isto significa que você precisa do kernel 2.3.15 (ou posterior) e que responda 'Y' (sim) para o CONFIG_NETFILTER quando configurar o kernel.
A ferramenta iptables fala com o kernel informando quais pacotes devem ser filtrados. A não ser que você seja um programador ou absurdamente curioso e fizer as coisas por conta própria, esta será a ferramenta para controlar a filtragem de pacotes.
iptables
A ferramenta iptables insere e elimina regras das tabelas de filtragem de pacotes do kernel. Seja lá o que for que você inventar de colocar nas tabelas precisa ser fixado, senão será perdido no próximo reboot.
iptables é um substituto do ipfwadm e do ipchains.
Tornando as regras permanentes
A configuração do firewall é armazenada no kernel e é perdida em cada reboot. Pode-se usar o script iptables-save para guardar a configuração num arquivo e o iptables-restore para restaurar a configuração a partir de um arquivo.
Uma outra forma é colocar os comandos necessários para montar as regras num script de inicialização. Se algum comando falhar, você vai ter que se virar - geralmente o 'exec /sbin/sulogin' quebra o galho.
Guia realmente rápido para filtragem de pacotes
Esta é a sugestão do Rusty Russel, criador do ipchains:
## Inserir os módulos de rastreamento de conexão (não é necessário se já estiverem no kernel). # insmod ip_conntrack # insmod ip_conntrack_ftp ## Criar uma cadeia que bloqueia conexões novas, exceto se vierem de dentro. # iptables -N block # iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT # iptables -A block -j DROP ## Saltar para esta cadeia vindo das cadeias INPUT e FORWARD. # iptables -A INPUT -j block # iptables -A FORWARD -j block
- Anterior
- Próximo >>