Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Příchozí povolení, která deklarace meshe na stroji implikuje — port multicastové skupiny, deklarované porty hubu, jejichž adresa je adresou stroje, port serveru za loopbackem — se odvozují z deklarace příkazem `majordomus mesh firewall`, který pojmenuje backend firewallu hostitele, příkazy, které je povolí, a vlastní verdikt firewallu, skončí s exit 10, když je pozorováno chybějící pravidlo nebo jádro zalogovalo zahození směrem na tyto porty, a jehož `apply` spouští příkazy jen jako root a nikdy přes HTTP ani MCP; `mesh doctor` nese stejný verdikt jako svou kontrolu `firewall`

Deklarace říká, kdo se smí propojit; firewall hostitele říká, co vůbec dosáhne na socket,

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Plán, detekce backendu a každý úsudek o výstupu firewallu jsou čisté funkce s doctesty; hostitele se dotýká jen pozorování a aplikace a každé říká, kdy nemohlo (nepozorovatelné bez roota je absence, ne selhání, pokud log jádra neukazuje zahozené pakety). Případ spouští report nad deklarací tohoto repozitáře a nad fixtures a nikdy nic neaplikuje. Nenutí firewall, na němž příkaz nikdo nespouští, cokoli připustit.

Co to znamená

Deklarace říká, kdo se smí propojit; firewall hosta říká, co vůbec dosáhne socketu, a nic obojí nespojovalo. Dne 2026-10-08 lundra, deklarovaný rendezvous hub, běžela s ufw s výchozím zákazem a bez pravidla pro port 8791 nebo multicastovou skupinu: jádro zahazovalo každou registraci i každou inzerci z LAN — 187 řádků [UFW BLOCK] za týden — zatímco mesh doctor hlásil, že všechny kontroly platí, protože každá kontrola, kterou provedl, byla faktem procesu a žádná faktem hosta. Toto tvrzení říká, že přijetí se odvozuje z deklarace, vypisuje se s příkazy, které ho zajistí, pozoruje se proti slovu samotného firewallu a hlasitě selže, když host zahazuje to, co deklarace slibuje.

Princip

apps/majordomus-cli/src/mesh/firewall.rs je čisté, kde to jde. plan je funkcí deklarace, adres rozhraní tohoto stroje a portu serveru: port multicastové skupiny, když je multicast zapnut, broadcastový port, když je povoleným záložním řešením, každá položka rendezvous.endpoints, jejíž adresa je adresou tohoto stroje, a port serveru, je-li zadán; zdrojové sítě jsou obklopující soukromé rozsahy každé adresy, kterou deklarace jmenuje (huby, seedy), nebo vlastní rozsahy tohoto stroje, když žádnou nejmenuje, a veřejná adresa nic neodvozuje. detect je funkcí platformy a toho, co je v cestě (ufw před nft na Linuxu; aplikační firewall na macOS; jinde nic). render je funkcí obou: jedno ufw allow in nebo nft add rule na pravidlo a zdroj, každé s komentářem majordomus mesh: …, nebo spustitelný soubor serveru povolený na macOS. judge_ufw, judge_nft a judge_application_firewall jsou funkcemi vlastního textu firewallu a count_blocks logu jádra. Hosta se dotýkají jen observe, kernel_blocks a apply: první dva řeknou, kdy nemohly (čtení ufw a nft vyžaduje root; log jádra se čte bez něj pro uživatele ve adm), a apply bez rootu nebo bez backendu odmítne a nespustí nic, zaznamená každý příkaz s jeho kódem a výstupem a znovu se zeptá firewallu, takže verdikt potom je verdiktem firewallu.

