Documents architecture, prerequisites, and rollout steps; Tailscale remains break-glass. Co-authored-by: Cursor <cursoragent@cursor.com>
101 lines
3.2 KiB
Markdown
101 lines
3.2 KiB
Markdown
# ACCESS — Proxmox host **big1**
|
|
|
|
**Status:** canónico · **Atualizado:** 2026-09-11
|
|
**Operador:** Roger
|
|
**SPEC:** `SPEC-054-PROXMOX-PRIVATE-ADMIN.md`
|
|
**Uso:** agentes NÃO perguntam de novo — ler este ficheiro.
|
|
|
|
> Acesso ao **servidor** (SSH / UI PVE), não a outra sessão de chat.
|
|
> Cada chat Cursor é isolado.
|
|
> **Mesmo modelo que o pfSense:** admin pela **Tailscale**, não pela internet.
|
|
|
|
---
|
|
|
|
## Host
|
|
|
|
| Item | Valor |
|
|
|------|--------|
|
|
| Nome | **big1** (`big1.itecnologys.com`) |
|
|
| Software | Proxmox `pve-manager/9.1.4` (kernel 6.17.x) |
|
|
| **Não confundir** | **BIG** (VM500 RentCharge) ≠ **big1** (Hetzner) |
|
|
|
|
---
|
|
|
|
## SSH do host (só chave)
|
|
|
|
| Item | Valor |
|
|
|------|--------|
|
|
| IP público | `95.216.14.162` |
|
|
| Tailscale | `100.116.138.100` |
|
|
| Porta | **`4422`** (não 22) |
|
|
| Utilizador | `root` |
|
|
| Auth | `PasswordAuthentication no` · `PermitRootLogin without-password` |
|
|
| Chave dedicada (agente) | `/root/.ssh/cursor_agent_ed25519` |
|
|
| Fingerprint | `SHA256:srUl0EmzpFjjzRMQ0YUxeuRnEd2BWqEOy90+cu000lk` (`cursor-agent-session-20260909`) |
|
|
| Host key ED25519 | `SHA256:HaeXqXuXrm7ddAt+6bDj+G43tVRrQBpRKRluEfcnsLg` |
|
|
|
|
```bash
|
|
# Canónico (Tailscale — de qualquer sítio do mundo)
|
|
ssh -i ~/.ssh/… -p 4422 root@100.116.138.100
|
|
|
|
# Emergência só se Tailscale falhar (chave; não senha)
|
|
ssh -i ~/.ssh/… -p 4422 root@95.216.14.162
|
|
```
|
|
|
|
`4422` na internet pública está **DROP** excepto via Tailscale/`lo` (hardening Spec 045).
|
|
|
|
**Nunca colar a chave privada em chat.** Se a sessão já corre no big1, a chave está em `/root/.ssh/`. Se corre noutra máquina, o operador copia por canal privado (`cat` local → `chmod 600` no destino).
|
|
|
|
Outras chaves no host (não usar senha): `id_rsa` / fingerprints RSA `root@95.216.14.162`, `root@big1`, ED25519 `PROXMOX-HERTZNER-3`, RSA `root@big`.
|
|
|
|
Revogar só a chave do agente:
|
|
|
|
```bash
|
|
# no cliente
|
|
ssh-keygen -R "[95.216.14.162]:4422"
|
|
# no big1
|
|
sed -i '/cursor-agent-session-20260909/d' /root/.ssh/authorized_keys
|
|
```
|
|
|
|
Backup: `/root/.ssh/authorized_keys.bak.*` no big1.
|
|
|
|
---
|
|
|
|
## HTTPS Proxmox (WebUI) — privado como o pfSense
|
|
|
|
| Canal | URL |
|
|
|-------|-----|
|
|
| **Tailscale (canónico)** | **https://100.116.138.100:8006/** |
|
|
| IP público `:8006` | **Bloqueado** (iptables DROP; ~100k+ drops) |
|
|
| Cert | CN=`big1.itecnologys.com` |
|
|
|
|
De qualquer sítio: Tailscale ligado → abrir `https://100.116.138.100:8006/` no browser.
|
|
|
|
Persistência: `/etc/network/if-up.d/zzz-tailscale-admin-hardening` + `/etc/iptables/rules.v4`
|
|
(ACCEPT `tailscale0`/`lo` → `4422,8006`; DROP resto).
|
|
|
|
---
|
|
|
|
## Guests (a partir do big1)
|
|
|
|
```bash
|
|
qm guest exec <VMID> -- <comando>
|
|
pct exec <CTID> -- <comando>
|
|
```
|
|
|
|
SSH guest (quando rede OK): `root` / `805353` — **não** abre o host.
|
|
|
|
CT130 Obsidian: ver `ACCESS-CT130-OBSIDIAN.md`.
|
|
|
|
---
|
|
|
|
## Relacionados
|
|
|
|
- `ACCESS-CT130-OBSIDIAN.md`
|
|
- `.cursor/rules/access-big1.mdc`
|
|
- `SPEC-054-PROXMOX-PRIVATE-ADMIN.md` — WebUI/SSH só Tailscale (activo)
|
|
- `SPEC-055-PROXMOX-CF-TUNNEL-ACCESS-PLAN.md` — **plano** browser via Cloudflare Tunnel + Access (`pve.itecnologys.com`)
|
|
|
|
## pfSense
|
|
|
|
Ver **ACCESS-PFSENSE.md** e **SPEC-053-PFSENSE-PRIVATE-ADMIN.md** (GUI/SSH privados via Tailscale; sem firewall.itecnologys.com público).
|