Repositorio onde Ficará todos os arquivos de configuraçao do nosso proxy com atualização automatica aqui assim que for mudado qualquer coisa nele.
Go to file
João Pedro Toledo Goncalves e4a4714ee5 deploy configuraçao do atendimento.grupopralog.com.br no proxy
correçao do fail2ban que nao agia em cima dos logs
2026-02-12 12:45:13 -03:00
.gemini feat: sync timezone to America/Sao_Paulo, add diagnostic scripts to producao/scripts, and update PSDE docs 2026-02-08 15:54:09 -03:00
fail2ban/data/fail2ban deploy configuraçao do atendimento.grupopralog.com.br no proxy 2026-02-12 12:45:13 -03:00
nginx deploy configuraçao do atendimento.grupopralog.com.br no proxy 2026-02-12 12:45:13 -03:00
scripts deploy configuraçao do atendimento.grupopralog.com.br no proxy 2026-02-12 12:45:13 -03:00
.gitignore fix: restore legacy GEMINI docs, fix modsec loop, encoding issues 2026-02-08 14:24:23 -03:00
README.md feat: sync timezone to America/Sao_Paulo, add diagnostic scripts to producao/scripts, and update PSDE docs 2026-02-08 15:54:09 -03:00

README.md

🛡️ 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 automação e diagnóstico (deploy_pathfinder.py, restore_nginx.py, fetch_logs.py).

🧩 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 (Instalação Minimalista).
  • Anti-Brute Force: Proteção integrada contra força bruta em páginas de login via ModSecurity Collections (Phase 1).
  • API Support: Métodos PUT, PATCH e DELETE liberados por padrão para suporte a sistemas modernos.
  • Tuning: Arquivo modsec/app_specific_modsec_tuning.conf centraliza exceções granulares (Zabbix, Gitea, UniFi, Veeam).

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

Diferente de firewalls comuns, o Pathfinder utiliza uma Matriz de Pontuação Combinatória no security_maps.conf que analisa 8 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.
  8. 🤯 Header: Detecção de anomalias em cabeçalhos customizados (ex: React2Shell CVE-2025-55182).

📈 Lógica de Decisão

  • Nivel 3 (ATAQUE_CRITICO): Payloads maliciosos, Referer Spam, Headers Corrompidos ou 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 (Pathfinder Automator V2 - Hybrid)

O Pathfinder conta com o orquestrador scripts/deploy_pathfinder.py, que agora funciona em modo Híbrido (Windows Client -> Linux Server). Você roda o script na sua máquina local e ele faz todo o trabalho sujo.

Pré-requisitos

  • Python 3 instalado no Windows.
  • Biblioteca Paramiko: pip install paramiko

Comandos Principais

  • python producao/scripts/deploy_pathfinder.py sync --all:

    • Empacota suas configs locais.
    • Conecta no servidor via SSH.
    • Atualiza bancos GeoIP automaticamente.
    • Sincroniza configurações e recarrega o Nginx.
    • Faz Rollback Automático se o nginx -t falhar.
  • python producao/scripts/deploy_pathfinder.py site --deploy <domínio>:

    • Sobe um novo VHost + Certificado SSL + Teste de DNS.
  • python producao/scripts/deploy_pathfinder.py geoip --update:

    • Força a atualização dos bancos de dados GeoIP2 (Mirror GitHub).

🛡️ Segurança de Operação

  • Backup & Rollback Atômico: Cada alteração gera um .bak. Se nginx -t falhar, o script desfaz a alteração imediatamente.
  • Auditoria Syslog: Todas as ações são registradas no syslog do servidor.
  • Validação Local: O script retorna Exit Code 1 no Windows se falhar no Linux, ideal para CI/CD.
  • DNS Safeguard: O deploy de SSL só ocorre se o DNS já estiver apontando para o IP do servidor, evitando bloqueios no Let's Encrypt.

🔐 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").