RULE: SPECs por projecto; Invest/ERP/Infra no vault + sidebar

This commit is contained in:
Roger 2026-08-05 18:18:55 +00:00
parent 23ba14b52a
commit 1e2dd78c29
5 changed files with 473 additions and 18 deletions

9
Infra-Network/README.md Normal file
View file

@ -0,0 +1,9 @@
# Infra / Network SPECs
SPECs de rede (big / BIG1 / routers). Repo Forgejo: a criar `ligbox/infra-network` se ainda não existir.
| SPEC | Ficheiro |
|------|----------|
| Arch B private network | SPEC_ARCH_B_BIG_PRIVATE_NETWORK.md |
| R7000 DD-WRT + Proxmox | SPEC_R7000_DDWRT_PROXMOX_NETWORK.md |
| R8000 credentials | SPEC_R8000_CREDENTIALS.md |

View file

@ -0,0 +1,206 @@
# SPEC — Architecture B: Rede Privada Proxmox BIG (vmbr0/vmbr1/vmbr2)
**Data:** 2026-07-08
**Responsável:** Roger / iTecnologys
**Host:** Dell R630 BIG — `big-itecnologys-wardrobe`
**Status:** Implementado (fase 1)
---
## 1. Objetivo
Proteger **infraestrutura de servidores** no BIG sem alterar o Sagemcom (`.254`):
- Rede **casa** (`192.168.1.0/24`) — gestão e uplink
- Rede **privada** (`10.10.10.0/24`) — VMs, Traefik, Tunnel, Wazuh, mail
- **pfSense VM 100** — firewall entre zonas
- **Cloudflare Tunnel** — acesso externo sem expor IP (fase 2)
**Não objetivo:** firewall de toda a casa (TV, telemóveis, PCs no Sagemcom).
---
## 2. Topologia física
```
Internet
Sagemcom (.254) ← inalterado (DHCP, firewall ISP)
├── Smart TV, PCs, IoT
└── R8000 (.115) → R7000 DD-WRT (.1) → eno3 (1 cabo)
Dell R630 BIG
```
| Regra física | Detalhe |
|--------------|---------|
| **1 cabo** | eno3 → porta LAN R7000 |
| **eno4 DOWN** | Evitar loop L2 (STP off no DD-WRT) |
| **Sem VLAN no R8000** | Stock não faz trunk — isolamento é virtual no Proxmox |
---
## 3. Switches virtuais (Proxmox bridges)
| Bridge | Rede | Porta física | Função |
|--------|------|--------------|--------|
| **vmbr0** | `192.168.1.0/24` | eno3 | Casa — host `.137`, uplink internet |
| **vmbr1** | `10.10.10.0/24` | nenhuma | **Privada** — VMs serviços |
| **vmbr2** | `10.0.0.0/30` | nenhuma | Link interno host ↔ pfSense WAN |
### Host BIG
| Campo | Valor |
|-------|-------|
| IP gestão (vmbr0) | `192.168.1.137/24` |
| Gateway | `192.168.1.254` |
| IP privado (vmbr1) | `10.10.10.1/24` |
| pfSense WAN (vmbr2) | `10.0.0.1/30` → pfSense `10.0.0.2` |
| Tailscale | `100.90.196.58` |
| SSH remoto | `tailscale ssh root@big-itecnologys-wardrobe` |
| Proxmox GUI | `https://192.168.1.137:8006` |
---
## 4. pfSense VM 100 (`pfsense-firewall`)
| NIC | Bridge | Função |
|-----|--------|--------|
| net0 | vmbr1 | LAN privada `10.10.10.0/24` |
| net1 | vmbr2 | WAN interna `10.0.0.0/30` |
| net2 | vmbr0 | Interface casa (opcional/gestão) |
### Configuração pfSense (GUI)
| Interface | IP | Notas |
|-----------|-----|-------|
| LAN (vmbr1) | `10.10.10.1/24` | DHCP `10.10.10.100-200` |
| WAN (vmbr2) | `10.0.0.2/30` | Gateway `10.0.0.1` |
| DNS | `192.168.1.254` ou `1.1.1.1` | Via NAT host |
### Regras firewall essenciais
| Regra | Ação |
|-------|------|
| LAN → Internet | ALLOW |
| LAN → `192.168.1.0/24` | BLOCK (isolamento) |
| Casa → LAN | ALLOW só portas gestão necessárias |
| Inbound WAN casa → VMs | BLOCK (usar Cloudflare Tunnel) |
---
## 5. VMs e serviços por bridge
| VMID | Nome | Bridge | IP típico |
|------|------|--------|-----------|
| 100 | pfsense-firewall | vmbr1+vmbr2+vmbr0 | `10.10.10.1` |
| 120 (LXC) | web-traefik | vmbr1 | `10.10.10.120` |
| 101-108, 500, 600, 700 | serviços | vmbr1 | `10.10.10.x` |
**Regra:** VMs sensíveis (Traefik, Tunnel, Wazuh, mail) **só em vmbr1**.
---
## 6. Isolamento host (iptables)
Já aplicado em `/etc/network/interfaces` (vmbr1 post-up):
```
FORWARD: DROP 10.10.10.0/24 → !10.10.10.0/24
FORWARD: ACCEPT 10.10.10.0/24 → UDP/53 (DNS)
```
Persistência: `/etc/network/interfaces.d/99-arch-b-private`
---
## 7. Nginx reverse proxy (host BIG)
Domínios `*.myvexx.com` no host nginx (`:80` / `192.168.1.137:443`):
```
server.myvexx.com → proxy_pass http://10.10.10.120:80 (Traefik CT120)
```
| Ficheiro | Função |
|----------|--------|
| `myvexx-proxy` | HTTP :80 → Traefik |
| `myvexx-landing-https` | HTTPS server/mycloud → Traefik |
| `myvexx-proxmox` | proxmox.myvexx.com → :8006 |
---
## 8. Cloudflare Tunnel (fase 2)
| Item | Valor |
|------|-------|
| Objetivo | Acesso externo sem port forward |
| Instalar em | LXC/VM só em vmbr1 |
| DNS | Cloudflare zone `myvexx.com` |
| Token | Configurar em CT120 ou VM dedicada |
---
## 9. Equipamentos LAN
| Device | IP | Doc |
|--------|-----|-----|
| Sagemcom | `.254` | Gateway casa |
| R8000 | `.115` | `SPEC_R8000_CREDENTIALS.md` |
| R7000 DD-WRT | `.1` | `SPEC_R7000_DDWRT_CREDENTIALS.md` |
| BIG | `.137` | Este documento |
---
## 10. Validação
```bash
# No BIG (via Tailscale)
ip addr show vmbr1 | grep 10.10.10.1
ip link show eno4 | grep DOWN
ping -c2 10.10.10.120
ping -c2 8.8.8.8
qm list | grep pfsense
iptables -L FORWARD -n | grep 10.10.10
# Teste local nginx
curl -sI -H 'Host: server.myvexx.com' http://127.0.0.1/
```
---
## 11. Fases de implementação
| Fase | Estado | Conteúdo |
|------|--------|----------|
| **1** | ✅ Feito | vmbr1 `10.10.10.1`, eno4 down, iptables, persistência |
| **2** | Pendente | pfSense GUI — DHCP LAN, regras finais |
| **3** | Pendente | Cloudflare Tunnel (substituir port forward) |
| **4** | Opcional | Proxmox `:8006` só via Tailscale/vmbr1 |
| **5** | Opcional | VLAN física se R8000 DD-WRT no futuro |
---
## 12. Troubleshooting
| Sintoma | Causa provável | Ação |
|---------|----------------|------|
| Rede cai ao ligar 2º cabo | Loop L2 eno3+eno4 | eno4 DOWN, 1 cabo |
| SSH LAN falha | Tailscale SSH ativo | `tailscale set --ssh=false` |
| server.myvexx.com fora | DNS → IP casa + port forward | Ver secção DNS abaixo |
| VMs sem internet | pfSense WAN/LAN | Verificar VM100 |
---
## 13. DNS server.myvexx.com
| Campo | Valor |
|-------|-------|
| DNS público | `server.myvexx.com``51.171.219.218` (IP casa) |
| myvexx.com | → `95.216.14.146` (Hetzner) |
| Backend local | nginx → `10.10.10.120` (OK internamente) |
| Acesso externo | Requer port forward Sagemcom :80/:443 → `.137` |
---
*Documento gerado automaticamente — Architecture B BIG Proxmox*

