cara, parabens ta show di bola, nao esqueça de informar no artigo os pacotes que devem estar instalados no sistema para que nao tenhamos problemas na hora da compilação ...
Bem pessoal,
Aqui abaixo vai a versão que pretendo deixar como artigo. Espero que seja
bem útil. :)
Este é um artigo explicando como colocar o suporte ao layer7 no CentOS 5.3.
Para isso precisaremos modificar tanto o pacote .rpm do kernel quanto do
iptables,
porque ambos precisarão ter suporte à este.
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/
Vamos editar o kernel-2.6.spec e adicionar 2 entradas nele e modificar 1.
Localize a linha:
%define dist .el5
Altere para algo como:
%define dist .el5mgc
Depois localize a linha abaixo:
Patch24387: linux-2.6-misc-information-leak-in-sigaltstack.patch
Adicione a seguinte linha abaixo:
Patch24388: kernel-2.6.18-2.6.19-layer7-2.9.patch
Agora localize a linha:
%patch24387 -p1
Adicione logo abaixo:
%patch24388 -p1
Salve e saia do kernel-2.6.spec
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/SOURCES
Agora vamos em /usr/src/redhat/SOURCES e mexeremos em cada arquivo
kernel-*.config:
-rw-rw-r-- 1 root root 72543 Out 8 15:59 kernel-2.6.18-i586.config
-rw-rw-r-- 1 root root 72275 Out 8 15:59 kernel-2.6.18-i686.config
-rw-rw-r-- 1 root root 72154 Out 8 15:59 kernel-2.6.18-i686-debug.config
-rw-rw-r-- 1 root root 72275 Out 8 16:00 kernel-2.6.18-i686-PAE.config
-rw-rw-r-- 1 root root 73404 Out 8 16:00 kernel-2.6.18-i686-xen.config
-rw-rw-r-- 1 root root 69726 Out 8 16:00 kernel-2.6.18-ia64.config
-rw-rw-r-- 1 root root 69605 Out 8 16:00 kernel-2.6.18-ia64-debug.config
-rw-rw-r-- 1 root root 71344 Out 8 16:00 kernel-2.6.18-ia64-xen.config
-rw-rw-r-- 1 root root 70413 Out 8 16:01 kernel-2.6.18-ppc64.config
-rw-rw-r-- 1 root root 70292 Out 8 16:01 kernel-2.6.18-ppc64-debug.config
-rw-rw-r-- 1 root root 70433 Out 8 16:01 kernel-2.6.18-ppc64-kdump.config
-rw-rw-r-- 1 root root 69923 Out 8 16:01 kernel-2.6.18-ppc.config
-rw-rw-r-- 1 root root 69940 Out 8 16:01 kernel-2.6.18-ppc-smp.config
-rw-rw-r-- 1 root root 69057 Out 8 16:02 kernel-2.6.18-s390.config
-rw-rw-r-- 1 root root 69067 Out 8 16:02 kernel-2.6.18-s390x.config
-rw-rw-r-- 1 root root 68957 Out 8 16:02 kernel-2.6.18-s390x-debug.config
-rw-rw-r-- 1 root root 71509 Out 8 16:02 kernel-2.6.18-s390x-kdump.config
-rw-rw-r-- 1 root root 70598 Out 8 16:03 kernel-2.6.18-x86_64.config
-rw-rw-r-- 1 root root 70477 Out 8 16:03 kernel-2.6.18-x86_64-debug.config
-rw-rw-r-- 1 root root 71767 Out 8 16:03 kernel-2.6.18-x86_64-xen.config
Dentro de cada um deles procure pela linha:
CONFIG_IP_NF_MATCH_IPRANGE=m
Logo abaixo dela adicione essas 2 linhas:
CONFIG_IP_NF_MATCH_LAYER7=m
# CONFIG_IP_NF_MATCH_LAYER7_DEBUG is not set
Vamos baixar o fonte do pacote hmaccalc que estará disponível no CentOS 5.4:
# cd /usr/src
# wget -c
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/hmaccal
c-0.9.6-1.el5.src.rpm
# rpmbuild --rebuild hmaccalc-0.9.6-1.i386.rpm
# rpm -ivh /usr/src/redhat/RPMS/i386/hmaccalc-0.9.6-1.i386.rpm
Agora vamos gerar nosso novo binário do kernel já com suporte ao layer7:
# cd /usr/src/redhat/SPECS
# rpmbuild -bb --without kabichk --without debug --without debuginfo
--without xen --target=`uname -m` kernel-2.6.spec
O comando acima não gerará um binário do kernel para Xen. Se for precisar
basta remover.
Após o build teremos o kernel com todos os patches da RH aplicados e mais o
nosso layer7. :)
Agora basta ir na arquitetura que está usando e instalar o novo kernel e
fazer um reboot usando este novo kernel. Abaixo o exemplo:
# rpm -ivh /usr/src/redhat/RPMS/i686/kernel-2.6.18-164.el5mgc.i686.rpm
# rpm -ivh /usr/src/redhat/RPMS/i686/kernel-devel-2.6.18-164.el5mgc.i686.rpm
Agora vamos precisar recompilar o iptables com suporte ao layer7.
# 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-p
re2.6.20-layer7-2.21.patch /usr/src/redhat/SOURCES/
# cd /usr/src/redhat/SPEC
Edite o iptables.spec e adicione no topo do arquivo a linha:
%define dist el5mgc
Eu dei o nome el5mgc mas poderia ser el5custom ou como desejar.
Vamos adicionar os patches do layer7 nos lugares como abaixo. Como o último
patch era o Patch12, então criei o Patch13:
Patch12: iptables-1.3.5-headers.patch
Patch13: iptables-1.3-for-kernel-pre2.6.20-layer7-2.21.patch
.
.
.
%patch12 -p1 -b .headers
%patch13 -p1
Por último procure a linha:
%build
E adicione a seguinte linha acima do %build como abaixo:
chmod 755 /usr/src/redhat/BUILD/iptables-1.3.5/extensions/.layer7-test
%build
Salve o iptables.spec e faça:
# rpmbuild -bb iptables.spec
Quando acabar teremos em /usr/src/redhat/RPMS/i386/ o pacote
iptables-1.3.5-4el5mgc.i386.rpm do iptables já com suporte ao layer7. Agora
é só instalar ele e usar.
Para ter certeza que o seu iptables vai ter o suporte ao layer7, depois de
instalar o pacote procure por libipt_layer7.so em /lib/iptables
# rpm -Uvh /usr/src/redhat/RPMS/i386/iptables-1.3.5-4el5mgc.i386.rpm
Bem espero ter ajudado :)
Marcelo Gondim <gondim@linuxinfo.com.br>
__________ Informação do ESET NOD32 Antivirus, versão da vacina 4494
(20091009) __________
A mensagem foi verificada pelo ESET NOD32 Antivirus.
http://www.eset.com
_______________________________________________
CentOS-pt-br mailing list
CentOS-pt-br@centos.org
http://lists.centos.org/mailman/listinfo/centos-pt-br