5.1 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.confpelo 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:
include snippets/ssl_params.conf;: Ativa TLS 1.3, HSTS e anuncia HTTP/3 (QUIC).include snippets/proxy_params.conf;: Headers padrão e ofuscação de tecnologia de backend (Server,X-Powered-By).include snippets/security_headers.conf;: Headers de 2026 (COOP, COEP, CORP) para proteção de isolamento do navegador.include snippets/modsecurity.conf;: Ativa o WAF e a Blacklist dinâmica.include snippets/security_actions.conf;: Toma a decisão final de bloquear (444) se o motor PSDE detectar risco alto.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.confcentraliza 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)
- Crie o arquivo
nginx/conf.d/nome-do-site.confseguindo o Padrão Ouro. - Atenção: Aponte os caminhos de certificado para
/etc/letsencrypt/live/nome-do-site/. - Faça o commit e push para a branch
producao.
2. Sincronização no Servidor (SSH)
- Entre no servidor e vá para o diretório de scripts:
cd /etc/nginx/scripts/. - 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/nginxe/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.
- Faz backup datado de
🔐 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):
-
Criar pasta de desafios (se não existir):
sudo mkdir -p /var/lib/letsencrypt && sudo chown www-data:www-data /var/lib/letsencrypt -
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.confdo seu site em/etc/nginx/conf.d/aponta para o caminho exato gerado por ele. Você pode conferir os caminhos ativos comsudo 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 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).