View file

@ -0,0 +1,182 @@
# SPEC — DD-WRT R7000 + Proxmox BIG (Rede LAN/WAN)
**Data:** 2026-07-08
**Responsável:** Roger / iTecnologys
**Dispositivo:** Netgear R7000 — DD-WRT v3.0-r44715
---
## 1. Topologia correta
```
Internet
[AT&T Gateway] 192.168.1.254
│ DHCP + Firewall + Gateway principal
├── [BIG Proxmox] 192.168.1.137 (cabos eno3/eno4 → portas LAN)
└── [R7000 DD-WRT] 192.168.1.1 (modo AP — só Wi-Fi + switch)
Dispositivos Wi-Fi
```
**Regra de ouro:** O DD-WRT **não é firewall principal** — o gateway AT&T (`.254`) é a fronteira. O DD-WRT é **AP + switch**.
---
## 2. Modo de operação: AP (Access Point)
| Papel | Dispositivo |
|-------|-------------|
| Gateway + DHCP + DNS | AT&T `.254` |
| Proxmox host | BIG `.137` |
| Wi-Fi + switch LAN | R7000 `.1.1` |
---
## 3. Configuração DD-WRT — Setup → Basic Setup
| Campo | Valor | Por quê |
|-------|-------|---------|
| **WAN Connection Type** | `Disabled` | R7000 não roteia internet |
| **Local IP (LAN)** | `192.168.1.1` | IP de gestão do DD-WRT |
| **Subnet Mask** | `255.255.255.0` | Mesma rede |
| **Gateway** | `192.168.1.254` | Encaminhar para AT&T |
| **Local DNS** | `192.168.1.254` | DNS do gateway |
| **DHCP Server** | **Disable** | Evitar conflito com `.254` |
| **STP** | Disable | Evitar loops |
---
## 4. Configuração DD-WRT — Security → Firewall
| Campo | Valor | Por quê |
|-------|-------|---------|
| **SPI Firewall** | Enable | Proteção básica |
| **Block WAN Requests** | Enable | Bloquear scans externos |
| **Filter WAN NAT Redirection** | Enable | Segurança |
| **AP Isolation** | **Disable** | Proxmox precisa falar com LAN |
---
## 5. Configuração DD-WRT — Wireless → Advanced
| Campo | Valor |
|-------|-------|
| **AP Isolation** | **Disable** |
| **Set AP on different subnet** | **Disable** |
| **Multicast forwarding** | Enable (se houver VMs) |
---
## 6. Configuração DD-WRT — Services
| Serviço | Porta | WAN Access | Notas |
|---------|-------|------------|-------|
| **Lighttpd HTTP** | `8085` | **Disable** | Só LAN |
| **Lighttpd HTTPS** | `443` | **Disable** | Só LAN |
| **SSH (dropbear)** | `2222` | **Disable** | Só LAN |
| **Telnet** | `23` | **Disable** | Backup, desativar depois |
| **DNSMasq** | `53` | — | **Disable** se DHCP off |
---
## 7. Configuração DD-WRT — Administration → Management
| Campo | Valor |
|-------|-------|
| **Web GUI Management (WAN)** | **Disable** |
| **SSH Management (WAN)** | **Disable** |
| **Remote Access** | **Tudo Disable** |
| **Boot Wait** | **Enable** (recovery) |
---
## 8. Portas físicas R7000 — cabeamento
| Porta R7000 | Uso | Conectar |
|-------------|-----|----------|
| **WAN (amarela)** | Desativada | **Nada** ou uplink ao `.254` (opcional) |
| **LAN 14 (pretas)** | Bridge LAN | **BIG eno3 + eno4**, switch, PCs |
**NUNCA** ligar Proxmox só na porta WAN — `eth0` não está no `br0`.
---
## 9. Configuração Proxmox BIG (host)
| Campo | Valor |
|-------|-------|
| **IP** | `192.168.1.137` (estático) |
| **Gateway** | `192.168.1.254` |
| **DNS** | `192.168.1.254` |
| **Interfaces** | `eno3` + `eno4` (bond ou ativas) |
| **Proxmox Web** | `https://192.168.1.137:8006` |
| **SSH** | `root@192.168.1.137` |
| **Tailscale** | `100.90.196.58` (quando internet voltar) |
---
## 10. O que estava errado (causa do problema)
| Erro | Efeito |
|------|--------|
| **DHCP ativo no DD-WRT** | BIG recebeu gateway `.1.1` em vez de `.254` |
| **lan_gateway=0.0.0.0** | DD-WRT sem rota para internet |
| **wk_mode=gateway** com WAN disabled | Modo inconsistente |
| **Cabo na porta WAN** | Proxmox isolado da LAN (`eth0` ∉ `br0`) |
| **Lighttpd WAN Access Enable** | Exposição desnecessária |
---
## 11. NVRAM (aplicar via SSH)
```bash
ssh -p 2222 root@192.168.1.1
nvram set wan_proto=disabled
nvram set lan_gateway=192.168.1.254
nvram set wan_gateway=192.168.1.254
nvram set wan_dns=192.168.1.254
nvram set dnsmasq_enable=0
nvram set wk_mode=lan
nvram set wl_ap_isolate=0
nvram set remote_mgt_ssh=0
nvram commit
reboot
```
---
## 12. Validação pós-configuração
```bash
# No DD-WRT:
ping -c 3 192.168.1.254 # gateway OK
ping -c 3 192.168.1.137 # BIG OK
arp -a | grep 137 # MAC do BIG visível
# No laptop:
ping 192.168.1.137
curl -k https://192.168.1.137:8006
ssh root@192.168.1.137
```
---
## 13. Segurança — camadas
```
Camada 1: AT&T Gateway (.254) → firewall ISP
Camada 2: pfSense (VM no BIG) → firewall interno
Camada 3: Traefik (VM no BIG) → reverse proxy
Camada 4: Cloudflare Tunnel → acesso externo sem expor IP
Camada 5: DD-WRT (R7000) → só AP, sem exposição WAN
```
O DD-WRT **não substitui** pfSense/Traefik — só entrega conectividade LAN limpa ao Proxmox.
---
*Aplicar configuração e reboot do DD-WRT antes de testar Proxmox.*

