Arquivo

Archive for the ‘Apache’ Category

Instalar ModSecurity no Debian Lenny

outubro 4, 2010 Deixe um comentário

O ModSecurity (http://www.modsecurity.org), e um firewall para as aplicações web, e ele é muito eficiente para prevenir ataques, abaixo, os passos que segui para configurar o ModSecurity em meu ambiente (Debian Lenny + Apache2):
1 – Os pacotes do ModSecurity não estão disponíveis nos mirrors do Debian, somente no backports, caso você ainda não tenha adicionado o backports em seu mirror, faça o seguinte:
– Edite o seu arquivo de mirrors do apt:
$ vim /etc/apt/sources.list

Adicione a seguinte linha no final do arquivo:
deb http://backports.debian.org/debian-backports lenny-backports main

Então atualize:
$ aptitude update

2 – Instale o ModSecurity:
$ aptitude -t lenny-backports install libapache-mod-security -y

3 – Após a instalação, criei alguns diretórios que achei necessário (apenas uma sugestão, você pode criar os diretórios onde bem entender):
$ mkdir /etc/apache2/logs /etc/apache2/modsecurity

4 – Criar o arquivo de configuração do ModSecurity que irá ser carregado pelo Apache:
$ vim /etc/apache2/conf.d/modsecurity.conf

E adicionar as seguintes linhas no arquivo:

# /etc/init.d/apache2/conf.d/modsecurity.conf

Include modsecurity/*.conf
Include modsecurity/base_rules/*.conf

5 – Entrar no diretório que nós criamos do ModSecurity para copiar as regras que por padrão já vem configuradas:

$ cd /etc/apache2/modsecurity
$ cp -R /usr/share/doc/mod-security-common/examples/rules/* .

6 – Reiniciar o Apache:
$ /etc/init.d/apache2 restart

7 – Verifique se o ModSecurity carregou com o Apache:
$ cat /var/log/apache2/error.log | grep modsecurity

– Deve retornar a seguinte linha:
ModSecurity for Apache/2.5.11 (http://www.modsecurity.org/) configured.

8 – Testando seu ModSecurity:
– Primeiro vamos desabilitar o ModSecurity e reiniciar o Apache:
$ a2dismod mod-security && /etc/init.d/apache2 restart

– Vamos criar um diretório dentro do raiz do apache2, no meu caso, o /var/www:
$ mkdir /var/www/teste

– E vamos criar uma página em PHP, que é capaz de mostrar qualquer arquivo do Servidor:

– Vá até o seu navegador preferido e digite http://servidor.web/index.php?secret_file=/etc/passwd (lembre-se de alterar o servidor.web pelo nome ou IP de seu servidor);
– Você irá conseguir visualizar, no seu browser, o arquivo de usuários locais do sistema;
– Agora vamos habilitar o ModSecurity e reiniciar o Apache:
$ a2enmod mod-security && /etc/init.d/apache2 restart

– Vá novamente em seu navegador favorito e digite novamente http://servidor.web/index.php?secret_file=/etc/passwd (lembre-se de alterar o servidor.web pelo nome ou IP de seu servidor)
– Você irá receber a mensagem de Forbidden;
– Os logs do ModSecurity ficam em /etc/apache2/logs.

Vou estudar melhor as regras do ModSecurity, qualquer novidade eu posto por aqui.

Abraços.