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.



[ Hits: 18.949 ]

Por: Edson Pereira Junior em 10/02/2012


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:

# 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!
Linux: Apache2 
+ PHP5 com ModSecurity no Debian Squeeze

Referências


Texto: Edson Dias Pereira Junior
Estudante do 5º ciclo de Segurança da Informação na Fatec Ourinhos-SP
Página anterior    

Páginas do artigo
   1. Instalando Apache2 com PHP5
   2. Configurando o Mod-Security
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Syslog-NG - Configurando um servidor de logs

VPN com FreeS/WAN

Mantendo seu Slackware atualizado com o slackcurrent

Como forçar alteração de senha de usuário no próximo login no Linux

Fundamentos da criptografia assimétrica

  
Comentários
[1] Comentário enviado por JuniorDiaz em 10/02/2012 - 10:06h

Para complementar. Na url http://www.modsecurity.org/download/ tem repositŕorios que facilitariam o processo de instalação e principalmente o de atualização.

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.

[2] Comentário enviado por removido em 10/02/2012 - 12:34h

Muito bom o artigo !

[3] Comentário enviado por monk_dias em 13/02/2012 - 09:10h

Muito bom o artigo! Obrigado por compartilhar!

[4] Comentário enviado por roberto_espreto em 13/02/2012 - 23:26h

Quanto a instalação do mod_sec está tranquilo! Mais falta um bucado pra deixá-lo bem configurado heim!
Do jeito que está, se eu utilizar um vetor de ataque utilizando o método de requisição POST, eu faço o bypass do seu WAF que ele nem vai logar nada! :P
Como dica, seria interessante fazer uma segunda parte abordando mais configurações avançadas. Qualquer coisa tamos aee! :D


Edit: 14/02 07:33
Revendo as configs do mod_sec, agora ele está logando requisições post sim com a regra "SecRequestBodyAccess On", vou deixar o comentário que fiz acima, mas desconsidere! :D


Att,

[5] Comentário enviado por JuniorDiaz em 14/02/2012 - 08:55h

Então roberto_espreto existe várias configurações para serem feitas , ainda mais em ataques ddos com o T50 como por ex , estou estudando algumas configs para estar passando aqui em outro artigo, em que , será de atualização automatica e configs adicionais.

Att

[6] Comentário enviado por juniordiaz em 25/05/2012 - 17:51h

http://ufpr.dl.sourceforge.net/project/mod-security/modsecurity-apache/2.6.5/modsecurity-apache_2.6....

Link de download atualizado dia 25/05/2012


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts