23 de mar. de 2010

L7 Filter no Slackware

Instalando o l7-filter no Slackware 10.2 com o Kernel 2.6.15.3

O L7 simplesmente o chamaremos assim é um classificador de protocolos para o Netfilter, e identifica pacotes na camada de plicação (camada 7 OSI), ele é mais um classificador assim como os que classificam MAC-Addresess, portas, endereços etc.
Com ele podemos controlar tudo o que passa pelo seu gateway, bloqueando msn. e-mail, navegação, P2P etc.

1 - Baixar os programas necessários.
http://l7-filter.sourceforge.net/
- Site do projeto
http://www.kernel.org/
- Site do Kernel
http://www.netfilter.org
- Site onde baixaremos o Iptables

2 - Aplicar os patches no Kernel.
Usamos em nosso caso o Kernel versão 2.6.15.3, o mais recente em 10/02/2006 data em que este tutorial foi escrito.
descompactamos o kernel para o diretório /usr/src/ onde será criado o diretório /linux-2.6.15.3, em seguida criamos o link simbólico para os fontes do novo kernel,(isso é importante pois o se não for feito haverá problemas na instalação do Iptables) finalmente a aplicação do patch conforme segue abaixo.

cd /usr/src/linux-2.6.15.3/
patch -p1 < /path/do/netfilter-layer7-v2.1/kernel-2.6.13-2.6.15-layer7-2.1.patch

Obs: Caso você já haja configurado este kernel antes de um "make mrproper" para zera-lo, pois do contrário o patch não será corretamente aplicado, ele não irá gerar a opção para habilitar o l7-filter.

3 - Configurando o Kernel
Abordarei apenas os ítens que se referem ao Netfilter e L7
make menuconfig

Code maturity level options > Prompt for development and/or incomplete code/drivers
habilite esta opção

Networking > Networking options > Network packet filtering (replaces ipchains) > IP: Netfilter Configuration > Layer 7 match support (EXPERIMENTAL)
Configure-o como módulo

Recompile o Kernel 2.6.15.3 na ordem abaixo, dentro do diretório dos fontes do Kernel
make clean
make bzImage
cp /usr/src/linux-2.6.15.3/System.map /boot/System.map-2.6.15.3
ln -sf /boot/System.map-2.6.15.3 /boot/System.map
cp /usr/src/linux-2.6.15.3/.config /boot/config-2.6.15.3
ln -sf /boot/config-2.6.15.3 /boot/config
cp /usr/src/linux-2.6.15.3/arch/i386/boot/bzImage /boot/vmlinuz-2.6.15.3
make modules
make modules install

Feito isso, adcione o novo Kernel ao lilo e reinicie a máquina

4 - Aplicando o patch ao Iptables
cd /path/do/iptables-1.3.5
patch -p1 < /path/do/netfilter-layer7-v2.1/iptables-layer7-2.1.patch

Devido a um pequeno bug do l7, você deverá alterar uma permissão.
chmod +x /path/do/iptables-1.3.5/extensions/.layer7-test

5 - Compilando o Iptables
Primeiramente remova a versão anterior do iptables
removepkg iptables
agora recompile-lo
make KERNELDIR=/usr/src/linux/
make KERNELDIR=/usr/src/linux/ install
ou simplesmente:
make
make install

6 - Instalando os protocolos do L7
cd /path/do/l7-protocols-2006-01-22
make install
Pronto! Os protocolos foram copiados para o diretório /etc/l7-protocols/

7 - Habilitando o serviço.
Primeiramente carregue o módulo do l7-filter com o comando: modprobe ipt_layer7
agora basta adcionar as regras bloqueando o que você desejar.
Ex:
iptables -A FORWARD -m layer7 --l7proto msnmessenger -s 192.168.10.0/24 -j DROP

A regra acima bloqueia o msn, mas se você quiser apenas bloquear a transferência de arquivos e não o msn todo usa a seguinte:
iptables -A FORWARD -m layer7 --l7proto msn-filetransfer -s 192.168.10.0/24 -j DROP

Há muito mais no site do projeto! bom trabalho!

Nenhum comentário:

Postar um comentário