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 ...

mas ta nota 10.

2009/10/9 Marcelo Gondim <gondim@linuxinfo.com.br>
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



--
Muitas pessoas poderiam ter sucesso em pequenas coisas se não se deixassem atormentar por grandes ambições!
------------------------------------------------------
Wagner Quedi Rosa .·.
QuediNet Internet Service
Soluções Inteligentes em T.I.

Fone: (69) 8403-1158
Skype: wagner_quedi
E-Mail/MSN: wagner@quedinet.com.br
Site: www.quedinet.com.br
------------------------------------------------------