Apache2 + PHP5 com ModSecurity no Debian Squeeze
O ModSecurity (http://www.modsecurity.org) é um Firewall de aplicação que é executado como um
módulo do servidor Web Apache e neste artigo, ensinarei como instalar o ModSecurity 2.6.3 no Debian Squeeze.
módulo do servidor Web Apache e neste artigo, ensinarei como instalar o ModSecurity 2.6.3 no Debian Squeeze.
Parte 2: Configurando o Mod-Security
Configuramos com o minimo necessário, para correr o Mod-Security:
# cp modsecurity.conf-recommended /etc/apache2/conf.d/modsecurity.conf
Agora baixe o pacote de regras mais atuais e instalaremos.
* Neste caso, ao montar este tutorial, foi o 'ModSecurity-crs_2.2.3', mas olhar para este site:
# cd /etc/apache2/
# wget -O modsecurity-crs.tar.gz http://ufpr.dl.sourceforge.net/project/mod-security/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.3.tar.gz
# tar xzvf modsecurity-crs_2.2.3.tar.gz
# mv modsecurity-crs_2.2.3 /etc/apache2/modsecurity_crs
# rm -fr modsecurity-crs.tar.gz
# chown root.root /etc/apache2/modsecurity_crs/ -R
# cd /etc/apache2/modsecurity_crs
# mv modsecurity_crs_10_config.conf.example modsecurity_crs_10_config.conf
Agora, ajustaremos as configurações do Mod-Security, para apontar os arquivos de Log onde queremos, e incluem apenas o pacote de regras que acabamos de baixar.
Para fazer isso, edite o arquivo de configuração:
# nano /etc/apache2/conf.d/modsecurity.conf
Buscaremos seguintes linhas:
Descomentamos elas e deixamos da seguinte forma:
Logo, buscamos essas linhas;
Descomentamos elas e deixamos da seguinte forma:
No final do arquivo, adicione as seguintes linhas, que serão utilizados para carregar todas as regras do pacote que baixamos:
Salvamos o arquivo e saímos.
Abaixo, prepararemos os Logs que vamos usar e vamos definir as permissões necessárias:
# touch /var/log/apache2/modsec_debug.log
# touch /var/log/apache2/modsec_audit.log
# chown root.root /var/log/apache2/modsec_*
# chmod 660 /var/log/apache2/modsec_*
Executar o seguinte comando no terminal, para ver se está tudo OK:
# apache2ctl configtest
Se estiver OK, vamos ver:
* NÃO CONTINUE se não ver a mensagem acima!
Agora, se tudo estiver OK, podemos reiniciar o Apache2:
# /etc/init.d/apache2 restart
Depois de reiniciar, podemos olhar para o Log de erros do Apache para ver se de fato carregou o módulo ModSecurity:
# tail /var/log/apache2/error.log
E deveríamos ver algo similar a:
É isso aí! Em funcionamento o ModSecurity em nosso Apache!
Texto: Edson Dias Pereira Junior
Estudante do 5º ciclo de Segurança da Informação na Fatec Ourinhos-SP
# cp modsecurity.conf-recommended /etc/apache2/conf.d/modsecurity.conf
Agora baixe o pacote de regras mais atuais e instalaremos.
* Neste caso, ao montar este tutorial, foi o 'ModSecurity-crs_2.2.3', mas olhar para este site:
- http://sourceforge.net - ModSecurity/Current # Última versão do pacote CRS.
# cd /etc/apache2/
# wget -O modsecurity-crs.tar.gz http://ufpr.dl.sourceforge.net/project/mod-security/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.3.tar.gz
# tar xzvf modsecurity-crs_2.2.3.tar.gz
# mv modsecurity-crs_2.2.3 /etc/apache2/modsecurity_crs
# rm -fr modsecurity-crs.tar.gz
# chown root.root /etc/apache2/modsecurity_crs/ -R
# cd /etc/apache2/modsecurity_crs
# mv modsecurity_crs_10_config.conf.example modsecurity_crs_10_config.conf
Agora, ajustaremos as configurações do Mod-Security, para apontar os arquivos de Log onde queremos, e incluem apenas o pacote de regras que acabamos de baixar.
Para fazer isso, edite o arquivo de configuração:
# nano /etc/apache2/conf.d/modsecurity.conf
Buscaremos seguintes linhas:
# SecDebugLog /opt/modsecu
# SecDebugLogLevel 3
# SecDebugLogLevel 3
Descomentamos elas e deixamos da seguinte forma:
SecDebugLog /var/log/apache2/modsec_debug.log
SecDebugLogLevel 3
SecDebugLogLevel 3
Logo, buscamos essas linhas;
# SecAuditLogType Serial
# SecAuditLog /var/log/modsec_audit.log
# SecAuditLog /var/log/modsec_audit.log
Descomentamos elas e deixamos da seguinte forma:
SecAuditLogType Serial
SecAuditLog /var/log/apache2/modsec_audit.log
SecAuditLog /var/log/apache2/modsec_audit.log
No final do arquivo, adicione as seguintes linhas, que serão utilizados para carregar todas as regras do pacote que baixamos:
Include /etc/apache2/modsecurity_crs/*.conf
Include /etc/apache2/modsecurity_crs/base_rules/*.conf
Include /etc/apache2/modsecurity_crs/base_rules/*.conf
Salvamos o arquivo e saímos.
Abaixo, prepararemos os Logs que vamos usar e vamos definir as permissões necessárias:
# touch /var/log/apache2/modsec_debug.log
# touch /var/log/apache2/modsec_audit.log
# chown root.root /var/log/apache2/modsec_*
# chmod 660 /var/log/apache2/modsec_*
Verificando a configuração
É isso, agora podemos confirmar no Apache para verificar se está tudo OK na configuração.Executar o seguinte comando no terminal, para ver se está tudo OK:
# apache2ctl configtest
Se estiver OK, vamos ver:
Syntax OK
* NÃO CONTINUE se não ver a mensagem acima!
Agora, se tudo estiver OK, podemos reiniciar o Apache2:
# /etc/init.d/apache2 restart
Depois de reiniciar, podemos olhar para o Log de erros do Apache para ver se de fato carregou o módulo ModSecurity:
# tail /var/log/apache2/error.log
E deveríamos ver algo similar a:
[Wed Jan 15 19:15:59 2011] [notice] ModSecurity for Apache/2.6.3 (http://www.modsecurity.org/) configured
[Wed Jan 15 19:16:00 2011] [notice] ModSecurity: APR compiled version="1.4.2"; loaded version="1.4.2"
[Wed Jan 15 19:16:00 2011] [notice] ModSecurity: PCRE compiled version="8.2"; loaded version="8.02 2010-03-19"
[Wed Jan 15 19:16:00 2011] [notice] ModSecurity: LIBXML compiled version="2.7.8"
[Wed Jan 15 19:16:01 2011] [notice] Apache/2.2.9 (Debian) PHP/5.3.3-7+squeeze3 with Suhosin-Patch configured -- resuming normal operations
É isso aí! Em funcionamento o ModSecurity em nosso Apache!

Referências
- Wikipedia - PHP: http://pt.wikipedia.org/wiki/Php
- PHP - Hypertext Preprocessor: http://www.php.net
- http://www.modsecurity.org
- http://www.thebitsource.com - Securing Apache WEB Servers ModSecurity
- http://imasters.com.br - Instalando ModSecurity no Debian
Texto: Edson Dias Pereira Junior
Estudante do 5º ciclo de Segurança da Informação na Fatec Ourinhos-SP
Pro debian:
http://packages.debian.org/search?searchon=sourcenames&keywords=modsecurity-apache
Centos/red-hat:
http://www.jasonlitka.com/yum-repository/
Fedora:
http://fedoraproject.org/wiki/EPEL
Na próxima dica estarei ensinando como fazer as atualizações dos confs automaticamente.