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:
# SecDebugLog /opt/modsecu
# SecDebugLogLevel 3
Descomentamos elas e deixamos da seguinte forma:
SecDebugLog /var/log/apache2/modsec_debug.log
SecDebugLogLevel 3
Logo, buscamos essas linhas;
# SecAuditLogType Serial
# SecAuditLog /var/log/modsec_audit.log
Descomentamos elas e deixamos da seguinte forma:
SecAuditLogType Serial
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
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
Texto: Edson Dias Pereira Junior
Estudante do 5º ciclo de Segurança da Informação na Fatec Ourinhos-SP