# ========================================================================== # Pathfinder Proxy - Application Specific ModSecurity Tuning # ========================================================================== # Este arquivo centraliza as exceções e ajustes para garantir o funcionamento # de aplicações críticas sem comprometer a segurança global. ### 5. Configuração de DLP (Data Loss Prevention) - **Fase**: Phase 4 (Headers) e Phase 5 (Body). - **Escopo**: **Crítico!** As regras de DLP serão aplicadas apenas em domínios/URLs que NÃO deveriam exibir dados sensíveis. - **Exclusão**: Sistemas que precisam exibir dados (ex: ERP, CRM) serão excluídos via `ctl:ruleRemoveByTag='DLP'`. - **Ação**: `deny` (bloqueio total) ou `replace` (mascaramento ex: `***.***.***-XX`). # IDs de regras customizadas: 10000 - 10999 # ========================================================================== # -------------------------------------------------------------------------- # 1. NEXTCLOUD (Configurações Adicionais ao Plugin) # -------------------------------------------------------------------------- # Aumenta limites de body para suportar uploads grandes via WebDAV SecRequestBodyLimit 10737418240 SecRequestBodyNoFilesLimit 1048576 # -------------------------------------------------------------------------- # 2. ZABBIX & APIs JSON-RPC # -------------------------------------------------------------------------- # Desativa inspeção pesada para rotas de API que usam muito JSON/RPC SecRule REQUEST_URI "@rx (api_jsonrpc\.php|jsrpc\.php|zabbix\.php)" \ "id:10001,phase:1,nolog,pass,ctl:ruleEngine=Off,msg:'TUNING: Zabbix API Bypass'" # -------------------------------------------------------------------------- # 3. GITEA (Git Service) # -------------------------------------------------------------------------- # Permite operações de Git (upload, edit, wiki) que contém código/scripts SecRule REQUEST_URI "@rx ^/.*/(src/branch|_edit|_new|commits/branch|upload-file|wiki)/" \ "id:10002,phase:1,nolog,pass,ctl:ruleEngine=Off,msg:'TUNING: Gitea Operations Bypass'" # -------------------------------------------------------------------------- # 4. MICROSOFT EXCHANGE (OWA / ECP) # -------------------------------------------------------------------------- # Proteção de motor para caminhos de interface do Exchange SecRule REQUEST_URI "@rx ^/(owa|ecp)/" \ "id:10003,phase:1,nolog,pass,ctl:ruleEngine=Off,msg:'TUNING: Exchange Web UI Bypass'" # -------------------------------------------------------------------------- # 5. UNIFI CONTROLLER # -------------------------------------------------------------------------- # Permite comunicação da API do UniFi que usa métodos e corpos específicos SecRule REQUEST_URI "@beginsWith /api/" \ "id:10004,phase:1,nolog,pass,ctl:ruleEngine=Off,msg:'TUNING: UniFi API Bypass'" # -------------------------------------------------------------------------- # 6. VMWARE vCENTER # -------------------------------------------------------------------------- # Exclui motor para interface de gerenciamento vSphere UI SecRule REQUEST_URI "@beginsWith /ui/" \ "id:10005,phase:1,nolog,pass,ctl:ruleEngine=Off,msg:'TUNING: vCenter UI Bypass'" # -------------------------------------------------------------------------- # 7. VEEAM BACKUP & REPLICATION # -------------------------------------------------------------------------- # Garante que o console web do Veeam não seja bloqueado por falso positivo SecRule REQUEST_URI "@rx ^/(veeam|VeeamBackup)/" \ "id:10006,phase:1,nolog,pass,ctl:ruleEngine=Off,msg:'TUNING: Veeam Console Bypass'" # -------------------------------------------------------------------------- # -------------------------------------------------------------------------- # 9. ANTI-BRUTE FORCE (Global) # -------------------------------------------------------------------------- # Inicializa coleção por IP SecAction "id:10100,phase:1,nolog,pass,initcol:ip=%{remote_addr}" # Monitora tentativas de login (POST em páginas comuns) SecRule REQUEST_METHOD "@streq POST" \ "id:10101,phase:1,nolog,pass,chain" SecRule REQUEST_URI "@rx (login|wp-login|signin|authenticate)" \ "setvar:ip.login_counter=+1,expirevar:ip.login_counter=120" # Bloqueia se passar de 5 tentativas em 2 minutos SecRule ip.login_counter "@gt 5" \ "id:10102,phase:1,deny,status:429,msg:'BRUTE FORCE: IP temporariamente bloqueado',tag:'SECURITY',tag:'BRUTE_FORCE'"