terça-feira, 23 de agosto de 2011

Maratona: Instalando Mod_security 2.6.1 em um apache

Nunca achei que o Mod_security, versão 2.6.1 tivesse tantos problemas de compilação. Tentei há 1 semana instalá-lo em uma Apache versão 2.2.14, tudo bem, vários irão dizer que é uma release bem antiga e que precisava atualizá-la. Feito isso para última release, 2.2.19, com todos os módulos e libaries do S.O., que por sinal é o Red Hat Enterprise Server 6, iniciei a compilação do Mod_security.
De cara, eu tomei um erro pela falta da library pre_cre, a de desenvolvimento e não a que já estava instalada. :) Reli o readme.txt, a documentação dele e nada. Parti par ao velho e conhecido Google e uma boa alma me apontou o caminho das pedras, mas que infelizmente não funcionou pois o cara conseguiu colocar para funcionar o mod_security em uma versão anterior :(
Well, estou com o seguinte erro agora:
-Wl,-soname -Wl,mod_security2.so -o .libs/mod_security2.so
/usr/bin/ld: cannot find -lexpat
collect2: ld returned 1 exit status
make[2]: *** [mod_security2.la] Error 1
make[2]: Leaving directory `/tmp/modsecurity-apache_2.6.1/apache2'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/modsecurity-apache_2.6.1/apache2'
make: *** [all-recursive] Error 1
é claro que eu não posso esquecer de mencionar que rodei a seguinte linha de comando:
./configure --with-apxs=/app/apache/httpd-2.1.19/bin/apxs /
--with-apr=/app/apache/httpd-2.1.19/bin/apr-1-config /
--with-apu=/app/apache/httpd-2.1.19/bin/apu-1-config
Já instalei, reconfigurei e link diversas libraries e nada – vou pesquisar mais à tarde.
P.S.: se alguém já passou por este problema e sabe o caminho das pedras, quer dizer, instalar o tão recomendado mod_security em um Red Hat sem problemas, avise-me por favor. Ficarei muito feliz em dizer que o time de desenvolvimento deste cara fez um puta trabalho em criar algo que instala. :)
P.S.2: Estou reinstalando todos os pre-reqs e recriando os links para reiniciar o processo de compilação do Mod_Security, mais uma vez :)
P.S.3 – Fixed: O meu amigo VulgoToc conseguiu resolver o problema – faltava uma biblioteca no RedHat, a expat-devel-2.0.1-9.1.el6.x86_64.rpm. Depois que dei um rpm -ihv expat-devel-2.0.1-9.1.el6.x86_64.rpm e rodei o make && make install, o mod_security foi instalado.
Além dos pré-requisitos apontados pelo site do próprio mod_security, você precisa instalar mais duas bibliotecas no Red Hat (glibc-static-2.12-1.25.el6.x86_64.rpm e a expat-devel-2.0.1-9.1.el6.x86_64.rpm), não esquecendo é claro de rodar aquela linha de comando do ./configure
Vejam que o módulo do mod_security foi compilado e copiado para o diretório modules dentro do apache
root@localhost modules]# pwd
/app/apache/httpd-2.1.19/modules

[root@localhost modules]# ls -ltr mod_security2.so
-rwxr-xr-x 1 root root 1327910 Aug 21 21:57 mod_security2.so
[root@localhost modules]#
Porém, ele não está configurado no httpd.conf, você precisa adicioná-lo, configurar as regras do mod_security e depois realizar o restart do apache com o comando apachectl restart

Nenhum comentário:

Postar um comentário