Instalando Apache2 + PHP5 com mod_security no Debian Squeeze.

Introdução :

O ModSecurity (https://www.modsecurity.org) é um firewall de aplicação que é executado como um módulo do servidor Web Apache. O WAF (Web Application Firewall), ou firewall de aplicação, tem por objetivo bloquear diversos tipos de ataques, como o Cross-Site Scripting (XSS), SQL Injection, Command Injection, ASP e PHP Injection, Trojans & Backdoors Detection, dentre outros, que variam de acordo com as regras existentes. Instale o ModSecurity:

 

image1

 

Convenções utilizadas neste artigo: o símbolo “#” significa que o comando deve ser executado como root.

Primeiro instalaremos pacotes básicos do apache 2 e php5 com o seguinte comando:

root@server:~# aptitude install php5 libapache2-mod-php5

Reiniciar o servidor apache2:

root@server:~# /etc/init.d/apache2 restart

 

Verificação

Para verificar a instalação do suporte php, basta criar uma página Internet que mostre as características da instalação php. Neste caso, iremos criar uma página em /var/www/phpinfo.php:

<?php
phpinfo();
?>

Em seguida, tentar aceder à página, utilizando um browser e inserindo o endereço https://seuendereçoweb/phpinfo.php:

Poderá também ser testado o acesso seguro via protocolo https da mesma maneira, utilizando o endereço https://seuenderecoweb/phpinfo.php.

Uma vez testado o funcionamento, deverá ser apagada a página de testes, dado que as informações nela contidas poderiam comprometer a segurança do servidor:

root@server:~# rm /var/www/phpinfo.php

 

E finalmente instalando mod_security.

O primeiro é preciso baixar a última versão. Na época do presente documento é versão 2.6.3. Você pode verificar a última versão no site https://www.modsecurity.org/download/

# cd /usr/src/

# wget "https://ufpr.dl.sourceforge.net/project/mod-security/modsecurity-apache/2.6.3/modsecurity-apache_2.6.3.tar.gz"

# tar zxvf modsecurity-apache_2.6.3.tar.gz

Nós instalaremos um par de ferramentas e bibliotecas que iremos precisar…

# apt-get install libxml2-dev liblua5.1-0 lua5.1 apache2-threaded-dev build-essential libxml2 libxml2-dev libcurl3 libcurl3-dev

Compilamos modsecurity e instalamos… ( verificar com “apt-get install make” para ver se “make esteja instalado)

# cd modsecurity-apache_2.6.3

# ./configure

# make

# make install

Agora devemos criar o arquivo /etc/apache2/mods-available/mod_security2.load com o seguinte conteúdo:

LoadFile /usr/lib/libxml2.so
LoadFile /usr/lib/liblua5.1.so.0
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so

Com isto, habilitaremos os seguintes módulos que usaremos.

# a2enmod mod_security2

# a2enmod unique_id

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 esse tutorial foi o ModSecurity-crs_2.2.3, mas olhar para este site https://sourceforge.net/projects/mod-security/files/modsecurity-crs/0-CURRENT/ (última versão do pacote CRS))

# cd /etc/apache2/

# wget -O modsecurity-crs.tar.gz "https://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 sairmos.

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_*

É isso, agora podemos confirmar no Apache para verificar se está tudo OK na config:

# apache2ctl configtest

Se estiver OK, vamos ver:

Syntax OK
Não continuar senão ver a seguinte mensagem ” Syntax OK “!.

Agora, se .. 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 (https://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 modsecurity em nosso Apache!.

 

Refênciais

Wikipedia: php (https://pt.wikipedia.org/wiki/Php)

PHP: Hypertext Preprocessor (https://www.php.net)

https://www.modsecurity.org/

https://www.thebitsource.com/infrastructure-operations/web-application/securing-apache-web-servers-modsecurity/

https://imasters.com.br/artigo/21948/redes-e-servidores/instalando-o-modsecurity-no-debian–apache2

Texto de Edson Dias Pereira Junior <edson.junior14 at fatec.sp.gov.br>, estudante do 5º ciclo de Segurança da Informação na Fatec Ourinhos-SP

Postado por
Siga em:
Compartilhe
Deixe seu comentário
Veja também
Publicações Relacionadas
Img de rastreio
Localize algo no site!