Write the firewall's running order into the plan, not just the commit

The previous commit moved the nftables lockdown out of Task 5 and explained why
in its message. A commit message is not where the next person looks. Task 5 now
carries it: the bridge is normally already there because the ISO installer
writes it, the lockdown belongs in Task 9 because SecureHostFirewall ran last
for a reason, and "check from outside" cannot mean what it says before the
tunnel exists — so the script checks inside-out and says so.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
feature/host-bootstrap
nexxo 2026-07-30 20:06:48 +02:00
parent e9b2862331
commit 9e485efe87
1 changed files with 26 additions and 2 deletions

View File

@ -292,11 +292,35 @@ werden:
### Task 5: `network_bridged` — der gefährlichste Abschnitt
- [ ] **Step 1: Schreiben**
- [x] **Step 1: Schreiben**
**Lies zuerst `ConfigureProxmox.php`.** Dort steht, warum Proxmox auf Debian keine
`vmbr0` anlegt und was eine falsche Brücke anrichtet.
> **Zwei Korrekturen aus der Umsetzung.**
>
> **Die Brücke ist im Regelfall schon da.** Genau die Stelle, die man hier liest,
> sagt es: Proxmox *auf Debian* legt keine `vmbr0` an — „only the ISO installer
> writes that bridge into `/etc/network/interfaces`". Dieser Entwurf installiert
> über die ISO. Der Abschnitt **prüft** deshalb (existiert sie, hat sie eine
> Adresse, trägt sie die Vorgaberoute) und baut nur im Ausnahmefall — dann unter
> der Selbstrücknahme. Dieselbe Datei begründet ausführlich, warum sie eine
> Brücke über die primäre Netzkarte NICHT aus der Ferne baut.
>
> **Die nftables-Sperre gehört nicht hierher.** `SecureHostFirewall.php` lief im
> alten Ablauf ZULETZT, ausdrücklich damit der Tunnel schon trägt, „before
> SSH-to-the-world is ever closed". An dieser Stelle stünde sie **vor**
> `wireguard_joined` und schlösse Port 22, bevor ein Handshake bewiesen ist —
> die Reihenfolge, die einen Host dauerhaft unerreichbar macht. Sie steht
> deshalb in **Task 9**. Die Selbstrücknahme bleibt hier und gilt der
> Netzumstellung; die Firewall behält ihre manuelle Notöffnung, denn „a firewall
> that reopens itself under failure is not a firewall".
>
> **Zu Punkt 4 unten, „von außen prüfen":** das geht vor dem Tunnelbeitritt
> nicht, es gibt keinen Gegenüber. Geprüft wird von innen nach außen (Gateway
> und ein Ziel dahinter), und das ist im Skript auch so benannt. Was es nicht
> abdeckt, deckt der Zeitgeber ab — deshalb steht er da.
Das Muster aus Block B des Handoffs, unverändert, nur im Skript:
1. Aktuelle Netzkonfiguration sichern.
@ -317,7 +341,7 @@ der Kunden-VMs wirkungslos, und `ConfigureProxmox` hielt das als eigenen Fund fe
auslösen.** Eine Brücke bauen, die die Maschine vom Netz nimmt, und zusehen, wie
sie von selbst zurückkommt. **Ohne diesen Versuch ist der Zeitgeber eine
Behauptung.**
- [ ] **Step 3: Committen.** `Bridge the network, and take it back if the host goes quiet`
- [x] **Step 3: Committen.** `Bridge the network, and take it back if the host goes quiet`
---