[CentOS-pt-br] RES: Primeira versão do artigo de como modificar os pacotes do kernel e iptables para adicionar o layer7

Marcelo Gondim gondim em linuxinfo.com.br
Terça Outubro 13 22:56:25 UTC 2009


Depois que você criou o binário do Kernel já com o suporte ao L7, você
instalou ele com o rpm -ivh? Depois que instalar o kernel novo, reboot e
entre com o kernel novo e aí você parte para o iptables. Porque você precisa
estar usando o kernel com suporte para que o pacote do iptables seja gerado
com o suporte ao layer7.  Para ver qual arquitetura vc compilou o kernel
faça esse comando: uname -m

 

De: centos-pt-br-bounces em centos.org [mailto:centos-pt-br-bounces em centos.org]
Em nome de Wagner Quedi
Enviada em: terça-feira, 13 de outubro de 2009 17:33
Para: Portuguese (Brazilian) CentOS mailing list
Assunto: Re: [CentOS-pt-br] Primeira versão do artigo de como modificar os
pacotes do kernel e iptables para adicionar o layer7

 

terminei a instalação do layer7 .. algumas coisas no final do artigo estao
como i386 e ai confunde um pouco .. na proxima revisao veja se é isso mesmo
ou se é pra usar o x86_64

 

agora ..nao consegui encontrar o arquivo libipt_layer7.so

 

como posso comprovar que instalou tudo certinho ?

 

2009/10/9 Marcelo Gondim <gondim em 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
<http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.3/updates/SRPMS/kerne
l%0d%0a-2.6.18-164.el5.src.rpm> 
-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
<ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/hmacca
lc-0.9.6-1.el5.src.rpm> 
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.
<http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.3/os/SRPMS/iptables-1
.%0d%0a3.5-4.el5.src.rpm> 
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 em 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 em 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 em quedinet.com.br
Site: www.quedinet.com.br
------------------------------------------------------

 

__________ Informação do ESET NOD32 Antivirus, versão da vacina 4504
(20091013) __________

 

A mensagem foi verificada pelo ESET NOD32 Antivirus.

 

http://www.eset.com

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://lists.centos.org/pipermail/centos-pt-br/attachments/20091013/fea4e1b9/attachment-0001.html 


Mais detalhes sobre a lista de discussão CentOS-pt-br