Skip to content

Saruman's Proxmox firewall was never enabled: ADR-0014's rule exists only in a runbook, and phoenix's 8006 line has no wall to go in #566

Description

@Gerrrt

Found 2026-09-20, building phoenix (#436)

build-the-jumpbox.md §4 writes ADR-0043's one line — IN ACCEPT -source 10.0.30.70 -p tcp -dport 8006 — beneath ADR-0014's three in Saruman's host.fw. There is no such file. On Saruman:

pve-firewall status            → Status: disabled/running
/etc/pve/firewall/cluster.fw   → does not exist
/etc/pve/nodes/*/host.fw       → does not exist

and from morpheus (10.0.30.1, not on 10.0.50.0/24), nc -z 10.0.30.110 8006 and 22 both connect. ADR-0014's management-plane rule — 8006, 8007 and 22 from Hicks only — was decided in 2026-09 and is applied by build-the-playground.md §4, which is gated on #101 and has not run. Nothing in SECURITY.md, network.md or architecture.md claimed it was on; ADR-0043 did ("today nothing on VLAN 30 is admitted"), and #544 corrects that with a marked note.

Also found: the Proxmox node is Saruman, capitalised, as pvesh get /nodes prints it. The runbook said lower-case, so its /nodes/saruman ACL, host.fw path and API URL were wrong; #544 fixes all three.

What this means today

Every address on VLAN 30 — and anything routed to it — reaches the hypervisor's login surface. The token is the control and the rule was only ever the door, as ADR-0043 says, but the door is recorded in two ADRs as if it stood. It does not. phoenix was built without writing the line, per the runbook's CAUTION: a DROP input policy with the rules unrendered locks the console out of a machine whose console is a KVM switch away, and that is not a side effect to take while building a guest.

Done when

build-the-playground.md §4 has been run on Saruman with the console to hand — cluster.fw with policy_in: DROP, /etc/pve/nodes/Saruman/host.fw with ADR-0014's three rules and ADR-0043's fourth, firewall=0 on every guest NIC (140 and 170 today) — and:

Not gated on #101: the range's other constraints are, but the estate's own hypervisor closing its management plane needs no attack VM to exist first.

Refs #436, ADR-0014, ADR-0039, ADR-0043.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinglabstacks/lab on alexander (VLAN 30)securityA credential, an exposure, or a control that is weaker than recordedseq/1Step 1 within its milestone; same number = can run in parallel

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions