Bem aqui está o prometido :D
Primeiramente vamos baixar o source do kernel:
# cd /usr/src
# wget -c
http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.3/updates/SRPMS/kernel-2.6.18-164.el5.src.rpm
# rpm -ivh kernel-2.6.18-164.el5.src.rpm
# cd /usr/src/redhat/SPECS/
# rpmbuild --without fips -bp kernel-2.6.spec
Tive que usar o "--without fips" porque senão vai
exigir o pacote hmaccalc e ele só vai estar disponível no CentOS 5.4.
Após o build teremos o kernel com todos os patches da RH
aplicados. :)
# cd /usr/src
# ln -sf redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386 linux
Agora vamos em http://sourceforge.net/projects/l7-filter/files/
e baixamos o netfilter-layer7-v2.22.tar.gz em /usr/src
Descompacte o programa e dentro do diretório
"for_older_kernels/" pegue o patch kernel-2.6.18-2.6.19-layer7-2.9.patch
e
jogue no diretório: /usr/src/redhat/BUILD/kernel-2.6.18/
Depois faça isso:
# cd /usr/src/linux
# patch -p1 < ../kernel-2.6.18-2.6.19-layer7-2.9.patch
Dessa forma você vai aplicar o patch do layer7 no kernel. Logo
em seguida vai fazer:
# make menuconfig
Vai precisar marcar como módulo o layer7 no Netfilter e depois
de salvar basta fazer:
# make
Após compilar o kernel:
# cp ./net/ipv4/netfilter/ipt_layer7.ko /lib/modules/2.6.18-164.el5/kernel/net/ipv4/netfilter/
# depmod -a
# modprobe ipt_layer7
Bem nesse momento você já vai estar com o kernel usando o módulo
do layer7
Agora vais precisar recompilar o iptables com suporte ao layer7.
Não consegui fazer gerando o pacote .rpm por causa de permissões. Como são
02:42 da madruga
decidi fazer diferente. Se souberem uma maneira mais prática é
só complementarem. Aqui vai o que fiz:
# yum remove iptables
# cd /usr/src
# wget -c
http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.3/os/SRPMS/iptables-1.3.5-4.el5.src.rpm
# rpm -ivh iptables-1.3.5-4.el5.src.rpm
# cp
/usr/src/netfilter-layer7-v2.22/for_older_iptables/iptables-1.3-for-kernel-pre2.6.20-layer7-2.21.patch
/usr/src/redhat/SOURCES/iptables-1.3.5-layer7.patch
# cd /usr/src/redhat/SPEC
Edite o iptables.spec e adicione o layer7 nos lugares como
abaixo:
Patch12: iptables-1.3.5-headers.patch
Patch13: iptables-1.3.5-layer7.patch
.
.
.
%patch12 -p1 -b .headers
%patch13 -p1 -b .layer7
Salve e faça:
# rpmbuild -bb iptables.spec
Comigo ele jogou o patch no BUILD mas com permissão 000 e por
isso não gerou o pacote rpm com o layer7. Aí fiz o seguinte:
# cd /usr/src/redhat/BUILD/iptables-1.3.5/
# chmod 755 extensions/libipt_layer7*
# chmod 755 extensions/.layer7-test*
# make
# make install
Dessa forma você terá um iptables instalado com suporte ao
layer7.
Se alguém puder melhorar essa parte de gerar o .rpm com patch
seria melhor.
Bem espero ter ajudado :)
Marcelo Gondim <gondim@linuxinfo.com.br>