netfilter/iptables turbinado com layer7

Layer7 é um excelente plugin para o netfilter/iptables que trabalha na camada de aplicação, dando maior flexibilidade ao firewall. Este é um tutorial para aplicação do patch no kernel e no iptables.
baixar fontes do kernel (http://kernel.org)
baixar fontes do layer7 e os protocolos (http://sourceforge.net/projects/l7-filter)
baixar fontes do iptables (http://www.netfilter.org)
ftp://ftp.netfilter.org/pub/iptables/
descompactar kernel em /usr/src
descompactar layer7 e protocolos em /usr/src/layer7
aplicar patch do layer7:
cd /usr/src/linux
patch -p1 < /usr/src/layer7/netfilter-layer7-v2.9/kernel-2.6.18-2.6.19-layer7-2.9.patch
configurar o kernel: make menuconfig
habilitar as opções: (copiado descaradamente do blog do César Domingos)
Networking –>
Networking options –>
[*] Network packet filtering framework (Netfilter) –>
[*] Bridged IP/ARP packets filtering
Core Netfilter Configuration —>
-*- Connection tracking flow accounting
-*- Connection mark tracking support
[*] Connection tracking security mark support
[*] Connection tracking events (EXPERIMENTAL)
{M} Netfilter Xtables support (required for ip_tables)
[ ] Layer 7 debugging output
IP: Netfilter Configuration —>
…… (Tem mais opções antes)
Criar pacote .deb para instalar o kernel:
make-kpkg --revision=1 --append-to-version=-hbueno kernel_image
Criar ram drive para não dar pau na inicialização:
make-kpkg --append-to-version=“-hbueno” --initrd --us --uc kernel_image
Instalar o kernel:
dpkg -i linux-image-2.6.23.12-hbueno_1_i386.deb
Reinicie a máquina com o novo kernel
Decompactar fonte do iptables e entrar no diretório descompactado em /usr/src/layer7
Aplicar patch do layer7 no iptables:
patch -p1 < /usr/src/layer7/netfilter-layer7-v2.17/iptables-1.4-for-kernel-2.6.20forward-layer7-2.17.pa
chmod 755 extension/.layer7-test
make KERNEL_DIR=/usr/src/linux
make install KERNEL_DIR=/usr/src/linux
A instalação do layer7 no iptables está finalizada. Vamos agora instalar os protocolos.
cd /usr/src/layer7/l7-protocols-xxxx
make install
Exemplo de regra para testar:
iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP

