feat(security): declare port auth policy across the app manifests

20 HTTP UIs move to bind: 127.0.0.1 + auth: gated (the daemon owns their
external addresses and authenticates every connection); 5 loopback-only
backends declare auth: local so the gate keeps its hands off. Protocol
ports (LND, bitcoin p2p, electrum, CLN, gitea SSH, Wyoming, mDNS/SSDP)
were already declared auth: none with rationales in earlier commits.

Inert until the catalog is re-signed: nodes act only on declared fields
delivered via the signed catalog, and the catalog overlay overrides these
disk manifests everywhere they are installed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-08-04 06:09:37 -04:00
co-authored by Claude Fable 5
parent 4e455167e9
commit 16642ad8b8
25 changed files with 50 additions and 0 deletions
+2
View File
@@ -26,6 +26,8 @@ app:
- host: 4080
container: 8080
protocol: tcp
bind: 127.0.0.1
auth: gated
environment:
- FRONTEND_HTTP_PORT=8080
+2
View File
@@ -33,6 +33,8 @@ app:
- host: 32838
container: 32838
protocol: tcp
bind: 127.0.0.1
auth: local
volumes:
- type: bind
+2
View File
@@ -51,6 +51,8 @@ app:
- host: 3535
container: 3535
protocol: tcp
bind: 127.0.0.1
auth: local
volumes:
# Holds the wallet DB, mnemonic and auth token. ARK funds are recoverable
+2
View File
@@ -45,6 +45,8 @@ app:
- host: 23000
container: 49392
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -30,6 +30,8 @@ app:
- host: 8088
container: 8080
protocol: tcp # Web UI
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -66,6 +66,8 @@ app:
- host: 8178
container: 8080
protocol: tcp
bind: 127.0.0.1
auth: local
volumes:
# Same dir the first-boot bundled path uses + where the wallet bridge reads
+2
View File
@@ -58,6 +58,8 @@ app:
- host: 8177
container: 8175
protocol: tcp
bind: 127.0.0.1
auth: local
volumes:
- type: bind
+2
View File
@@ -27,6 +27,8 @@ app:
- host: 8083
container: 80
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -26,6 +26,8 @@ app:
- host: 3001
container: 3000
protocol: tcp
bind: 127.0.0.1
auth: gated
- host: 2222
container: 22
protocol: tcp
+2
View File
@@ -31,6 +31,8 @@ app:
- host: 3000
container: 3000
protocol: tcp # Web UI
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -30,6 +30,8 @@ app:
- host: 8123
container: 8123
protocol: tcp # Web UI
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -44,6 +44,8 @@ app:
- host: 2283
container: 2283
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -38,6 +38,8 @@ app:
- host: 7778
container: 7777
protocol: tcp # Web UI. Port 7777 on the host is reserved for the Nostr relay.
bind: 127.0.0.1
auth: gated
# Writable scratch the baked nginx needs; matches the legacy installer's
# --tmpfs /run + /var/cache/nginx.
+2
View File
@@ -25,6 +25,8 @@ app:
- host: 8096
container: 8096
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -42,6 +42,8 @@ app:
- host: 8999
container: 8999
protocol: tcp
bind: 127.0.0.1
auth: local
volumes:
- type: bind
+2
View File
@@ -33,6 +33,8 @@ app:
- host: 4080
container: 8080 # mempool-frontend nginx listens on 8080 (FRONTEND_HTTP_PORT=8080)
protocol: tcp # Web UI
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -30,6 +30,8 @@ app:
- host: 8089
container: 8080
protocol: tcp # Web UI
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -25,6 +25,8 @@ app:
- host: 8085
container: 80
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -31,6 +31,8 @@ app:
- host: 18081
container: 8080
protocol: tcp # HTTP/WebSocket
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -24,6 +24,8 @@ app:
- host: 2342
container: 2342
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -27,6 +27,8 @@ app:
- host: 9000
container: 9000
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -29,6 +29,8 @@ app:
- host: 8888
container: 8080
protocol: tcp # Web UI
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -29,6 +29,8 @@ app:
- host: 8090
container: 7777
protocol: tcp # HTTP/WebSocket (strfry listens on 7777)
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -26,6 +26,8 @@ app:
- host: 3002
container: 3001
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind
+2
View File
@@ -25,6 +25,8 @@ app:
- host: 8082
container: 80
protocol: tcp
bind: 127.0.0.1
auth: gated
volumes:
- type: bind