NgixProxy_Pathfinder/README.md

8.5 KiB

🛡️ Nginx Pathfinder Proxy

Este repositório é o núcleo de inteligência e configuração do Pathfinder Proxy, instalado nativamente em Ubuntu 24.04. Ele combina performance extrema (HTTP/3, Brotli) com um motor de segurança multicamadas (PSDE + WAF + Fail2Ban).


🏗️ Estrutura de Pastas e Componentes

A configuração é modular para permitir manutenção rápida e alta disponibilidade.

  • nginx.conf: O "cérebro" global. Configura workers, logs JSON e carrega os módulos dinâmicos.
  • conf.d/: Contém as definições de cada site (VHosts).
  • snippets/: Componentes reutilizáveis (SSL, Proxy, Cache, WAF, Headers).
  • modsec/: Configuração do ModSecurity, regras OWASP CRS v4 e tunings específicos.
  • dynamic/: Arquivos modificados em tempo real (ex: blacklist.conf pelo Fail2Ban).
  • scripts/: Scripts de utilidade (Ex: install_modsecurity.sh).

🧩 Guia de Snippets (Uso Obrigatório)

Para garantir o Padrão Ouro, todo site deve incluir os snippets básicos:

  1. include snippets/ssl_params.conf;: Ativa TLS 1.3, HSTS e anuncia HTTP/3 (QUIC).
  2. include snippets/proxy_params.conf;: Headers padrão e ofuscação de tecnologia de backend (Server, X-Powered-By).
  3. include snippets/security_headers.conf;: Headers de 2026 (COOP, COEP, CORP) para proteção de isolamento do navegador.
  4. include snippets/modsecurity.conf;: Ativa o WAF e a Blacklist dinâmica.
  5. include snippets/security_actions.conf;: Toma a decisão final de bloquear (444) se o motor PSDE detectar risco alto.
  6. include snippets/cache_optimizer.conf;: Otimiza a entrega de estáticos com cache inteligente (SWR).

📚 Catálogo Completo de Snippets

Abaixo, a lista completa de componentes modulares disponíveis em nginx/snippets/:

🔒 Segurança & WAF

  • modsecurity.conf: Ativa o WAF (OWASP CRS v4) e carrega a blacklist.
  • security_headers.conf: Headers de borda 2026 (COOP, COEP, CORP, Permissions-Policy).
  • security_actions.conf: Executa o bloqueio (Return 444) baseado no score do PSDE.
  • security_maps.conf: Motor de decisão (PSDE), detecção de bots, scorings e variáveis de risco.
  • blacklist.conf: Lista dinâmica de IPs banidos (gerenciado pelo Fail2Ban).
  • ads_disallow.conf: Bloqueia acesso a ads.txt.
  • robots_disallow.conf: Bloqueia indexação total (para ambientes de homologação/privados).
  • robots_allow.conf: Permite indexação total.

🚀 Performance & Cache

  • cache_optimizer.conf: Otimização fina de SWR (Stale-While-Revalidate) e headers de cache.
  • cache_proxy_params.conf: Configurações padrão de lock e validade de cache para upstream.
  • cache_zones.conf: Definição das zonas de memória compartilhada e chaves de cache.
  • compression.conf: Stack de compressão moderna (Brotli + Gzip) com níveis otimizados.
  • fingerprinting.conf: Cache imutável (1 ano) para assets versionados com hash no nome.

🚦 Controle de Tráfego

  • rate_limit.conf: Zonas de limitação de requisições (Global vs Punição por Score).
  • bandwidth_limit.conf: Limita a velocidade de download após X MB transferidos.
  • proxy_params.conf: Headers de encaminhamento (Real-IP, Forwarded) e ofuscação de backend.
  • ssl_params.conf: Configuração TLS 1.3, HSTS e HTTP/3 (QUIC).
  • acme_challenge.conf: Endpoint para renovação de certificados SSL (Certbot).

📊 Monitoramento & Identidade

  • log_formats.conf: Define o formato JSON detailed_proxy rico em metadados de segurança.
  • stub_status.conf: Endpoint de métricas internas do Nginx (para Zabbix/Prometheus).
  • humans.txt.conf: Rota para arquivos de créditos técnicos.
  • security.txt.conf: Rota padrão (RFC 9116) para reporte de segurança.
  • well_known.conf: Agregador que inclui robots, humans e security.txt de uma vez.

🛡️ Camada de WAF (ModSecurity 3.0.14)

