fix(sicurezza): dashboard 8787 solo su 127.0.0.1, era raggiungibile da internet
La riga era "8787:8787", cioe' pubblicata su tutte le interfacce. ufw non la fermava: il DNAT che Docker installa in nat/PREROUTING devia il pacchetto prima della catena INPUT su cui ufw lavora, e in FORWARD la catena DOCKER lo accetta prima delle catene ufw-*-forward (DOCKER-USER era vuota). Verificato: da IP pubblico la dashboard rispondeva HTTP 200. Dietro c'erano conto e posizioni reali (monta .env.mainnet per lo Shadow live), senza autenticazione, su http.server della stdlib, processo root. Svista e non scelta: la riga sotto lega gia' il gateway IB a 127.0.0.1 con il commento "raggiungibile solo da localhost dell'host". Dopo il fix: DNAT con -d 127.0.0.1/32, listener solo su 127.0.0.1:8787, da IP pubblico connessione rifiutata. pythagoras-ibgw non toccato. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+6
-1
@@ -7,7 +7,12 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command: ["uv", "run", "python", "-m", "src.live.dashboard", "--port", "8787"]
|
command: ["uv", "run", "python", "-m", "src.live.dashboard", "--port", "8787"]
|
||||||
ports:
|
ports:
|
||||||
- "8787:8787"
|
# Bind SOLO su 127.0.0.1: la dashboard non ha autenticazione e mostra conto e
|
||||||
|
# posizioni reali (Shadow live). Fino al 2026-08-04 era "8787:8787", cioe' pubblicata
|
||||||
|
# su tutte le interfacce e raggiungibile da internet: ufw NON protegge le porte
|
||||||
|
# pubblicate da Docker (il DNAT scavalca la catena INPUT). La consuma AI-OS da
|
||||||
|
# localhost per le risposte via Telegram.
|
||||||
|
- "127.0.0.1:8787:8787"
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/app/data:ro
|
- ./data:/app/data:ro
|
||||||
# token mainnet (sola lettura) per lo "Shadow live": conto/posizioni reali sulla dashboard.
|
# token mainnet (sola lettura) per lo "Shadow live": conto/posizioni reali sulla dashboard.
|
||||||
|
|||||||
Reference in New Issue
Block a user