From fd62f48309c0b43df8b4f4f79dbfcf9f960ea3ad Mon Sep 17 00:00:00 2001 From: Harmen Date: Tue, 25 Aug 2026 18:43:41 +0200 Subject: [PATCH] De Tor hidden service is de tweede weg naar binnen, en die staat nergens MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit De gebruiker vroeg of Evolu Relay kwaad kan op zijn Umbrel. Het eerlijke antwoord was nee met twee kanttekeningen, en de tweede stond in geen enkel bestand: umbrelOS maakt per app een Tor hidden service en die stond gewoon aan. Samen met PROXY_AUTH_ADD: "false" betekent dat de relay bereikbaar vanaf het internet, alleen beschermd doordat het .onion-adres onraadbaar is. De gebruiker zet hem uit. Wat dit lastig maakt om te zien: het staat niet in de compose van de app. Je kunt dat bestand volledig lezen en concluderen dat alleen je LAN erbij kan. Vandaar dat het nu op drie plekken staat: in de compose bij de instelling waar de afweging gemaakt wordt, in het plan bij de statuspagina-vraag, en in de naslag. De naslag is de belangrijkste van die drie, want het mechanisme is een eigenschap van umbrelOS en geldt voor elke app. Het gevolg niet: bij Electrum Gate legt dezelfde hidden service alleen de inlogpagina bloot, want daar staat de proxy-inlog aan en loopt de TLS-poort niet via de proxy. Die vergelijking staat er als tabel bij, want de instelling alleen zegt niets; het is de combinatie. Opgemerkt door de gebruiker dat het ook voor Electrum Gate zou gelden. Deels terecht, en dat is precies waarom het in de gedeelde naslag hoort en niet in het plan van één app. Tests: 32 goed 0 fout, 54 goed 0 fout en 39 goed 0 fout, niets overgeslagen. Co-Authored-By: Claude Opus 5 --- Docs/Plannen/Actief/008-Umbrelapp/OPEN.md | 15 +++++++++++ Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md | 10 +++++++ Docs/Referenties/Umbrel-appstore-spec.md | 26 +++++++++++++++++++ whatsnext-evolu-relay/docker-compose.yml | 8 ++++++ 4 files changed, 59 insertions(+) diff --git a/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md b/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md index b79eba5..0f535a1 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md @@ -34,6 +34,21 @@ Let op één ding als het ervan komt: de app-proxy staat op `PROXY_AUTH_ADD: "false"`, dus een pagina zou net zo onbeschermd zijn als de relay. Bij Electrum Gate zit de pagina juist wél achter de inlog. Dat vraagt dan een tweede poort of een smalle whitelist. + + **En dat weegt zwaarder dan het leek, want er zijn twee wegen naar binnen en de tweede is onzichtbaar + in de compose** (vastgesteld op 25-08-2026, nadat de gebruiker vroeg of deze app kwaad kon): + + - **het thuisnetwerk.** De app-proxy publiceert `0.0.0.0:3851`, dus alle interfaces en niet alleen + localhost. Alles op het LAN kan bij de relay, zonder aanmelding; + - **Tor.** umbrelOS maakt per app een hidden service, en die stond bij de eerste installatie gewoon aan. + Zonder inlog betekent dat **bereikbaar vanaf het internet**, alleen beschermd doordat het + `.onion`-adres onraadbaar is. Te zien aan `~/umbrel/tor/data/app-/hostname` en uit te zetten + in umbrelOS. De gebruiker zet hem uit. + + Wat de schade in beide gevallen beperkt is een applicatiecontrole en geen netwerkgrens: de relay weigert + elke eigenaar zonder limietenrij. Dat is precies waarom een statuspagina hier een andere afweging is dan + bij Electrum Gate: die zou achter geen van beide grenzen liggen, en een statuspagina vertelt per definitie + iets over de machine waarop hij draait. **Moment:** pas overwegen als fase 4 geslaagd is · **Eigenaar:** gebruiker 3. **Wat doen we met de quota-manager als blijkt dat hij iets extern nodig heeft?** diff --git a/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md b/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md index 0f7cd5c..14a03aa 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md @@ -33,6 +33,16 @@ Kleinigheid met een staart: de gebruiker `umbrel` zit hier niet in de groep `doc `tools/evolu-relay/build.sh`, `Docs/Referenties/Umbrel-appstore-spec.md`, dit plan. **Tests:** 32 goed 0 fout, 54 goed 0 fout en 39 goed 0 fout, niets overgeslagen. +**Nagekomen dezelfde dag, op de vraag van de gebruiker of deze app kwaad kan: er is een tweede weg naar +binnen die in geen enkel bestand van deze app staat.** umbrelOS maakt per app een Tor hidden service, en +die stond aan. In combinatie met `PROXY_AUTH_ADD: "false"` betekent dat: de relay bereikbaar vanaf het +internet, alleen beschermd doordat het `.onion`-adres onraadbaar is. De gebruiker zet hem uit. + +Het mechanisme geldt voor élke app en staat daarom in de gedeelde naslag en niet alleen hier. Het gevólg +verschilt: bij Electrum Gate legt dezelfde hidden service alleen de inlogpagina van umbrelOS bloot, want +daar staat de proxy-inlog gewoon aan. De les is de combinatie en niet de instelling: wie +`PROXY_AUTH_ADD` op `"false"` zet, moet meteen de hidden service beoordelen. + **Wat nog steeds niet bewezen is:** of het databaseschema zichzelf aanmaakt, of Trezor Suite dit adres accepteert, en of een eigenaar te registreren is. "Draait" is hier nog geen "synchroniseert". diff --git a/Docs/Referenties/Umbrel-appstore-spec.md b/Docs/Referenties/Umbrel-appstore-spec.md index 490f1ab..5fc2a02 100644 --- a/Docs/Referenties/Umbrel-appstore-spec.md +++ b/Docs/Referenties/Umbrel-appstore-spec.md @@ -186,6 +186,32 @@ Een eigen `networks:`-blok op topniveau hoort er niet: de skill in `getumbrel/um dat je `networks: default:` per service alleen gebruikt wanneer je een geteste statische IP of alias nodig hebt. Het `umbrel_main_network` handmatig als extern netwerk aanhaken is de oude 0.5-manier. +### Elke app krijgt een Tor hidden service, en dat is de tweede weg naar binnen + +Vastgesteld op 25-08-2026 bij de eerste installatie van Evolu Relay, nadat de gebruiker vroeg of die app +kwaad kon. umbrelOS start per app een `-tor_server-1`-container en publiceert de app als hidden +service. **Dat staat niet in de compose van de app en je ziet het dus niet als je die leest.** Controleren: + +```sh +cat ~/umbrel/tor/data/app-/hostname +``` + +Bestaat dat bestand, dan is er een `.onion`-adres en is de app vanaf het internet bereikbaar. Uit te zetten +per app in de umbrelOS-interface. + +**Of dat erg is, hangt volledig af van `PROXY_AUTH_ADD`**, en dat maakt het een combinatie die je apart moet +beoordelen in plaats van per instelling: + +| App | Inlog op de proxy | Wat de hidden service dan blootlegt | +|-|-|-| +| Electrum Gate | aan (standaard) | de inlogpagina van umbrelOS. Het dashboard zelf zit erachter. Zijn TLS-poort 50022 loopt niet via de proxy en zit dus niet op het onion-adres | +| Evolu Relay | **uit** (`"false"`, want Trezor Suite kan niet inloggen) | de relay zelf, zonder enige aanmelding. Alleen beschermd doordat het adres onraadbaar is | + +De regel die daaruit volgt: **zet je `PROXY_AUTH_ADD` op `"false"`, beoordeel dan meteen de hidden service.** +Die twee samen maken van "alleen mijn thuisnetwerk" ongemerkt "het internet". Ook bij een app mét inlog is +uitzetten verdedigbaar, want dan staat er tenminste geen aanmeldscherm op het internet dat er niet hoefde +te staan. + **Images gepind op digest.** De regel uit dezelfde skill: pin elke image als `registry/repo:versie-of-commit@sha256:`, houd tag en digest samen, en gebruik de **multi-arch index-digest**, niet de architectuurspecifieke. Te controleren met: diff --git a/whatsnext-evolu-relay/docker-compose.yml b/whatsnext-evolu-relay/docker-compose.yml index 3230369..5ed8a1d 100644 --- a/whatsnext-evolu-relay/docker-compose.yml +++ b/whatsnext-evolu-relay/docker-compose.yml @@ -25,6 +25,14 @@ services: # eigenaar weigert die geen limietenrij in de database heeft. Zet deze app # dus niet zonder meer open naar het internet; zie het masterplan # Bereikbaarheid. + # + # En let op de tweede weg naar binnen, die je niet ziet in deze compose: + # umbrelOS maakt per app een Tor hidden service. Zonder inlog betekent dat + # bereikbaar vanaf het internet, alleen beschermd doordat het .onion-adres + # onraadbaar is. Bij Electrum Gate is dat geen bezwaar, want daar zit de + # inlog van umbrelOS ervoor; hier is die er juist uit. Zet de hidden service + # dus uit in umbrelOS tenzij je hem bewust wilt. Op 25-08-2026 stond hij bij + # de eerste installatie gewoon aan. PROXY_AUTH_ADD: "false" relay: