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 ...<div><br></div><div>mas ta nota 10.<br><br><div class="gmail_quote">
2009/10/9 Marcelo Gondim <span dir="ltr">&lt;<a href="mailto:gondim@linuxinfo.com.br">gondim@linuxinfo.com.br</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Bem pessoal,<br>
<br>
Aqui abaixo vai a versão que pretendo deixar como artigo. Espero que seja<br>
bem útil.  :)<br>
<br>
<br>
<br>
Este é um artigo explicando como colocar o suporte ao layer7 no CentOS 5.3.<br>
Para isso precisaremos modificar tanto o pacote .rpm do kernel quanto do<br>
iptables,<br>
porque ambos precisarão ter suporte à este.<br>
<br>
<br>
Primeiramente vamos baixar o source do kernel:<br>
<br>
# cd /usr/src<br>
# wget -c<br>
<a href="http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.3/updates/SRPMS/kernel
-2.6.18-164.el5.src.rpm" target="_blank">http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.3/updates/SRPMS/kernel<br>
-2.6.18-164.el5.src.rpm</a><br>
# rpm -ivh kernel-2.6.18-164.el5.src.rpm<br>
# cd /usr/src/redhat/SPECS/<br>
<br>
Vamos editar o kernel-2.6.spec e adicionar 2 entradas nele e modificar 1.<br>
Localize a linha:<br>
<br>
%define dist .el5<br>
<br>
Altere para algo como:<br>
<br>
%define dist .el5mgc<br>
<br>
Depois localize a linha abaixo:<br>
<br>
Patch24387: linux-2.6-misc-information-leak-in-sigaltstack.patch<br>
<br>
Adicione a seguinte linha abaixo:<br>
<br>
Patch24388: kernel-2.6.18-2.6.19-layer7-2.9.patch<br>
<br>
Agora localize a linha:<br>
<br>
%patch24387 -p1<br>
<br>
Adicione logo abaixo:<br>
<br>
%patch24388 -p1<br>
<br>
Salve e saia do kernel-2.6.spec<br>
<br>
Agora vamos em <a href="http://sourceforge.net/projects/l7-filter/files/" target="_blank">http://sourceforge.net/projects/l7-filter/files/</a> e baixamos o<br>
netfilter-layer7-v2.22.tar.gz em /usr/src<br>
<br>
Descompacte o programa e dentro do diretório &quot;for_older_kernels/&quot; pegue o<br>
patch kernel-2.6.18-2.6.19-layer7-2.9.patch e<br>
jogue no diretório: /usr/src/redhat/SOURCES<br>
<br>
Agora vamos em /usr/src/redhat/SOURCES e mexeremos em cada arquivo<br>
kernel-*.config:<br>
<br>
-rw-rw-r-- 1 root root 72543 Out  8 15:59 kernel-2.6.18-i586.config<br>
-rw-rw-r-- 1 root root 72275 Out  8 15:59 kernel-2.6.18-i686.config<br>
-rw-rw-r-- 1 root root 72154 Out  8 15:59 kernel-2.6.18-i686-debug.config<br>
-rw-rw-r-- 1 root root 72275 Out  8 16:00 kernel-2.6.18-i686-PAE.config<br>
-rw-rw-r-- 1 root root 73404 Out  8 16:00 kernel-2.6.18-i686-xen.config<br>
-rw-rw-r-- 1 root root 69726 Out  8 16:00 kernel-2.6.18-ia64.config<br>
-rw-rw-r-- 1 root root 69605 Out  8 16:00 kernel-2.6.18-ia64-debug.config<br>
-rw-rw-r-- 1 root root 71344 Out  8 16:00 kernel-2.6.18-ia64-xen.config<br>
-rw-rw-r-- 1 root root 70413 Out  8 16:01 kernel-2.6.18-ppc64.config<br>
-rw-rw-r-- 1 root root 70292 Out  8 16:01 kernel-2.6.18-ppc64-debug.config<br>
-rw-rw-r-- 1 root root 70433 Out  8 16:01 kernel-2.6.18-ppc64-kdump.config<br>
-rw-rw-r-- 1 root root 69923 Out  8 16:01 kernel-2.6.18-ppc.config<br>
-rw-rw-r-- 1 root root 69940 Out  8 16:01 kernel-2.6.18-ppc-smp.config<br>
-rw-rw-r-- 1 root root 69057 Out  8 16:02 kernel-2.6.18-s390.config<br>
-rw-rw-r-- 1 root root 69067 Out  8 16:02 kernel-2.6.18-s390x.config<br>
-rw-rw-r-- 1 root root 68957 Out  8 16:02 kernel-2.6.18-s390x-debug.config<br>
-rw-rw-r-- 1 root root 71509 Out  8 16:02 kernel-2.6.18-s390x-kdump.config<br>
-rw-rw-r-- 1 root root 70598 Out  8 16:03 kernel-2.6.18-x86_64.config<br>
-rw-rw-r-- 1 root root 70477 Out  8 16:03 kernel-2.6.18-x86_64-debug.config<br>
-rw-rw-r-- 1 root root 71767 Out  8 16:03 kernel-2.6.18-x86_64-xen.config<br>
<br>
Dentro de cada um deles procure pela linha:<br>
<br>
CONFIG_IP_NF_MATCH_IPRANGE=m<br>
<br>
Logo abaixo dela adicione essas 2 linhas:<br>
<br>
CONFIG_IP_NF_MATCH_LAYER7=m<br>
# CONFIG_IP_NF_MATCH_LAYER7_DEBUG is not set<br>
<br>
Vamos baixar o fonte do pacote hmaccalc que estará disponível no CentOS 5.4:<br>
<br>
# cd /usr/src<br>
# wget -c<br>
<a href="ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/hmaccal
c-0.9.6-1.el5.src.rpm" target="_blank">ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/hmaccal<br>
c-0.9.6-1.el5.src.rpm</a><br>
# rpmbuild --rebuild hmaccalc-0.9.6-1.i386.rpm<br>
# rpm -ivh /usr/src/redhat/RPMS/i386/hmaccalc-0.9.6-1.i386.rpm<br>
<br>
Agora vamos gerar nosso novo binário do kernel já com suporte ao layer7:<br>
<br>
# cd /usr/src/redhat/SPECS<br>
# rpmbuild -bb --without kabichk --without debug --without debuginfo<br>
--without xen --target=`uname -m` kernel-2.6.spec<br>
<br>
O comando acima não gerará um binário do kernel para Xen. Se for precisar<br>
basta remover.<br>
Após o build teremos o kernel com todos os patches da RH aplicados e mais o<br>
nosso layer7. :)<br>
<br>
Agora basta ir na arquitetura que está usando e instalar o novo kernel e<br>
fazer um reboot usando este novo kernel. Abaixo o exemplo:<br>
<br>
# rpm -ivh /usr/src/redhat/RPMS/i686/kernel-2.6.18-164.el5mgc.i686.rpm<br>
# rpm -ivh /usr/src/redhat/RPMS/i686/kernel-devel-2.6.18-164.el5mgc.i686.rpm<br>
<br>
<br>
Agora vamos precisar recompilar o iptables com suporte ao layer7.<br>
<br>
# cd /usr/src<br>
# wget -c<br>
<a href="http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.3/os/SRPMS/iptables-1.
3.5-4.el5.src.rpm" target="_blank">http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.3/os/SRPMS/iptables-1.<br>
3.5-4.el5.src.rpm</a><br>
# rpm -ivh iptables-1.3.5-4.el5.src.rpm<br>
# cp<br>
/usr/src/netfilter-layer7-v2.22/for_older_iptables/iptables-1.3-for-kernel-p<br>
re2.6.20-layer7-2.21.patch /usr/src/redhat/SOURCES/<br>
<br>
# cd /usr/src/redhat/SPEC<br>
<br>
Edite o iptables.spec e adicione no topo do arquivo a linha:<br>
<br>
%define dist el5mgc<br>
<br>
Eu dei o nome el5mgc mas poderia ser el5custom ou como desejar.<br>
<br>
Vamos adicionar os patches do layer7 nos lugares como abaixo. Como o último<br>
patch era o Patch12, então criei o Patch13:<br>
<br>
Patch12: iptables-1.3.5-headers.patch<br>
Patch13: iptables-1.3-for-kernel-pre2.6.20-layer7-2.21.patch<br>
.<br>
.<br>
.<br>
%patch12 -p1 -b .headers<br>
%patch13 -p1<br>
<br>
Por último procure a linha:<br>
<br>
%build<br>
<br>
E adicione a seguinte linha acima do %build como abaixo:<br>
<br>
chmod 755 /usr/src/redhat/BUILD/iptables-1.3.5/extensions/.layer7-test<br>
<br>
%build<br>
<br>
Salve o iptables.spec e faça:<br>
<br>
# rpmbuild -bb iptables.spec<br>
<br>
Quando acabar teremos em /usr/src/redhat/RPMS/i386/ o pacote<br>
iptables-1.3.5-4el5mgc.i386.rpm do iptables já com suporte ao layer7. Agora<br>
é só instalar ele e usar.<br>
Para ter certeza que o seu iptables vai ter o suporte ao layer7, depois de<br>
instalar o pacote procure por libipt_layer7.so em /lib/iptables<br>
<br>
# rpm -Uvh /usr/src/redhat/RPMS/i386/iptables-1.3.5-4el5mgc.i386.rpm<br>
<br>
Bem espero ter ajudado :)<br>
<br>
Marcelo Gondim &lt;<a href="mailto:gondim@linuxinfo.com.br">gondim@linuxinfo.com.br</a>&gt;<br>
<br>
<br>
__________ Informação do ESET NOD32 Antivirus, versão da vacina 4494<br>
(20091009) __________<br>
<br>
A mensagem foi verificada pelo  ESET NOD32 Antivirus.<br>
<br>
<a href="http://www.eset.com" target="_blank">http://www.eset.com</a><br>
<br>
<br>
_______________________________________________<br>
CentOS-pt-br mailing list<br>
<a href="mailto:CentOS-pt-br@centos.org">CentOS-pt-br@centos.org</a><br>
<a href="http://lists.centos.org/mailman/listinfo/centos-pt-br" target="_blank">http://lists.centos.org/mailman/listinfo/centos-pt-br</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Muitas pessoas poderiam ter sucesso em pequenas coisas se não se deixassem atormentar por grandes ambições!<br>------------------------------------------------------<br>Wagner Quedi Rosa .·.<br>
QuediNet Internet Service<br>Soluções Inteligentes em T.I.<br><br>Fone: (69) 8403-1158<br>Skype: wagner_quedi<br>E-Mail/MSN: <a href="mailto:wagner@quedinet.com.br">wagner@quedinet.com.br</a><br>Site: <a href="http://www.quedinet.com.br">www.quedinet.com.br</a><br>
------------------------------------------------------<br>
</div>