Modul schopností promítá mesh.firewall (CLI, GET /api/v1/mesh/firewall, majordomus_mesh_firewall) a mesh.firewall.apply (jen CLI — spouští privilegovaný nástroj hostitele a vlastní test modulu drží, že žádný jiný příkaz není nikde přes HTTP neposkytován). Doctor (apps/majordomus-cli/src/mesh/doctor.rs) spouští report jako svou kontrolu firewall, mezi kontrolami procesu a verdiktem serveru runtime, a selže přesně tehdy, když selže report: pozorované chybějící pravidlo nebo zahozený paket zalogovaný v pětiminutovém okně.

Jak to vidět

majordomus mesh firewall                     # the plan, backend, commands, observation, drops, verdict
majordomus mesh firewall --format json       # the same, for scripts; exit 10 when the host does not admit the mesh
sudo majordomus mesh firewall apply          # admit it; refuses without root
majordomus mesh doctor                       # the `firewall` line
bash test/run.sh 495_the_firewall_admits_the_mesh
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib -- mesh::firewall

Na lundra, 2026-10-08, jako vlastník: unobservable s 81 a 28 zahozenými pakety v okně; jako root: missing, obě pravidla; po apply (Rule added, Rule added, Rule updated): present, žádný zahozený paket, a mesh nodes hubu, který dosud nevypsal nikoho, vypsal oba Macy v LAN jako přítomné a důvěryhodné. test/cases/495_the_firewall_admits_the_mesh.sh drží odvození nad deklarací tohoto repozitáře a nad fixturami (žádná deklarace, tento stroj jako hub, port serveru jednou), kontrolu doctoru, odmítnutí bez roota a nástroj MCP a nikdy nic nepoužije; unit testy a doctesty crate drží plán, vykreslení a každé posouzení.

Co nepokrývá

Není to správce firewallu: povoluje porty mesh ze soukromých sítí flotily, nedotýká se žádného jiného pravidla, nikdy nerozšíří zdroj na veřejný rozsah a nic neodstraňuje. Nepozoruje firewall, který nemůže číst — ufw a nftables potřebují root a bez něj kontrola drží jako absence, pokud log jádra neukazuje zahozené pakety. Neběží nikde jinde než v příkazové řádce pro apply, takže firewall, na kterém nikdo příkaz nespustí, nic nepovolí. Na macOS aplikační firewall povoluje executable, ne port, takže nový executable je nové povolení. A nezpřístupní hub, jehož deklarovaná adresa je zastaralá; to je řádek deklarace k opravě.

Proč existuje

Hub, u kterého se registrují všechny ostatní stroje a který nevypisuje nikoho, je mesh v nejvíce zavádějící podobě: každá vlastní kontrola prochází, server je aktivní a flotila je pořád sama. Z přijetí hostitelem jako odvozeného požadavku s verdiktem se „hub celý týden nikoho neslyšel“ stává jedním selhaným řádkem, který vypíše první mesh doctor.

Detail vykreslený z docs/claims/mesh-firewall-is-derived.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Příchozí povolení, která deklarace meshe na stroji implikuje — port multicastové skupiny, deklarované porty hubu, jejichž adresa je adresou stroje, port serveru za loopbackem — se odvozují z deklarace příkazem `majordomus mesh firewall`, který pojmenuje backend firewallu hostitele, příkazy, které je povolí, a vlastní verdikt firewallu, skončí s exit 10, když je pozorováno chybějící pravidlo nebo jádro zalogovalo zahození směrem na tyto porty, a jehož `apply` spouští příkazy jen jako root a nikdy přes HTTP ani MCP; `mesh doctor` nese stejný verdikt jako svou kontrolu `firewall`

    Žádná funkce ani odpovědnost v README ji nepojmenovává; tato stránka je místo, kde je uvedena.

  2. 2 · kanonické tvrzení

    mesh-firewall-is-deriveddeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/MESH.md

  3. 3 · implementace

    apps/majordomus-cli/src/mesh/firewall.rs

  4. 4 · test a scénáře

    Test: test/cases/495_the_firewall_admits_the_mesh.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 495_the_firewall_admits_the_mesh

Prohledává názvy a popisy všech stránek, které tento web publikuje.