54 lines
2.4 KiB
Markdown
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`. |