View file

@ -0,0 +1,63 @@
# SPEC — Netgear R8000 (Nighthawk X6) Credentials
**Data:** 2026-07-08
**Responsável:** Roger / iTecnologys
**Dispositivo:** Netgear Nighthawk X6 AC3200 — Model **R8000**
---
## Identificação
| Campo | Valor |
|-------|-------|
| **Modelo** | Netgear R8000 (Nighthawk X6) |
| **MAC** | `28:80:88:35:86:40` |
| **IP LAN (atual)** | `192.168.1.115` (DHCP do Sagemcom) |
| **Serial** | `4MKD027BA0346` |
---
## Acesso Web (Router Login)
| Campo | Valor |
|-------|-------|
| **URL** | `http://192.168.1.115` ou `http://routerlogin.net` |
| **Usuário** | `admin` |
| **Senha** | `password` (fábrica — confirmar se foi alterada) |
---
## Wi-Fi (etiqueta do equipamento)
| Campo | Valor |
|-------|-------|
| **SSID** | `NETGEAR73` |
| **Password** | `dailyshrub462` |
---
## Topologia (confirmar)
```
Sagemcom (.254)
└── R8000 (.115) ← este equipamento
└── cabo(s) → R7000 DD-WRT (.1)
└── R630 BIG (.137)
```
---
## Investigação
| Item | Resultado |
|------|-----------|
| IP na LAN | `192.168.1.115` (MAC confirma etiqueta) |
| Modo | AP/Repetidor (DHCP do Sagemcom) |
| VLAN trunk | **Não** (firmware stock) |
| Cabos → R7000 | Confirmar físico (provável 1 cabo) |
**Conclusão:** R8000 não suporta VLAN. Rede privada fica **dentro do Proxmox** (vmbr10), não no caminho físico.
---
*Credenciais fornecidas por Roger — etiqueta física do R8000.*

