Implementando o layer 7 no Linux Debian Lenny, segue o tutorial:
Instalando pacotes necessários:
# aptitude install libncurses5-dev
# aptitude install kernel-package
# aptitude install zlib1g-dev
Entre no diretório source e faça download dos arquivos.
# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2
# wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.2.tar.bz2
# wget http://downloads.sourceforge.net/l7-filter/netfilter-layer7-v2.21.tar.gz
# wget http://downloads.sourceforge.net/l7-filter/l7-protocols-2008-04-23.tar.gz
# wget http://merkel.debian.org/~jurij/2.6.28-1/i386/config-2.6.28-1-686.gz
Remova o iptables:
# aptitude purge iptables
Descompactando os pacotes:
# tar jxvf linux-2.6.28.tar.bz2
# tar jxvf iptables-1.4.2.tar.bz2
# tar zxvf netfilter-layer7-v2.21.tar.gz
# tar zxvf l7-protocols-2008-04-23.tar.gz
# uncompress config-2.6.28-1-686.gz
Criando um link para o diretório do kernel:
# ln -s /usr/src/linux-2.6.28 /usr/src/linux
Copiando as configurações de boot e aplicando os patches do layer7 no kernel:
# cd /usr/src/linux
# cp ../config-2.6.28-1-686 .config
# patch -p1 < ../netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch
Compilando e instalando o kernel
# make oldconfig
(enter para todas as questões)
# make menuconfig
Entre no diretório Networking -> Networking Options -> Network Packet Filtering Framework (netfilter) -> Core Netfilter Configuration
Marque os módulos (M) layer7 match support e (M) string match support
(M) layer7 match support #MARCAR COMO MÓDULO
(M) string match support #MARCAR COMO MÓDULO
Saia pelo exit, na última tela, escolha a opção salvar para o arquivo .config, ou seja, no último exit você será questionado se deseja salvar. Agora é simples, basta compilar.
# make-kpkg -initrd kernel_image
Foi criado um arquivo linux-image-2.6.28_2.6.28-10.00.Custom_i386.deb no diretório /usr/src, volte ao diretório e instale.
# cd /usr/src
# dpkg -i linux-image-2.6.28_2.6.28-10.00.Custom_i386.deb
Pronto, o novo kernel já esta instalado.
Aplicando os patches no iptables e instalando
Digite:# cd /usr/src/iptables-1.4.2
Copie os arquivos libxt_layer7.c libxt_layer7.man para o diretório do iptables:
# cp ../netfilter-layer7-v2.21/iptables-1.4.1.1-for-kernel-2.6.20forward/* extensions/
Instalando o iptables:
# ./configure --with-ksource=/usr/src/linux
# make
# make install
# cd /usr/src/l7-protocols-2008-04-23
# make install
Pronto, só reiniciar e usar!
# reboot
Se por acaso o Debian não carregar o módulo automaticamente, execute o seguinte comando:
# modprobe ipt_layer7
Exemplo de regras:
iptables -A FORWARD -m layer7 --l7proto msnmessenger -j DROP
iptables -A FORWARD -m layer7 --l7proto http -j DROP
Se quiser saber quais os protocolos suportados consulte:
http://l7-filter.sourceforge.net/protocols
Fonte: http://www.vivaolinux.com.br/dica/Instacao-do-layer7-no-Debian-Lenny