Skip to content

#92: record the firewall restore rehearsal on trinity - #686

Merged
Gerrrt merged 2 commits into
mainfrom
gerrrt/gallant-maxwell-kga7f3
Sep 27, 2026
Merged

Gerrrt merged 2 commits into
mainfrom
gerrrt/gallant-maxwell-kga7f3

Conversation

@Gerrrt

@Gerrrt Gerrrt commented Sep 27, 2026

Copy link
Copy Markdown
Owner

What changed

Records the firewall restore rehearsal run on trinity on 2026-09-27. It no longer describes a procedure nobody had tried; it says what happened.

  • docs/runbooks/restore-the-firewall.md
    • "Rehearse the restore on the spare" is now a dated record: the box, the export, the release, the time, and a table of results. The "hypothesis" and "Nobody has done this yet" sentences are gone. The procedure stays so it can be run again.
    • §3 now contains what the runbook had not said, in a new step 0 and updates to steps 1–3:
      • Secure Boot has to be off, and the change only takes effect after typing HP's four-digit code on the next boot.
      • The undisclosed Wireless-AC 9560 makes the kernel panic under iwm. The BIOS Wi-Fi switch doesn't stop it; hint.iwm.0.disabled does.
      • The Netgate Installer needs the internet, because there has been no offline CE installer since 2.7.2.
      • The installer lists the interfaces, and you choose WAN and LAN.
      • The UI restore path works.
    • The note at the top about the installer stick is updated, and so is the Time estimate: 42 minutes measured.
  • docs/roadmap.md: the Rehearse the firewall restore on trinity #92 entry now records the result.
  • docs/hardware.md: the trinity entry records the rehearsal, why the 9560 can't be switched off in the BIOS (it's CNVi), and the firmware state the box was left in for Build the sensitive-tier host on the ProDesk (ADR-0034) #404. The installer-stick entry says it holds the online installer.

Why

Closes #92. Its "done when" condition was met on the bench. A restore of config-20260926T043704Z, taken from oracle, onto pfSense CE 2.9.0 on trinity with the I226 card booted with no interface-assignment prompt. A client tagged into VLAN 99 got a lease from that VLAN's scope.

Blast radius

Docs only. Nothing in the running lab changes.

  • No change to network segmentation or firewall rules
  • No new port published to a VLAN that could not already reach the service
  • No credential added outside secrets/*.sops.yaml

Verification

On the bench, from trinity's console shell and a MacBook on the I226 port:

Check Expected Got
grep -c '<rule>' /cf/conf/config.xml 112 112
Tripwire rules (§4 step 5) 4 4
<Tunnel_Peers> rules 12 12, and the table holds a subnet
Kea DHCP scopes 6 6
Interfaces WAN em0, LAN igc0, six VLANs all present, each on its .1/24
Client on VLAN 99 lease from that scope 10.0.99.100, and the gateway answered ping

§4's segmentation checks and the SNMP target checks need the rack, so they weren't run on the bench.

  • make validate passes (16 checks skipped in this environment), and markdownlint-cli2 reports 0 issues
  • Deployed to the lab and confirmed working: the rehearsal itself
  • Docs updated (docs/, docs/roadmap.md)

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ee5oBrtHGsV2Fch9j6enYz


Generated by Claude Code

The restore of config-20260926T043704Z, taken from oracle, onto pfSense
CE 2.9.0 on trinity booted with no interface-assignment prompt: every
interface, 112 rules, 4 tripwires, 12 Tunnel_Peers rules, 6 Kea scopes,
and a VLAN 99 lease to a bench client. 42 minutes.

Replaces the runbook's hypothesis with the record and writes back what
section 3 did not say: Secure Boot and HP's confirmation code, the
Wireless-AC 9560 panicking the kernel under iwm, and an installer that
needs the internet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ee5oBrtHGsV2Fch9j6enYz
It goes back in on the day trinity becomes the firewall, so the restore
runbook now starts by fitting it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ee5oBrtHGsV2Fch9j6enYz
@Gerrrt
Gerrrt merged commit 0c91154 into main Sep 27, 2026
7 checks passed
@Gerrrt
Gerrrt deleted the gerrrt/gallant-maxwell-kga7f3 branch September 27, 2026 23:07
Gerrrt added a commit that referenced this pull request Sep 28, 2026
The install on 2026-09-28 put Ubuntu 26.04.1 LTS on trinity, kept on
purpose. 26.04 builds its initramfs with dracut, which carries
systemd-cryptsetup, so the TPM seal is systemd-cryptenroll and a
tpm2-device=auto crypttab option rather than Clevis. ADR-0054 and the
runbook's §4 now say so, with checks for all three halves. Docker
publishes a resolute suite, so the rest of §4 is unchanged.

The build also found the I226 card in the second M.2 slot, as enp1s0.
#686 recorded it as back in the drawer. It stays fitted and unconfigured,
and hardware.md, the roadmap and the firewall restore runbook now say
that. The restore runbook also names the BIOS password ADR-0054 adds.

And the runbook covers what happened on the network screen: the
installer defaults to DHCP, and Kea handed out 10.0.99.100.

Refs #404

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rehearse the firewall restore on trinity

2 participants