View file

@ -1,30 +1,25 @@
# Obsidian Vault — Ligbox Cloud
Vault central CT130 · sync Git `ligbox/obsidian-vault`
Vault central CT130 · Forgejo `https://git.spec.ligbox.com.br/ligbox/`
## MyVexx / Invest (novo)
**Regra:** cada SPEC no **projecto** (pasta vault + repo Forgejo). Ver RULE em Invest-MyVexx.
| Doc | Link |
|-----|------|
| Hub Invest | [Invest-MyVexx.md](Invest-MyVexx/Invest-MyVexx.md) |
| **SPEC-051** Unified Dashboard + Index Hub | [SPEC-051](Invest-MyVexx/SPEC-051-INVEST-UNIFIED-DASHBOARD-INDEX-HUB.md) |
| SPEC-050 AI Agents paper-only | [SPEC-050](Invest-MyVexx/SPEC-050-INVEST-AI-AGENTS-PAPER.md) |
| RULE SSH CT124→CT130 | [RULE](Invest-MyVexx/RULE-SSH-CT124-TO-CT130-SPEC-HUB.md) |
## Projectos
## Conteúdo
| Pasta vault | Forgejo |
|-------------|---------|
| `Invest-MyVexx/` | [invest-myvexx](https://git.spec.ligbox.com.br/ligbox/invest-myvexx) — SPEC-050, **SPEC-051** |
| `ERP-Odoo-Ligit-MyVexx/` | [erp-odoo-ligit-myvexx](https://git.spec.ligbox.com.br/ligbox/erp-odoo-ligit-myvexx) |
| `Infra-Network/` | [infra-network](https://git.spec.ligbox.com.br/ligbox/infra-network) |
| `ligbox-ops-platform/` | [ligbox-ops-platform](https://git.spec.ligbox.com.br/ligbox/ligbox-ops-platform) |
| Pasta | Descrição |
|-------|-----------|
| `Invest-MyVexx/` | SPECs Invest (050, **051**) + RULE SSH |
| `ERP-Odoo-Ligit-MyVexx/` | SPECs ERP CONTIX+ |
| `ligbox-ops-platform/` | Specs, docs, LAPTOP, chat bruto |
| `ligbox-ops-platform/LAPTOP/` | Export C: / sessões Cursor |
| `ligbox-ops-platform/specs/` | Spec Kit features |
## Links rápidos Invest
- [SPEC-051](Invest-MyVexx/SPEC-051-INVEST-UNIFIED-DASHBOARD-INDEX-HUB.md)
- [SPEC-050](Invest-MyVexx/SPEC-050-INVEST-AI-AGENTS-PAPER.md)
## Obsidian Desktop
```bash
git clone https://git.spec.ligbox.com.br/ligbox/obsidian-vault.git
```
Plugin **Obsidian Git** → pull antes de editar, push depois.