O Pathfinder Proxy utiliza o ModSecurity v3 compilado sob medida para o Nginx Mainline.

  • Versão Nginx: 1.29.5 Mainline (Oficial).
  • Versão ModSec: 3.0.14.
  • Regras: OWASP Core Rule Set (CRS) v4.
  • Plugins: Utiliza plugins oficiais do CRS para Nextcloud e WordPress, garantindo zero falsos positivos nessas plataformas.
  • CVE Hardening: Regras específicas para vulnerabilidades críticas de 2024-2025:
    • WordPress: Auth Bypass (Really Simple Security) e Plugin Installs maliciosos.
    • React/Metro: Proteção contra RCE (React2Shell/Metro4Shell).
    • Servidores: Mitigação de exploits em Nginx (IngressNightmare), Apache (Source Disclosure) e IIS.
    • Infra: Bloqueio de exfiltração em PostgreSQL e bypass em FortiWeb/ScreenConnect.
  • Tuning: Arquivo modsec/app_specific_modsec_tuning.conf centraliza exceções para UniFi, vCenter, Exchange, Zabbix e Veeam.

🧠 Motor de Segurança PSDE "Elite" (7-Vector Matrix)

Diferente de firewalls comuns, o Pathfinder utiliza uma Matriz de Pontuação Combinatória no security_maps.conf que analisa 7 vetores simultâneos:

  1. 🛡️ Bot: Bloqueio de 600+ user-agents maliciosos.
  2. 🌐 URI: Acesso a arquivos sensíveis e assinaturas de CVEs recentes.
  3. ⚙️ Method: Métodos HTTP perigosos (TRACE, DEBUG) em rotas críticas.
  4. 🔥 Payload: Inspeção profunda de $args (SQLi, XSS, RCE, Log4j).
  5. 🌍 Geo: Risco por país (CN, RU, KP, IR) via GeoIP2.
  6. 🚦 Protocol: Violações como User-Agents vazios ou falsificados.
  7. 🔗 Referer: 400+ domínios de spam e phishing bloqueados instantaneamente.

📈 Lógica de Decisão

  • Nivel 3 (ATAQUE_CRITICO): Payloads maliciosos, Referer Spam ou qualquer combinação de 3+ vetores.
  • Nivel 2 (RISCO_ALTO): Combinação de 2 vetores de risco (ex: Bot + Geo-Risco).
  • Nivel 1 (SUSPEITO): Detecção de sinais individuais.

🛠️ Workflow Operacional: Ativando um Novo Site

Siga este procedimento para colocar um novo sistema no ar com segurança máxima:

1. Preparação no Repositório (Local)

  1. Crie o arquivo nginx/conf.d/nome-do-site.conf seguindo o Padrão Ouro.
  2. Atenção: Aponte os caminhos de certificado para /etc/letsencrypt/live/nome-do-site/.
  3. Faça o commit e push para a branch producao.

2. Sincronização no Servidor (SSH)

  1. Entre no servidor e vá para o diretório de scripts: cd /etc/nginx/scripts/.
  2. Execute o deploy seguro: sudo python3 deploy_pathfinder.py.
    • Nota: Este script faz backup automático e rollback se a configuração estiver errada.

Automação de Deploy (Safe-Rollback)

O Pathfinder inclui um script robusto para evitar downtime:

  • scripts/deploy_pathfinder.py:
    • Faz backup datado de /etc/nginx e /etc/fail2ban.
    • Sincroniza os novos arquivos da pasta temporária.
    • Valida com nginx -t.
    • Auto-Rollback: Se houver erro (ex: módulo Brotli faltando), ele restaura os backups originais e reinicia os serviços em milissegundos.

🔐 Gestão de SSL (Let's Encrypt)

O Pathfinder Proxy usa o desafio HTTP-01 via snippet acme_challenge.conf. Isso permite emitir certificados sem parar o Nginx.

Emissão do Primeiro Certificado

Rode os comandos abaixo (substitua o domínio):

  1. Criar pasta de desafios (se não existir):

    sudo mkdir -p /var/lib/letsencrypt && sudo chown www-data:www-data /var/lib/letsencrypt
    
  2. Gerar o certificado:

    sudo certbot certonly --webroot -w /var/lib/letsencrypt/ -d meusite.com.br -d www.meusite.com.br
    

[!TIP] Atenção aos Caminhos: Se o Certbot gerar uma pasta com final -0001, certifique-se de que o arquivo .conf do seu site em /etc/nginx/conf.d/ aponta para o caminho exato gerado por ele. Você pode conferir os caminhos ativos com sudo certbot certificates.


🚀 Manutenção e Logs

Recompilar WAF e Performance (Se necessário)

Se o Nginx for atualizado ou se precisar habilitar o Brotli, o módulo precisará ser recompilado usando o script: sudo ./scripts/setup_pathfinder.sh

Validação

Sempre teste a configuração antes do reload:

sudo nginx -t
sudo systemctl reload nginx

Auditoria e Diagnósticos

O Pathfinder agora reporta a razão exata do bloqueio nos logs JSON: tail -f /var/log/nginx/access_json.log | jq -r '"[\(.risk_category)] -> \(.risk_reason) | \(.request)"'

  • risk_category: TAG curta para máquinas (LIMPO, SUSPEITO, RISCO_ALTO, ATAQUE_CRITICO).
  • risk_reason: Motivo humano detalhado (ex: "COMBINACAO: Bot conhecido em local sensivel").