NgixProxy_Pathfinder/README.md

54 lines
2.4 KiB
Markdown

# Nginx Pathfinder Proxy - Repositório de Configuração
Este repositório é a fonte da verdade para as configurações do **Pathfinder Proxy**. Ele armazena as definições de domínios, segurança e parâmetros do Nginx e Fail2Ban.
> [!IMPORTANT]
> **Repositório de Configuração (Config Management):**
> Este repositório **NÃO** gerencia a execução do Docker, build de imagens ou certificados SSL. Ele serve apenas para versionar os arquivos `.conf` que serão baixados no servidor.
## 🧠 O que este repositório armazena:
* **Gerenciamento de Sites:** Definição de VHosts em `nginx/conf.d/`.
* **Snippets Reutilizáveis:** Componentes modulares (SSL, Proxy, WAF) em `nginx/snippets/`.
* **Segurança Dinâmica:** Estrutura para `blacklist.conf` (alimentada externamente).
* **Fail2Ban:** Regras de jails e filters customizados em `fail2ban/`.
## 📂 Estrutura de Pastas
```text
.
├── nginx/
│ ├── nginx.conf # Configuração mestre (Global)
│ ├── conf.d/ # Arquivos de site (Ex: ferreirareal.com.br.conf)
│ ├── snippets/ # Peças modulares (SSL, ModSec, Proxy, Blacklist)
│ ├── dynamic/ # Configurações dinâmicas (Blacklist - gerado pelo Fail2Ban)
│ └── modsec/ # Regras do WAF
└── fail2ban/ # Configurações do sidecar de segurança
```
## 🛠️ Como Adicionar um Site
1. Crie o arquivo em `nginx/conf.d/meusite.conf`.
2. Utilize os snippets para manter o padrão e segurança:
```nginx
server {
listen 443 quic reuseport; # Suporte a HTTP/3
listen 443 ssl;
server_name meusite.com.br;
# Certificados (Gerenciados no Servidor/Portainer)
ssl_certificate /etc/letsencrypt/live/meusite.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meusite.com.br/privkey.pem;
include snippets/ssl_params.conf;
include snippets/proxy_params.conf;
include snippets/modsecurity.conf;
location / {
proxy_pass http://ip_interno:porta;
}
}
```
3. Commit e Push para a branch `producao`.
4. No servidor (Portainer/Docker), faça o Pull das alterações.
## ⚙️ Notas Operacionais
* **Logs e SSL:** As pastas `logs`, `ssl` e `certbot` não são versionadas aqui para segurança. Elas existem apenas no servidor.
* **Fail2Ban:** O Fail2Ban lê os logs do Nginx e escreve bloqueios em `nginx/dynamic/blacklist.conf`.