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.