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

Cleber Souza cleber.lists em gmail.com
Domingo Outubro 11 13:35:42 UTC 2009


Oi Marcelo, tudo bem?

Excelente trabalho. Acredito que outros na comunidade CentOS gostariam
destas instruções. Você não gostaria de disponibilizar na wiki do
CentOS. Talvez precisaria só traduzir para o inglês.

Se precisar de qualquer ajuda pode contar comigo.

Até mais,

2009/10/10 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
> -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 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
>



-- 
Cleber Paiva de Souza


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