Instalando iptables l7filter ipp2p no Ubuntu 8.04

Instalando o kernel-source

Instale o código fonte do kernel do ubuntu

 sudo apt-get linux-source-{versao} build-essential libncurses5-dev

Baixe os seguintes pacotes, salvando no diretório /usr/src

 netfilter-layer7-v2.17.tar.gz (http://l7-filter.sf.net)
 l7-protocols-2008-12-18.tar.gz (http://l7-filter.sf.net)
 iptables-1.3.8.tar.bz2 (http://ftp.netfilter.org/pub/iptables/)
 ipp2p-0.8.2.tar.gz (http://www.ipp2p.org)

Acesso o diretório /usr/src e descompacte os pacotes:

 cd /usr/src
 tar zxf netfilter-layer7-v2.17.tar.gz
 tar jxf iptables-1.3.8.tar.bz2
 tar zxf l7-protocols-2008-12-18.tar.gz
 tar zxf ipp2p-0.8.2.tar.gz

Crie os links simbólicos para o kernel e iptables, caso não estejam criados:

 ln -s linux-source-2.6.24 linux
 ln -s iptables-1.3.8 iptables

Aplicando o patch do layer7

Precisamos aplicar os patchs do layer7 no kernel e no iptables, vamos começar pelo kernel. Acesse o diretório do kernel:

 cd /usr/src/linux

Aplique o patch com o seguinte comando:

 patch -p1 < ../netfilter-layer7-v2.17/kernel-2.6.22-2.6.24-layer7-2.17.patch

Agora acesse o diretório do iptables para aplicarmos o patch nele:

 cd /usr/src/iptables

Aplique o patch com o seguinte comando:

 patch -p1 < ../netfilter-layer7-v2.17/iptables-1.4-for-kernel-2.6.20forward-layer7-2.17.patch
 chmod +x extensions/.layer7-test

Corrigindo o ipp2p

A versão do ipp2p tem um problema de compilação, é necessário fazer uma alteração no arquivo Makefile. Acesse o diretório do ipp2p e altere o seguinte:

 cd /usr/src/ipp2p-0.8.2
 vi Makefile
 troque: ld -shared -o libipt_ipp2p.so libipt_ipp2p.o
 por:    $(CC) -shared -o libipt_ipp2p.so libipt_ipp2p.o

Recompilando o kernel

Antes de recompilar o kernel, é necessário marcar algumas opções. Acesso o diretório do kernel e execute:

 cd /usr/src/linux
 make menuconfig

Marque as opções com M:

 Networking->Networking options->Network packet filtering framework (Netfilter)->Core Netfilter Configuration
   <M>   "layer7" match support

Saia do menu e salve. Agora execute o comando para recompilar o kernel e os módulos

 make modules

Compilando o iptables

Antes de compilar o iptables, precisamos mudar o diretório de instalação padrão em seu código fonte, para manter a compatibilidade com o ubuntu. Acesse o diretório do iptables e altere o arquivo Makefile para o seguinte:

 cd /usr/src/iptables
 vi Makefile
 altere: PREFIX:=/usr/local
 para:   PREFIX:=/

Agora compile o iptables:

 make KERNEL_DIR=/usr/src/linux

Compilando o ipp2p

Acesse o diretório do ipp2p e execute:

 cd /usr/src/ipp2p-0.8.2
 make

Criando o instalador

Crie os seguintes diretórios no /root

 cd /root
 mkdir -p l7-filter-amd64-ubuntu-804-2.6.24-23/etc/l7-protocols/
 mkdir -p l7-filter-amd64-ubuntu-804-2.6.24-23/lib/modules/2.6.24-23-server/kernel/net/netfilter/
 mkdir -p l7-filter-amd64-ubuntu-804-2.6.24-23/lib/modules/2.6.24-23-server/kernel/net/ipv4/netfilter/
 mkdir -p l7-filter-amd64-ubuntu-804-2.6.24-23/lib/iptables

Copie os arquivos para os seus respectivos diretórios:

 cp /usr/src/linux/net/netfilter/*.ko /root/l7-filter-amd64-ubuntu-804-2.6.24-23/lib/modules/2.6.24-23-server/kernel/net/netfilter/
 cp /usr/src/linux/net/ipv4/netfilter/*.ko /root/l7-filter-amd64-ubuntu-804-2.6.24-23/lib/modules/2.6.24-23-server/kernel/net/ipv4/netfilter/
 cp /usr/src/l7-protocols-2008-12-18/protocols/* /root/l7-filter-amd64-ubuntu-804-2.6.24-23/etc/l7-protocols/
 cp /usr/src/ipp2p-0.8.2/libipt_ipp2p.so /root/l7-filter-amd64-ubuntu-804-2.6.24-23/lib/iptables
 cp /usr/src/ipp2p-0.8.2/ipt_ipp2p.ko /root/l7-filter-amd64-ubuntu-804-2.6.24-23/lib/modules/2.6.24-23-server/kernel/net/ipv4/netfilter/
 cp /usr/src/iptables/extensions/libipt_layer7.so /root/l7-filter-amd64-ubuntu-804-2.6.24-23/lib/iptables

Crie agora o arquivo install no diretório /root/l7-filter-amd64-ubuntu-804-2.6.24-23 com o seguinte conteúdo:

 #!/bin/bash
 cp -av lib/ /
 cp -av etc/ /
 depmod -a
 ldconfig
 exit 0

Dê permissão de execução para o script install:

 chmod 755 install

Crie agora um pacote compactado com este arquivo:

 cd /root/
 tar czf l7-filter-amd64-ubuntu-804-2.6.24-23.tar.gz l7-filter-amd64-ubuntu-804-2.6.24-23/

Se quiser instalar os pacotes nesta máquina, somente execute o comando ./install. Utilize o pacote compactado para distribuir estes modulos para outros computadores.

Pronto, os pacotes foram todos instalados, você já pode usar os novos recursos do seu iptables.

Sobre Rodrigo Tomazini 56 Artigos
Analista CNPI-P, Analista de Sistemas e Pós Graduado em Engenharia de Sistemas. Atua atualmente como Analista CNPI e Consultor de TI.