NgixProxy_Pathfinder/nginx/modsec/app_specific_modsec_tuning....

79 lines
4.4 KiB
Plaintext

# ==========================================================================
# 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'"