- Instalar as dependências:
apt-get install build-essential apache2-threaded-dev apache2 libpcre3-dev libpcre3 libxml2 libxml2-dev lua5.1 liblua5.1-dev libcurl3-dev
- Realizar o download do código fonte do ModSecurity:
cd /usr/local/src
wget http://www.modsecurity.org/download/modsecurity-apache_2.6.7.tar.gz
wget "http://downloads.sourceforge.net/project/mod-security/modsecurity-apache/2.6.7/modsecurity-apache_2.6.7.tar.gz.asc"
- Baixar o Core Rule Set:
wget "http://downloads.sourceforge.net/project/mod-security/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.5.zip"
wget "http://downloads.sourceforge.net/project/mod-security/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.5.zip.sig"
- Importar as chaves de assinatura em seu arquivo de chaves PGP:
# gpg --recv-keys 9624FCD2
gpg: porta-chaves `/root/.gnupg/secring.gpg' criado
gpg: requesting key 9624FCD2 from hkp server keys.gnupg.net
gpg: /root/.gnupg/trustdb.gpg: banco de dados de confiabilidade criado
gpg: key 9624FCD2: public key "Ryan Barnett (OWASP Core Rule Set Project Leader)
gpg: Número total processado: 1
gpg: importados: 1 (RSA: 1)
# gpg --recv-keys 6980F8B0
gpg: requesting key 6980F8B0 from hkp server keys.gnupg.net
gpg: key 6980F8B0: public key "Breno Silva Pinto
gpg: Número total processado: 1
gpg: importados: 1 (RSA: 1)
# gpg --verify modsecurity-apache_2.6.7.tar.gz.asc
gpg: Signature made Qui 02 Ago 2012 19:49:04 BRT using RSA key ID 6980F8B0
gpg: Good signature from "Breno Silva Pinto
gpg: AVISO: Esta chave não está certificada com uma assinatura confiável!
gpg: Não há indicação de que a assinatura pertence ao dono.
Impressão da chave primária: AB36 0F15 ACF8 D30F 806E 41D2 8050 C35A 6980 F8B0
# gpg --verify modsecurity-crs_2.2.5.zip.sig
gpg: Signature made Qui 14 Jun 2012 13:48:52 BRT using RSA key ID 9624FCD2
gpg: Good signature from "Ryan Barnett (OWASP Core Rule Set Project Leader)
gpg: AVISO: Esta chave não está certificada com uma assinatura confiável!
gpg: Não há indicação de que a assinatura pertence ao dono.
Impressão da chave primária: D5B2 7FC9 BFD2 5BDD 57DB 7291 C976 607D 9624 FCD2
cd modsecurity-apache_2.6.7/
./configure
make
make install
# O módulo é instalado em /usr/lib/apache2/modules/mod_security2.so e ferramentas em /usr/local/modsecurity/bin
mkdir -p /etc/apache2/modsecurity/crs
touch /etc/apache2/modsecurity/whitelist.conf
cp /usr/local/src/modsecurity-apache_2.6.7/modsecurity.conf-recommended /etc/apache2/modsecurity/modsecurity.conf
cp -a /usr/local/src/modsecurity-crs_2.2.5/* /etc/apache2/modsecurity/crs
cd /etc/apache2/modsecurity/crs
cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf
for f in `ls base_rules/` ; do ln -s ../base_rules/$f activated_rules/$f ; done
for f in `ls experimental_rules/` ; do ln -s ../experimental_rules/$f activated_rules/$f ; done
# a2enmod unique_id
- Criar o arquivo /etc/apache2/mods-available/modsecurity.load com o seguinte conteúdo :
LoadFile /usr/lib/x86_64-linux-gnu/libxml2.so
LoadFile /usr/lib/x86_64-linux-gnu/liblua5.1.so
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so
- Criar o arquivo /etc/apache2/mods-available/modsecurity.conf com o seguinte conteúdo:
<IfModule security2_module>
Include modsecurity/modsecurity.conf
Include modsecurity/whitelist.conf
Include modsecurity/crs/modsecurity_crs_10_setup.conf
Include modsecurity/crs/activated_rules/*.conf
</IfModule>
- Habilitar o módulo modsecurity no apache:
# a2enmod modsecurity
- Testar a configuração:
# apache2ctl -t
Syntax OK
- Se tudo estiver ok, basta reiniciar o apache.No log do apache irá aparecer o seguinte:
[Fri Aug 10 14:02:44 2012] [notice] ModSecurity for Apache/2.6.7 (http://www.modsecurity.org/) configured.
[Fri Aug 10 14:02:44 2012] [notice] ModSecurity: APR compiled version="1.4.6"; loaded version="1.4.6"
[Fri Aug 10 14:02:44 2012] [notice] ModSecurity: PCRE compiled version="8.30 "; loaded version="8.30 2012-02-04"
[Fri Aug 10 14:02:44 2012] [notice] ModSecurity: LUA compiled version="Lua 5.1"
[Fri Aug 10 14:02:44 2012] [notice] ModSecurity: LIBXML compiled version="2.8.0"
[Fri Aug 10 14:02:45 2012] [notice] Apache/2.2.22 (Debian) configured -- resuming normal operations
O ModSecurity está instalado por padrão no modo de detecção, o que será explicado no próximo post. Até lá.
2 comentários:
Vlw man!
Salvou uma alma.
Abs,
Alexos
Valeu pelo post Zucco.
A sacada do "for" foi muito boa!
So tem que ajustar a parte do unzip pq desse jeito pra funcionar teria que criar o diretorio modsecurity-crs_2.2.5, mover o zip pra la e deixar o unzip agir la dentro.
Muito bom post mesmo, parabens e nao pare de postar que to acompanhando.
abc!
@julioboris
Postar um comentário