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.