Instalando ModSecurity no CentOS 7 (com Apache)

By | 31 de outubro de 2017

    ModSecurity é um firewall de aplicação web (WAF) open source, mantido pela  Trustwave Labs. Ele aumenta consideravelmente a segurança do ambiente Web, protegendo o ambiente contra ataques mais comuns, como SQL Injection, XSS, entre outros. Nesse post iremos abordar a instalação do ModSecurity no CentOS 7 com Apache/

Pré-requisitos:

# yum install httpd epel-release git wget

Instalação do ModSecurity

# yum install mod_security mod_evasive

Instalação das regras:

# cd /etc/httpd/modsecurity.d
# rm -rf activated_rules/
#  git clone https://github.com/SpiderLabs/owasp-modsecurity-crs .
# mv crs-setup.conf.example crs-setup.conf
# vi /etc/httpd/conf.d/mod_security.conf
Altere a linha 4 para:
IncludeOptional modsecurity.d/rules/*.conf

# vi /etc/httpd/modsecurity.d/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf
Comente (coloque # no inicio da linha) da linha 37 (SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/…) até a linha 64( setvar:tx.%{rule.id}…), e depois comente da linha 751 até a 779.

# vi /etc/httpd/modsecurity.d/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf
Comente da linha 43 até a 68

Reinicie o Apache:
# systemctl restart httpd

Observação: A configuração padrão vem com o nível “paranoico” 1, ou seja, irá fornecer uma proteção básica porém irá gerar muito pouco ou quase nenhum falso positivo. Em minha opinião, o nível “paranoico” 2 tem uma relação custo-benefício melhor, uma vez que oferece um nível maior de proteção com uma quantidade aceitável de falso positivo. Para alterar para o nível paranoico 2, faça a seguinte alteração:

# vi /etc/httpd/modsecurity.d/crs-setup.conf
(linha 171)
SecAction \
“id:900000,\
phase:1,\
nolog,\
pass,\
t:none,\
setvar:tx.paranoia_level=2”

Agora reinicie o serviço:
# systemctl restart httpd