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 9c9c747a4b docs: detalha workflow de ativação de sites e SSL 2026-02-06 18:07:29 -03:00
fail2ban/data chore: pivot repository to configuration-only (removed docker artifacts and sensitive data) 2026-02-06 16:41:59 -03:00
nginx docs: consolidate READMEs and update for configuration-only model 2026-02-06 16:44:41 -03:00
.gitignore chore: pivot repository to configuration-only (removed docker artifacts and sensitive data) 2026-02-06 16:41:59 -03:00
README.md docs: detalha workflow de ativação de sites e SSL 2026-02-06 18:07:29 -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).
  • modsec/: Configuração do ModSecurity e regras do OWASP Core Rule Set.
  • dynamic/: Arquivos modificados em tempo real (ex: blacklist.conf pelo Fail2Ban).

🧩 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 para o backend não perder o IP real do cliente.
  3. include snippets/modsecurity.conf;: Ativa o WAF e a Blacklist dinâmica.
  4. include snippets/security_actions.conf;: Toma a decisão final de bloquear (444) se o motor PSDE detectar risco alto.
  5. include snippets/cache_optimizer.conf;: Otimiza a entrega de estáticos com cache inteligente.

🧠 Motor de Segurança PSDE (Pathfinder Security Engine)

Diferente de firewalls comuns, o Pathfinder usa o security_maps.conf para calcular um Security Score em tempo real baseado em:

  • Bad Bots: Crawlers maliciosos e ferramentas de scan.
  • Suspicious URIs: Tentativas de acesso a .env, wp-admin, .git, etc.
  • Methods: Bloqueio de métodos HTTP incomuns em rotas sensíveis.
  • Risk Level: Traduz o score em níveis (Limpo, Suspeito, Crítico) para os logs JSON.

🏆 Padrões Ouro de Configuração

1. Servidor de Arquivos (Performance & Caching)

Focado em minimizar uso de CPU e maximizar I/O.

location /files/ {
    sendfile on;
    tcp_nopush on;
    aio on;
    directio 512;
    include snippets/cache_optimizer.conf;
    proxy_cache_valid 200 30d; # Cache longo
    add_header Content-Disposition "attachment"; # Força download
}

2. Streaming de Vídeo (Continuidade & Buffer)

Evita travamentos e economiza banda com suporte a Range Requests.

location /stream/ {
    proxy_pass http://backend;
    proxy_set_header Range $http_range;
    proxy_set_header If-Range $http_if_range;
    proxy_cache_key "$host$request_uri$http_range";
    
    # Tuning de Buffer para vídeo
    proxy_buffers 32 16k;
    proxy_buffer_size 64k;
    proxy_read_timeout 300s;
}

3. API Pesada / Traccar (Real-time & WebSocket)

Focado em manter conexões persistentes e rate limiting agressivo.

location /api/ {
    proxy_pass http://backend;
    
    # Suporte a WebSocket (Vital para Traccar/Mobile)
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    
    # Rate Limit Estreito para APIs
    limit_req zone=global_limit burst=20 nodelay;
    
    # Timeouts curtos para liberar recursos
    proxy_connect_timeout 5s;
    proxy_send_timeout 30s;
    proxy_read_timeout 30s;
}

🛠️ 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 /etc/nginx.
  2. Execute sudo git pull origin producao.
  3. Valide a sintaxe: sudo nginx -t.
  4. Recarregue o Nginx: sudo systemctl reload nginx.

🔐 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 o comando abaixo substituindo o domínio:

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

O Certbot criará o arquivo de validade na pasta /var/lib/letsencrypt/ e o Nginx enviará para o Let's Encrypt através do snippet de ACME.

Automação de Renovação (Configuração Única)

Para que o Nginx atualize os certificados automaticamente, o sistema foi configurado com um Post-Hook. Toda vez que o Certbot renovar um certificado, o Nginx fará um reload.

Verificar se o hook está ativo: cat /etc/letsencrypt/cli.ini (Deve conter post-hook = systemctl reload nginx)


🚀 Como Operar

Sincronização

As alterações feitas aqui devem ser enviadas para a branch producao. No servidor, a sincronização é feita via git pull na pasta /etc/nginx.

Validação

Sempre teste a configuração antes do reload:

sudo nginx -t
sudo systemctl reload nginx

Logs

Para auditoria de segurança, use o log JSON: tail -f /var/log/nginx/access_json.log | jq (necessário instalar o jq)