WAF na Prática: Configurando ModSecurity no LiteSpeed e Nginx sem Quebrar sua Aplicação

Configurar ModSecurity. Configurar um WAF (Web Application Firewall) como o ModSecurity é como instalar um sistema de alarme: se você calibrar mal, ele vai disparar toda vez que o vento bater na janela, e logo você vai querer desligá-lo.

O segredo para não “quebrar” sua aplicação (gerar falsos positivos que bloqueiam usuários legítimos) reside em uma abordagem gradual: Detecção > Ajuste Fino > Bloqueio.

Aqui está o guia prático para Nginx e LiteSpeed.

Implementar um Web Application Firewall como o ModSecurity é uma das práticas mais importantes para proteger aplicações web contra ataques automatizados e vulnerabilidades comuns. No entanto, a segurança não depende apenas do firewall, mas também da forma como a infraestrutura foi projetada. Para entender como estruturar corretamente esse ambiente, veja também o guia sobre arquitetura de servidor web em produção.


1. A Regra de Ouro: Comece com “Detection Only”

O erro número 1 é ativar o ModSecurity já no modo de bloqueio. Não faça isso.

No seu arquivo de configuração principal (modsecurity.conf), a primeira diretiva que você deve verificar é o SecRuleEngine.

  • Errado (para o dia 1): SecRuleEngine On (Vai bloquear tráfego legítimo sem aviso).
  • Correto: SecRuleEngine DetectionOnly

Neste modo, o ModSecurity processa as regras e grava os alertas no log, mas não bloqueia a requisição. Isso permite que você veja o que seria bloqueado.

2. Escolhendo as Regras: OWASP CRS

O ModSecurity é apenas o motor; ele precisa de combustível (regras). O padrão da indústria é o OWASP Core Rule Set (CRS).

Dica de Configuração (crs-setup.conf):

O CRS funciona com “Níveis de Paranoia” (Paranoia Levels – PL).

  • PL1 (Padrão): Baixo risco de falsos positivos. Bloqueia ataques óbvios (SQLi básico, XSS). Comece aqui.
  • PL2+: Aumenta a rigidez, mas exige muito mais ajuste fino (whitelist).


3. Implementação Prática

Cenário A: Nginx (com libmodsecurity3)

  • Certifique-se de que o módulo está compilado/carregado.

    Cenário B: LiteSpeed (LSWS ou OpenLiteSpeed)

    O LiteSpeed tem um motor de WAF embutido de altíssima performance que lê regras compatíveis com Apache.

    1. Acesse o WebAdmin Console.
    2. Vá em Server Configuration > Security > WAF.
    3. Enable WAF: Yes.
    4. Log Level: DEBUG (apenas durante a fase de ajuste, depois mude para NOTICE).
    5. SecRuleEngine: DetectionOnly (Cuidado: o LiteSpeed permite configurar isso por Vhost também).

    Ferramentas como ModSecurity funcionam como uma camada adicional de proteção no servidor web. Em ambientes de produção, essa camada costuma fazer parte de uma estrutura maior de infraestrutura, que inclui balanceamento de carga, cache e isolamento de aplicações dentro de uma arquitetura de servidores web em produção.


    4. A Fase de Tuning (Ajuste Fino)

    Deixe o site rodando em DetectionOnly por cerca de uma semana (ou execute testes automatizados de tráfego). Agora, vamos analisar os logs.

    Onde olhar:

    • Nginx: Geralmente /var/log/nginx/modsec_audit.log
    • LiteSpeed: Log de erro do servidor ou log específico de segurança definido na config.

    Exemplo Prático de Falso Positivo

    Digamos que você tem um CMS onde salva posts. O ModSecurity pode achar que o HTML do seu post é um ataque XSS.

    Log (Simplificado):

    Message: Access denied with code 403... [id "941160"] [msg "NoScript XSS InjectionChecker: HTML Injection"] [uri "/admin/save_post.php"]

    Como corrigir sem desligar o WAF inteiro:

    Não remova a regra 941160 globalmente! Em vez disso, crie uma exceção cirúrgica.

    A sintaxe de exclusão (Adicione isso em um arquivo whitelist.conf carregado APÓS as regras do CRS):

    1. Opção Bruta (Desativar a regra para o site todo):Não recomendado.
    2. Opção Cirúrgica (Recomendada):Desativar a regra apenas para aquela URL específica ou parâmetro.

    5. O Grande Dia: Virada de Chave

    Depois de monitorar os logs e criar as exceções para o tráfego legítimo, seus logs devem estar limpos de falsos positivos, mostrando apenas tentativas reais de ataque ou scans de bots.

    1. Volte ao modsecurity.conf (ou painel do LiteSpeed).
    2. Altere para: SecRuleEngine On.
    3. Reinicie o servidor web.

    Configurar corretamente o ModSecurity é um passo importante para melhorar a segurança de aplicações web. No entanto, a proteção do ambiente depende também de uma infraestrutura bem planejada, incluindo configuração de servidores, balanceamento e monitoramento. Para aprofundar esse tema, veja também o guia completo sobre arquitetura de servidor web em produção.

    FAQ

    Por que o ModSecurity está bloqueando meu painel de administração?

    Geralmente, isso é um “falso positivo”. O ModSecurity identifica padrões no HTML ou nos formulários do seu CMS (como WordPress ou Magento) que se assemelham a ataques SQL Injection ou XSS. A solução é analisar o ID da regra no log de erro e criar uma exclusão (whitelist) específica para aquela URL.

    Qual a diferença entre ModSecurity no Nginx e no LiteSpeed?

    No Nginx, o ModSecurity funciona como um módulo externo (libmodsecurity3) que precisa ser compilado ou carregado, e as regras ficam no bloco server. No LiteSpeed (LSWS e OpenLiteSpeed), o motor WAF já é nativo, oferecendo maior performance e compatibilidade direta com regras do Apache, gerenciado via interface WebAdmin.

    O que é o modo “DetectionOnly”?

    É o modo de “apenas detecção”. Quando ativado (SecRuleEngine DetectionOnly), o WAF analisa o tráfego e grava os ataques no log, mas não bloqueia o usuário. É essencial usar este modo durante a primeira semana de configuração para ajustar as regras sem tirar o site do ar.

    O OWASP Core Rule Set (CRS) deixa o site lento?

    O impacto na performance depende do número de regras ativadas e do “Paranoia Level” (PL). O PL1 (padrão) é otimizado para baixo impacto. No entanto, em servidores com poucos recursos, o processamento de expressões regulares (Regex) do WAF pode adicionar alguns milissegundos à latência. O LiteSpeed tende a processar essas regras mais rápido que o Nginx + ModSecurity.

    Veja Mais:

    Como Identificar CPU Steal, I/O Lento e Latência Variável em Servidores Linux
    Como diagnosticar problemas de disco em servidores Linux
    Reduzindo Ruído em Monitoramento de Servidores
    Arquitetura de Servidor Web em Produção

    Imunify360 vs CrowdSec: Qual o Melhor Firewall para Linux?

    Configuração do firewall OVH

    Guia Completo do DirectAdmin para Administradores | Instalação, Segurança e Performance

    Erros comuns ao administrar servidores de hospedagem

    Guerra dos Web Servers: Apache vs. Nginx vs. Litespeed – Benchmarks reais.