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:
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
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
https://www.hardware.com.br/dicas/instalando-apache2php5-com-mod-security-debian-squeeze.html
Просмотров: 2988