From d9a0b14d6f65ac2df374d2eca11e4cf189be8bfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro?= Date: Thu, 22 Jan 2026 16:20:40 -0300 Subject: [PATCH] =?UTF-8?q?docs:=20Atualiza=C3=A7=C3=A3o=20da=20documenta?= =?UTF-8?q?=C3=A7=C3=A3o=20sobre=20ModSecurity=20(Arquitetura,=20TODO=20e?= =?UTF-8?q?=20README)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gemini/GEMINI.md | 8 +++++++- .gemini/TODO.md | 6 +++--- README.md | 10 ++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.gemini/GEMINI.md b/.gemini/GEMINI.md index 18d6b97..b8f9c1a 100644 --- a/.gemini/GEMINI.md +++ b/.gemini/GEMINI.md @@ -70,7 +70,13 @@ O container `nginx-proxy` é construído manualmente (`Dockerfile`) para incluir - `nginx-mod-http-headers-more` ### 2. ModSecurity (WAF) -Rodar o WAF em container separado (`modsecurity`) evita a necessidade de compilar o ModSecurity no NGINX principal, facilitando atualizações e isolando falhas. Se o WAF falhar, o Proxy pode ser exposto diretamente mudando as portas no `docker-compose.yml` (Bypass de emergência). +Rodar o WAF em container separado (`modsecurity`) evita a necessidade de compilar o ModSecurity no NGINX principal. + +**Arquitetura Customizada:** +- **Injeção de Template**: Um arquivo `modsec.conf.template` local é montado durante o boot para contornar limitações de permissão do container oficial. Ele instrui o NGINX a carregar regras customizadas. +- **Regras Modulares**: Localizadas em `modsec_rules/`, divididas por aplicação (`gitea-rule-exceptions.conf`, `nextcloud...`). +- **Global**: `global-exceptions.conf` define apenas a whitelist de rede. +- **Bypass de Emergência**: Se o WAF falhar, altere as portas no `docker-compose.yml` para expor o `nginx-proxy` diretamente. --- diff --git a/.gemini/TODO.md b/.gemini/TODO.md index f3616c1..ae757af 100644 --- a/.gemini/TODO.md +++ b/.gemini/TODO.md @@ -8,9 +8,9 @@ ## 2. Revisão de Regras ModSecurity **Origem:** Migração de `legacy/nginx/modsecurity/*.conf` (Regras Antigas) -- **Status:** ⚠️ Parcial (Arquivos em `modsec_rules/`, mas injeção desabilitada). -- **Objetivo:** Rever todas as regras para fazerem sentido no contexto atual (OWASP CRS v4) ou mudar o método de inserção. -- **Ação:** Auditar exceções de Gitea, Grafana, etc., e reativar apenas o necessário. +- **Status:** ✅ Concluído. +- **Resolução:** Regras refatoradas para estrutura modular (`modsec_rules/`). WAF ativo e configurado via template injection para Gitea, Nextcloud, Exchange, Zabbix e outros. +- **Ação:** Monitorar logs (`modsec_audit.log`) para ajustes finos futuros. ## 3. Atualizações Zero-Downtime (Sem Queda) **Objetivo:** Criar um método para atualizar configurações de sites sem que clientes externos percam a conexão. diff --git a/README.md b/README.md index ffad67e..bbf1b04 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,16 @@ As configurações globais são modularizadas na pasta `snippets/`. - **Bloqueio de Bots**: Edite `snippets/security_maps.conf` para adicionar novos User-Agents à lista negra. - **Cache**: Edite `snippets/cache_zones.conf` para definir novas zonas ou tempos de cache. +### 3.1. Modificar Regras do WAF (ModSecurity) +O WAF agora utiliza uma estrutura modular de regras localizada na pasta `modsec_rules/`. +- **Arquivos Específicos**: Regras para Gitea, Nextcloud, Exchange, Zabbix, etc. ficam em seus respectivos arquivos `.conf`. +- **Global**: `global-exceptions.conf` contém apenas whitelists de rede interna. +- **Aplicação**: Após editar qualquer regra, reinicie o container do WAF para aplicar: + ```bash + docker compose restart modsecurity + ``` +> **Nota Técnica**: O arquivo `modsec.conf.template` na raiz é injetado no container durante o boot para contornar problemas de permissão e garantir o carregamento das regras customizadas. + ### 4. Gerenciar Certificados SSL O sistema gerencia isso automaticamente, mas você pode intervir manualmente se necessário.