Skip to content

Decide whether Hicks should reach all of Winterfell and ImaginationLAN #228

Description

@Gerrrt

What and why

Found while writing ADR-0013 for #104; the finding is recorded there, the decision is not.

Hicks (50) reaches all of Winterfell (99) and all of ImaginationLAN (30), on every protocol and port. No rule grants that and no rule denies it. The Hicks interface blocks CasaBonita, Skids and Degens, and then passes to any:

block drop from vlan50 to vlan40
block drop from vlan50 to vlan20
block drop from vlan50 to vlan10
pass       from vlan50 to any        <-- 30 and 99 fall through to here

There is a narrow explicit rule above it — vlan50 → 10.0.99.1:22/tcp, Allow SSH to pfSense — which is what ADR-0002 and security.md described as the management path. It is real, and it is also redundant: the catch-all below grants far more than it does.

docs/network.md has recorded this correctly the whole time ("Reaches: Internet, 99, 30"). It was ADR-0002 ("exactly two inter-VLAN rules"), security.md ("Specific hosts on Hicks may reach Winterfell on management ports") and README.md ("three inter-VLAN rules, each directional and documented") that described a rule set narrower than the deployed one. ADR-0013 fixed the description. This issue is about the posture.

Why it matters more than the existing residual

SECURITY.md and ADR-0012 already accept that a compromised Hicks workstation reaching 10.0.99.20 can write to the metric and log stores without a credential, because Prometheus and Loki publish unauthenticated ingest ports for oracle's agent. That residual was scoped to one host and two ports.

The actual exposure is the whole segment: every host on Winterfell, every port, plus all of ImaginationLAN. ADR-0002 predicted the direction of this ("a compromised workstation reaches Winterfell") but the design was written as two narrow rules, and it is not implemented that way.

The decision

Not obviously "narrow it". Hicks is the only segment with a management path, and it exists so the estate can be administered. Narrowing means enumerating what a workstation legitimately needs — SSH to the firewall, the Grafana and Prometheus web UIs, Proxmox, the wiki, the iLO web UI, whatever else has accumulated — and getting that list wrong breaks management access and the lab in ways that are annoying to debug from a segment that can no longer reach anything.

Options, roughly:

  1. Accept and record it. Cheapest. Turns an undocumented posture into a documented one, which ADR-0013 has already half-done. The residual in SECURITY.md would need widening from "one host, two ports" to "the whole segment".
  2. Block 50 → 99 and 50 → 30, then allow-list back. The default-deny posture the rest of the estate has. Highest confidence, most work, and the failure mode during rollout is losing management access.
  3. Block 50 → 99 only. Winterfell is where compromise is total; ImaginationLAN is explicitly the segment where broken things live, and ADR-0007 argues the lab is meant to be reachable from trusted workstations.

Option 3 is probably the shape, but the enumeration in option 2 is the work either way.

Worth doing first

Whatever is chosen, do it before #102 builds ADR-0008's sensitive tier — that adds 50→40 and 99→20, and adding rules to a segment whose posture is undecided is how the next four-documents-four-numbers situation starts.

Which VLAN does this touch

🟠 50 — Hicks (trusted), 🔴 99 — Winterfell (management), 🟢 30 — ImaginationLAN (lab)

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions