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

P.S.4: Assumo que foi burrada minha, tava na cara que -lexpat era referente a não existência da Library.. hehe

Acabei esquecendo de falar que existem algumas bibliotecas que precisam ser instaladas:
pcre
pcre-devel
curl-devel
As bibliotecas acima serão instaladas facilmente com o YUM, já a biblioteca LIBXML2 deverá ser baixada e compilada com os comandos ./configure; make && make install.

Compartilhar:

Este post tem 8 comentários

  1. Já faz um tempo, mas na época eu fiz assim e rolou. Embora esteja em debian você pode adaptar.

    http://goo.gl/5OHJn

  2. Vc passou da compilação – no meu caso, ele nem compilou

  3. Esse tipo de erro provavelmente refere-se as depêndencias que as bibliotecas do mod_security usam, que não estão presentes no sistema.

    Uma forma de resolver isso seria em uma máquina a parte(de teste), instalar o mod_security pelo gerenciador de pacotes do red hat; nesse ponto ele vai indicar os pacotes faltantes e vai pedir para voce executar o yum com alguma opção para instalar as depêndencias faltantes( no debian é apt-get -f install).

    Se tudo der certo, depois você usa o comando “ld” para buscar as dependências do mod_security.

    Bom, talvez isso possa ajudar.

    Att,

    Victor

  4. Biblioteca de parser XML não encontrada. É só instalar:

    yum install expat
    ldconfig

  5. Olha só.. o meu amigo VulgoToc conseguiu resolver o problema

  6. Aee o VulgoToc merece uma camiseta!!

  7. Olá, eu acompanho o blog e fui instalar o mod_security 2.6.3 com apache2.2.17, eu habilitei este parametro no modsecuritty.conf,, “SecFilterEngine On”, porem esta aparecendo um erro ao verificar as opções do apache.

    apache2ctl configtest
    Syntax error on line 14 of /etc/apache2/modsecurity/modsecurity.conf:
    Invalid command ‘SecFilterEngine’, perhaps misspelled or defined by a module not included in the server configuration
    Action ‘configtest’ failed.

    Meu servidor web esta sofrendo um ataque de diversos ips.. e precisava achar uma maneira de bloquear isso, você sabe me dizer o porque deste erro .. ??

Deixe uma resposta

Fechar Menu