feat: F4.6g3 a computer's firewall window, measured against Java's with traffic from two networks

The firewall-pc scenario and FirewallWindowRun use Java's window as a person
does and send a ping, a TCP connection and a DNS question from the server's
network and from behind the router after each step. The core adds and
removes port rules (personalFirewall.ts) and writes both into the firewall's
log, which now carries each line's time; the room takes the window's
actions and sends its view and the log as lines; the editor shows Java's
window with its two tabs. Not adopted from Java: any integer as a port,
a port after a space refused without a word, a log one can type into.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 21:18:05 +00:00
co-authored by Claude Opus 5.5
parent 065b42430d
commit 2b85e7432c
25 changed files with 2092 additions and 19 deletions
+38
View File
@@ -1527,3 +1527,41 @@ Gemessen (03.10.2026):
* Eine leere Maildomain wird genommen (`. MX 3600 x.`).
* „Auswahl entfernen“ entfernt den ersten Eintrag des Namens, bei zwei
gleichen Namen also womöglich den anderen.
### Firewall eines Rechners (F4.6g3)
`FirewallWindowRun` installiert auf dem Server von `firewall-pc` (zwei Netze
hinter einem Router, der Server mit DNS- und Echo-Server, je ein Rechner im
eigenen und im fremden Netz) Javas Firewall, öffnet ihr
`GUIApplicationFirewallWindow` und benutzt es wie eine Person: die drei
Kästchen, Port mit Protokoll- und Absenderliste und „Hinzufügen“ (auch mit
dem, was keine Zahl oder kein Port ist), eine Zeile gewählt und „Löschen“.
Je Schritt: die Kästchen (und ob sie sich ändern lassen), das Portfeld, die
Tabelle, das Protokoll (und ob man hineintippen kann); nach den Schritten,
die danach fragen, was vom eigenen und vom fremden Rechner beim Server
ankommt: ein Ping, eine TCP-Verbindung zum Echo-Server, eine DNS-Frage
(`packages/core/test/firewallWindow.java.json`). Ein Durchlauf dauert etwa
sieben Minuten (Javas Zeitüberschreitungen).
Gemessen (03.10.2026):
* Frisch installiert ist die Firewall aktiv, ICMP erlaubt, der UDP-Filter
an: Ein Ping geht durch, TCP und DNS nicht (Standardaktion verwerfen).
* Eine Regel für alle Absender lässt beide Rechner durch, „Absender im
gleichen Rechnernetz“ nur den eigenen. Jede greifende Regel steht im
Protokoll („Firewall-Regel hat gegriffen: #1 (…) -> akzeptieren“), auch
„Portregel wurde hinzugefügt: 55555/TCP“ und „Portregel wurde entfernt.“
* Ohne ICMP-Haken wird ein Ping verworfen und protokolliert, ohne
UDP-Filter geht DNS ohne Regel durch (ohne Zeile). Ist die Firewall aus,
lassen sich die beiden Kästchen nicht ändern, und alles geht durch.
* Javas Ungenauigkeiten:
* Jede ganze Zahl ist ein Port: −1 ergibt eine Regel für jeden Port
beider Protokolle (die Tabelle zeigt keinen Port), 0 und 70000 Regeln,
die nie greifen. Eine Zahl nach einem Leerzeichen lehnt Java still ab.
* Ins Protokoll kann man tippen.
* Den Erklärtext (`firewall_msg2`) baut Javas Fenster, zeigt ihn aber nie.
* Fallen der Sonde: Javas `ClientBaustein` hängt nach dem Trennen noch im
Empfangen, sein nächstes „Verbinden“ läuft dahinter nie — die Sonde nimmt
je Verbindung einen eigenen `TCPSocket`. Javas Echo-Server verträgt keine
sofort wieder geschlossene Verbindung (die folgenden laufen in die
Zeitüberschreitung) — die Sonde hält sie eine halbe Sekunde.