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 e932ca8f7d feat(waf): implementado modsecurity 3.0.14, plugins crs v4 e tunings específicos por app 2026-02-06 22:18:42 -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 feat(waf): implementado modsecurity 3.0.14, plugins crs v4 e tunings específicos por app 2026-02-06 22:18:42 -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 feat(waf): implementado modsecurity 3.0.14, plugins crs v4 e tunings específicos por app 2026-02-06 22:18:42 -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 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).

🛡️ 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.
  • Tuning: Arquivo modsec/app_specific_modsec_tuning.conf centraliza exceções para UniFi, vCenter, Exchange, Zabbix e Veeam.

🧠 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.

🛠️ 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 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 (Se necessário)

Se o Nginx for atualizado para uma versão superior à 1.29.5, o módulo ModSecurity precisará ser recompilado usando o script: sudo ./scripts/install_modsecurity.sh

Validação

Sempre teste a configuração antes do reload:

sudo nginx -t
sudo systemctl reload nginx

Auditoria em Tempo Real

Para visualizar ataques bloqueados e o PSDE Scoring em formato amigável: tail -f /var/log/nginx/access_json.log | jq (necessários logs JSON ativos e jq instalado).