SPEC-053 WAN lock for SSH/WebGUI; SPEC-054 mirrors the same model for PVE :8006. Co-authored-by: Cursor <cursoragent@cursor.com>
72 lines
2.1 KiB
Markdown
72 lines
2.1 KiB
Markdown
# SPEC-054 — Acesso privado ao Proxmox WebUI (big1) — mesmo modelo que pfSense
|
|
|
|
**Criado:** 2026-09-11
|
|
**Operador:** Roger
|
|
**Status:** ✅ Já implementado (Spec 045 + hardening iptables); documentado canonicamente aqui
|
|
**Sistemas:** Proxmox **big1** · Tailscale
|
|
**Relacionado:** Spec 045 · `ACCESS-BIG1.md` · `SPEC-053-PFSENSE-PRIVATE-ADMIN.md`
|
|
|
|
---
|
|
|
|
## Objectivo
|
|
|
|
Garantir que a **WebUI do Proxmox (`:8006`)** e o **SSH do host (`:4422`)** não são o alvo fácil de bots na internet — acesso admin **via Tailscale**, igual ao pfSense.
|
|
|
|
---
|
|
|
|
## Decisão (paralelo ao pfSense)
|
|
|
|
| Serviço | Público | Canónico (privado) |
|
|
|---------|---------|---------------------|
|
|
| Proxmox WebUI `:8006` | **DROP** iptables | `https://100.116.138.100:8006/` |
|
|
| SSH host `:4422` | **DROP** excepto TS/`lo` | `ssh -p 4422 root@100.116.138.100` |
|
|
| pfSense WebGUI `:10443` | **BLOCK** WAN (SPEC-053) | `https://100.116.138.100:18443/` |
|
|
| pfSense SSH `:22` | **BLOCK** WAN (SPEC-053) | `ssh pfsense` (ProxyJump big1) |
|
|
|
|
---
|
|
|
|
## Como aceder de qualquer sítio
|
|
|
|
1. Tailscale no dispositivo
|
|
2. Browser: **https://100.116.138.100:8006/**
|
|
3. SSH: `ssh -p 4422 root@100.116.138.100`
|
|
|
|
---
|
|
|
|
## Implementação (já activa no big1)
|
|
|
|
| Item | Local |
|
|
|------|--------|
|
|
| if-up hook | `/etc/network/if-up.d/zzz-tailscale-admin-hardening` |
|
|
| rules persistentes | `/etc/iptables/rules.v4` |
|
|
| Script referência | `/root/hardening_big1.sh` |
|
|
|
|
Regras:
|
|
|
|
```bash
|
|
# ACCEPT só Tailscale + localhost
|
|
iptables -A INPUT -i tailscale0 -p tcp -m multiport --dports 4422,8006 -j ACCEPT
|
|
iptables -A INPUT -i lo -p tcp -m multiport --dports 4422,8006 -j ACCEPT
|
|
# DROP resto
|
|
iptables -A INPUT -p tcp --dport 4422 -j DROP
|
|
iptables -A INPUT -p tcp --dport 8006 -j DROP
|
|
```
|
|
|
|
**Não** altera `/etc/network/interfaces` (proibido sem 3 confirmações).
|
|
|
|
---
|
|
|
|
## Checklist
|
|
|
|
- [ ] Tailscale activo no PC/telemóvel
|
|
- [ ] `https://100.116.138.100:8006/` → login PVE
|
|
- [ ] Contadores DROP `:8006` sobem (`iptables -L INPUT -n -v | grep 8006`)
|
|
- [ ] pfSense: ver `ACCESS-PFSENSE.md`
|
|
|
|
---
|
|
|
|
## Referências
|
|
|
|
- `ACCESS-BIG1.md`
|
|
- `ACCESS-PFSENSE.md`
|
|
- Spec 045 — hardening 4422/8006
|